Skip to content
arvarikPublic

About

Self-hosted contact management + tracking + online enrichment for your personal and professional needs πŸ¦β€β¬›

Topics

Resources

Code of conduct

Contributing

Security policy

Accessibility

Stars

91 stars

Watchers

1 watching

Forks

Latest commit

Β 

History

331 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Contrack

Privacy focused people management and search

CI Release Docker image Node.js 26.10+ License: AGPL v3 OpenSSF Scorecard


A tour of Contrack: the Pulse page, the command palette opening a contact, a question answered in Ask Contrack, and the map of the network

Contacts are scattered all over your apps, often have a large overlap, and aren't necessarily filled in with the most amount of information you'd like. When every app requests access to your contacts, it doesn't really feel like you own your network.

And even when you meticulously update your private Apple contacts, there's no good way to keep building the relationship or continuously updating their important details.

Contrack solves all of these by being an all-in-one, self-hosted contact management app that a follows a simple 4 step process:

Import β†’ Dedupe β†’ Enrich β†’ Track

Import, Dedupe, Enrich and Track: the Contrack corvid flies down from step to step

Import

Everyone, from everywhere. Drop in your contacts from Apple, Google, LinkedIn or Facebook.

Connect your calendar or inbox, and past conversations and meetings appear right on each person's timeline.

A contacts file dropped on the Import page: the import runs, merges one duplicate by itself, and lists three to review

Dedupe

One person. One clean story. The same friend from three address books becomes a single profile.

Contrack merges the obvious matches automatically and lets you review the rest side by side, with a 90-day undo if you ever change your mind.

Possible duplicates: a pair with the reason it matched, what the merge keeps, the merge, and Undo

Enrich

All the context you never had time to type. Paste a quick note like "Met at Sarah's wedding, loves natural wine, kids are Leo and Maya, catch up every quarter" or "Partner at Sequoia, follow up next Tuesday on seed round", and Contrack turns it into a complete profile with dates, tags, and reminders.

Or let web research fill in roles and links with cited sources.

Research on a contact: the run, and the Research card filling in with facts and their sources

Track

Never let someone important drift away. Write a note in plain language and "next Tuesday" becomes a reminder automatically.

Set how often you want to stay in touch, and each morning Contrack gently shows who is due and whose birthday or milestone is coming up.

A note logged with the follow-up 'Send the deck next Tuesday', then the contact tracked monthly

Highlights

Pulse: the day's sentence, Up next and Keeping up

Pulse

Your calm morning briefing. See the follow-ups due today, friends and colleagues you haven't spoken with in a while, and upcoming birthdays, anniversaries, and custom milestones.
Ask Contrack answering a question with matching people

Ask Contrack

Ask in plain words, like "Who do I know in Lisbon?" or "Who loves natural wine?" Answers come straight from your own contacts and notes, searched privately on your machine.
The command palette with search results and a facet filter

Command palette

Press Cmd+K to jump to anyone, filter by company or tag, or log a quick note without ever lifting your hands from the keyboard.
The map with clusters of people and the People pane

Map

Planning a trip? See everyone you know in a city at a glance. Draw a loop around a neighborhood to select everyone there and add them to a dinner list.
Accounts: multiple family or team profiles with isolated address books

Multiple profiles, one home

Run one Contrack for your family or team. Invite someone with a link or create their profile in seconds. Every person gets their own private address book, notes, and reminders.
Backups: verified snapshots of your database

Verified backups

Your history is irreplaceable. Take a complete, integrity-checked snapshot of your address book in one click, or let Contrack back itself up automatically on your schedule.
Settings, MCP and API: connecting Claude, Cursor and other clients

Works with your AI assistant

Connect Claude, ChatGPT, or Cursor in one click so your favorite assistant can look up context and log notes for you, with read-only access whenever you prefer.
Contrack on a phone: Pulse and a contact page

Right in your pocket

Add Contrack to your phone's home screen. Before you walk into coffee or a meeting, every note and detail is one tap away.

And everything else you expect: rich notes with file & image attachments, @mentions that link people together, custom dates and anniversaries, lists and tags, passkey sign-in, a 90-day trash with undo, open exports anytime, and warm light and dark themes.

Privacy

Privacy isn't a setting. It's the foundation. Contrack lives on your own computer or home server. Your relationships aren't training anyone's model, sitting on a rented cloud, or locked behind a monthly subscription. Search happens right on your device.

Share one home server with your family or team while keeping everyone's address book completely private to them. And when you want AI to research a contact or turn a quick note into a rich profile, you bring the model you trust, or use none at all.

Comparing personal CRMs?

Start in a minute

Run Contrack on your machine with Docker:

docker run -d --name contrack -p 127.0.0.1:3210:3210 \
  -v contrack-data:/app/data ghcr.io/arvarik/contrack:latest

Then open http://localhost:3210. There is no cloud account to sign up for and no API key required. Everything stays in your contrack-data folder. Whenever you want AI features, open Settings β†’ Administration β†’ AI.

Other ways to run it

Docker Compose with the published image:

services:
  contrack:
    image: ghcr.io/arvarik/contrack:latest
    container_name: contrack
    restart: unless-stopped
    ports:
      - "127.0.0.1:3210:3210"
    volumes:
      - contrack-data:/app/data
    environment:
      - AUTH_REQUIRED=false # Set to true before exposing beyond localhost

volumes:
  contrack-data:

Or build the image from this repository:

git clone https://github.com/arvarik/contrack.git && cd contrack
docker compose up -d

From source, with Node.js 26.10 or later:

git clone https://github.com/arvarik/contrack.git && cd contrack
npm install
npm run dev

For your household or team: turn on sign-in with -e AUTH_REQUIRED=true. Your first visit creates the admin profile, and you can invite family or teammates from Settings β†’ Administration β†’ Accounts. See the Self-hosting guide for remote access, backups, and upgrades.

Try it in your browser

Open in GitHub Codespaces

Open a live demo in your browser preloaded with 400 fictional people, with no installation and no API key needed.


Contribute: Send a changeContribute: Code of Conduct
Contribute: Agent instructionsContribute: What changed
Get help: Read the docsLicense: GNU AGPL v3
Get help: Ask a questionThe Contrack tree: Get help, Contribute, and License nests with the corvid flying from nest to nestLicense: Free to use and change
Get help: Report a bug or ideaLicense: Share your changes
Get help: Security policy
Get help: Email the maintainer

About

Self-hosted contact management + tracking + online enrichment for your personal and professional needs πŸ¦β€β¬›

Topics

Resources

Code of conduct

Contributing

Security policy

Accessibility

Stars

91 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages