A full walkthrough of every feature — from first launch to advanced collaboration.
Pre-built installers for macOS (Apple Silicon) and Windows (x64) are available on the releases page. Download the .dmg (macOS) or .exe (Windows) and follow the standard installation steps for your platform.
On Windows, SmartScreen may warn you about an unknown publisher — click More info → Run anyway.
The first time you open Sourcerer, you will see a setup screen asking for three things:
After setup, Sourcerer creates an encrypted SQLite database in your system's application data folder (~/Library/Application Support/sourcerer on macOS). Everything you store from that point is encrypted on disk.
Every time you open Sourcerer, you will be prompted for your master password. The app derives the encryption key fresh each time — the key is never stored anywhere. If the password is wrong, the database cannot be opened.
The app can be set to lock automatically after a period of inactivity. See Settings for details.
Click New contact from the contacts view or from within a project. The minimum required field is a name. All other fields are optional but useful for outreach tracking and deduplication.
Each contact can hold:
+1 202 456 1111 ext. 567)Contacts you have not touched in a configurable number of days are flagged with a visual indicator in the contacts list. The threshold is set in Settings. This is useful for keeping a source list warm — especially contacts you are not actively working but want to stay in periodic touch with.
Sourcerer continuously checks for likely-duplicate contacts using fuzzy name matching and exact email and phone signals. When duplicates are found, a badge appears in the contacts view.
Clicking the badge opens the deduplication panel, which shows each suspected pair side-by-side. For each pair you can:
A project groups contacts for a specific story, investigation, or beat. Each contact can belong to multiple projects simultaneously, and each project membership is tracked independently — with its own status, priority, reporter, notes, and interaction log.
Click New project in the sidebar. Give it a name. That is all you need to get started.
From inside a project, use Add contact to add an existing contact or create a new one. You can also add contacts to a project from the global contacts view using the bulk-select checkbox menu.
Every contact in a project has its own separate fields, independent of any other project:
Multiple reporters can be assigned to the same contact within a project (e.g. if two reporters are jointly working a source). If the same contact is independently assigned to two reporters who are not collaborating, a conflict indicator will appear to flag the overlap.
See Collaboration for details on shared projects.
Each contact in a project has a status that tracks where you are in the outreach process. The available statuses are:
| Status | Meaning |
|---|---|
| Not yet contacted | Default. No outreach has been made. |
| Contacted, no reply | You have reached out but received no response. |
| In dialogue | An exchange is ongoing. |
| Interview arranged | A meeting or call is scheduled. |
| Interviewed, off-record | Interview completed, not for attribution. |
| Interviewed, on-record | Interview completed, for attribution. |
| Declined | Contact has declined to participate. |
| Declined, door open | Declined for now but may reconsider. |
| Referred to comms | Contact has directed you to a press or communications office. |
| Ghosted | Contact stopped responding after initial engagement. |
| Do not contact | Contact has asked not to be reached out to again. |
Priority controls how frequently Sourcerer reminds you to follow up on a contact. The intervals are fixed:
| Priority | Reminder interval |
|---|---|
| Critical | Every 7 days |
| High | Every 14 days |
| Medium | Every 28 days |
| Low | Every 60 days |
| Monitor-only | No automatic reminder |
Reminders appear in the Reminders view. You can also subscribe to them as a calendar feed — see Settings.
Each project membership has an interaction log. Every entry records the date, which reporter made the contact, and a freeform note. The log is included in full exports but stripped from sanitised exports.
The interaction log is also used to calculate the last contacted date, which drives the staleness indicator and reminder schedule.
In addition to automatic priority-based reminders, you can set a manual reminder on any contact in any project. A manual reminder has a due date and an optional note. Manual reminders appear in the Reminders view alongside automatic ones.
You can attach one or more RSS feeds to any contact. Sourcerer polls these feeds in the background while the app is open and surfaces new articles in the Alerts view, linked to the corresponding contact. This is useful for tracking press coverage of sources — for example, a Google News alert RSS feed for a person's name.
To add a feed, open a contact's detail panel and add a feed URL in the Alerts section.
The Alerts view shows all recent mentions across all your contacts, sorted by recency. Each item shows the article title, publication date, the source it is linked to, and the feed it came from.
When saving a website link on a contact, Sourcerer can optionally submit it to the Internet Archive's Wayback Machine. This creates a permanent public snapshot of the page so you have a record even if the original URL disappears. The snapshot URL is saved to the contact and shown alongside the link.
Wayback archiving uses the Save Page Now 2 (SPN2) API, which requires free Archive.org S3 API keys. To set up archiving:
Archiving only fires for generic website links — social media profile URLs (LinkedIn, X, Instagram, Facebook) are excluded. Note that submitted URLs become public records on archive.org.
You can import contacts from a CSV file. The only required column is Name. Other supported columns include: Organization, Title, Notes, Email, Phone, LinkedIn, X, and Website.
For fields that can hold multiple values (emails, phones, websites), use semicolons to separate values within a single cell:
alice@example.com;alice@work.com will create two email addresses on the imported contact.
On import you can choose whether to add contacts to a specific project.
You can import contacts from a .vcf file exported by Apple Contacts, Google Contacts, or any standard address book. Both single-contact and multi-contact files are supported. The following fields are imported: FN (name), ORG (organisation), NOTE (notes), EMAIL, TEL (phone, normalised to international format), and URL (website links).
Contacts with a name or email matching an existing record are skipped. Duplicate fields within a single vCard entry are deduplicated automatically.
Contacts can be exported from the global contacts view or from within a project. Three formats are available:
The sanitised export mode strips notes and the interaction log from every contact. Use this when sharing a contact list with someone who should not see reporter notes or the history of outreach attempts.
The Sourcerer browser extension lets you capture full-page screenshots, save selected text as contact fields, and add new contacts — all without leaving your browser. It works in Chrome, Edge, Brave, Arc, and Firefox. See the extension guide for full details.
Chrome / Edge / Brave / Arc: load it from the extension/ folder in the Sourcerer repository.
chrome://extensionsextension/ folderFirefox: go to about:debugging#/runtime/this-firefox, click Load Temporary Add-on, and select extension/manifest.firefox.json. See the extension guide for permanent installation options.
Click the Sourcerer icon in the browser toolbar. If this is your first time, click Connect to Sourcerer — an approval prompt will appear in the app. Click Approve. The session token persists until the app is reinstalled or you revoke it manually.
Sourcerer re-encrypts the entire database with a new key derived from your new password. All database pages are re-written. You will need to use the new password on all machines that share the same database file.
Set a timeout (in minutes) after which Sourcerer will lock itself if no interaction is detected. Set to zero to disable auto-lock. When locked, the encryption key is cleared from memory and you must re-enter your password to continue.
Configure how many days of inactivity cause a contact to be flagged as stale. The default is 90 days.
The panic wipe button irreversibly destroys:
Clicking the button reveals a confirmation step that requires you to type WIPE before destruction begins. If you have a backup, it will not be affected — and unlike the live database, the backup embeds its own salt so it can be restored with just your password.
The backup function exports an encrypted copy of your database. The backup uses the same master password as the current database. Store backups somewhere separate from the live database — on an encrypted external drive or in a password-protected archive.
To restore, select a backup file. Sourcerer will validate the backup before overwriting the live database. The backup must have been made with the same password (or a password you still know).
Sourcerer can expose your upcoming reminders as a calendar feed, which you can subscribe to from any local calendar app (Apple Calendar, Outlook, Thunderbird, and others). Copy the calendar URL from Settings and paste it into your calendar app's “Subscribe to calendar” dialog. The feed is served over webcal:// on your local machine — it is only accessible while Sourcerer is running, and only from this computer. The feed URL contains a token — if you believe it has been compromised, click Regenerate token to invalidate the old URL.
Sourcerer supports lightweight file-based collaboration. A shared project is simply a second SQLCipher database file stored somewhere two or more people can access — a shared Dropbox folder, a team OneDrive, or a network drive.
Each person points their Sourcerer installation at the same file using Join shared project. Everyone who accesses the file needs the same master password that was used when it was created.
Sourcerer polls the shared file every two minutes. Changes are merged on a last-write-wins basis using updated_at timestamps — if two people update the same contact record at almost the same time, whichever save happened last will win.
Because sync is file-based, it only works when both users are online and the shared folder is in sync. If the cloud folder is paused or offline, changes will not propagate until connectivity is restored.
All project data is synced: contact memberships, status, priority, reporter attribution, themes, interaction logs, and reminders.