Start
Swan is an open-source Chrome extension that calls you at the risky moment so you can step out of the porn loop before it takes over.
The fastest path is the Chrome Web Store. If you want to inspect or modify the code, you can self-host the extension locally with Chrome Developer Mode.
Install from Chrome
Open the Swan Chrome Web Store listing, click Add to Chrome, then open Swan from the extension toolbar.
Use this path if you want the normal Chrome extension experience and automatic browser-managed updates.
Self-host with Developer Mode
Use the source path if you want to inspect the code, change it, or run Swan without the store package.
git clone https://github.com/dannylee1020/swan.git
cd swan
npm install
npm run dashboardThen load the local extension:
- Open
chrome://extensions. - Enable Developer Mode.
- Click Load unpacked.
- Select
output/chrome-mv3-dev. - Keep
npm run dashboardrunning while you work.
WXT watches the source and hot reloads the local extension, so you do not need to rebuild after every change.
Configure Swan
Open Swan settings and save the required values:
| Group | Required values |
|---|---|
| Phone Configuration | Recipient phone number, Start voice call toggle, monitoring toggle |
| ElevenLabs Voice Call | API key, Agent ID, Agent phone number ID |
Use E.164 phone-number formatting for the recipient number, for example +15551234567.
Before relying on Swan, configure the ElevenLabs agent prompt and knowledge base and run a direct ElevenLabs test call.
Test the loop
- Click Send test alert in Swan settings.
- Confirm an AI call arrives from the ElevenLabs-connected number.
- Open Logs and verify the latest event has call status.
- Open Domain Tracking to review, remove, or add tracked domains.
Swan matches configured domains and their subdomains during top-level browser navigation.
Operate
- Settings explains local settings, BYOK calls, Managed calls, and import data.
- Provider setup walks through ElevenLabs setup.
- Domain tracking explains how Swan matches configured domains.
- Test and verify covers runtime checks.
- Troubleshooting covers common setup and call failures.
- Privacy explains local storage, provider data, permissions, and user control.
Learn more
- Chrome porn blocker with phone calls explains Swan's interruption loop.
- Open-source porn blocker explains the trust and privacy tradeoffs.
- Swan vs passive porn blockers compares Swan with passive blocking and accountability tools.