Install Swan
Swan currently installs by building a local extension folder and loading it in a Chromium-based browser.
Clone the repository
git clone git@github.com:dannylee1020/swan.git
cd swanIf you use HTTPS instead of SSH:
git clone https://github.com/dannylee1020/swan.git
cd swanRun setup
npm run setupThe setup command is the recommended path for new users. It runs npm install only when dependencies are missing, builds Swan, and prints the absolute path to the extension output.
TIP
Use npm run setup -- --no-open if you do not want the script to try opening chrome://extensions.
TIP
Copy config.example.yaml to config.yaml before setup if you want Swan to bundle local import data for phone, provider, and tracked-domain settings.
Manual commands
If you prefer to run each step yourself:
npm install
npm run buildThen load:
output/chrome-mv3through your browser's extension page.
Load unpacked extension
- Open
chrome://extensions. - Turn on Developer Mode.
- Click Load unpacked.
- Select the absolute
output/chrome-mv3directory. - Confirm Swan appears in the extensions list.
Open settings
Swan should open the full settings tab on first install. You can also open it by clicking the Swan extension action icon.
The settings page is where you configure:
- Bundled
config.yamldata through Import data on General. - Recipient phone number.
- ElevenLabs voice-call credentials.
- Optional Twilio SMS credentials.
- Domain tracking rules.
- Test alerts.
- Recent event logs.
Rebuild after source changes
When you pull a new version or change source code:
npm run buildThen open chrome://extensions and click the reload button on Swan.
Validate the checkout
Use these checks before trusting a modified checkout:
npm run typecheck
npm run test
npm run build