Skip to content

Start

Getting started

Install personkit, sign in, install the daemon, and bring your AI into every editor and chat surface in under ten minutes.


aiperson is the memory layer for AI: one persona you own — voice, values, conventions, refusals — kept in your own git repo and a local-first corpus, and already there in every editor and chat surface you open. The conversations you have on those surfaces flow back into the same corpus, so your AI keeps getting to know you.

Install

curl -fsSL https://aiperson.one/install.sh | sh

The install script drops the personkit binary into ~/.dotperson/bin on Unix or %USERPROFILE%\.dotperson\bin on Windows, and adds that directory to your PATH. Override the location with PERSONKIT_INSTALL_DIR.

Sign in

personkit login

Opens a browser tab on aiperson.one, signs you in with GitHub, binds a private persona repository to your account, and writes ~/.dotperson/credentials.json.

First-run setup

personkit setup

Orchestrates the full first-run flow in a single pass:

  1. Connect — writes the persona projection into every detected AI surface (Claude Code, Cursor, VS Code Copilot, Windsurf, Continue, Aider, Gemini CLI, JetBrains, plus the browser extension).
  2. Corpus init — opens ~/.dotperson/corpus.db, runs the V2 migration (threads + messages tables included), and loads the sqlite-vec extension (or degrades gracefully to FTS5 + entity + temporal retrieval).
  3. Seed — walks your git repos and ingests the last 30 days of commits.
  4. Verify — confirms each surface is wired and that the MCP server responds.

Turn on the background daemon

personkit daemon --install

Installs one launchd job (one.aiperson.personkit-daemon, StartInterval = 300) on macOS, or a systemd user timer (personkit-daemon.timer) on Linux, so a full harvest → embed → observe → sync → synthesise cycle fires every five minutes. Each harvester is rate-limited to its own cadence within that cycle (the cron-scheduled ones run at most hourly), so re-firing every five minutes is cheap rather than wasteful.

Without this step, harvesters only run when you invoke them manually. With it, your corpus stays fresh on its own.

Watch what it’s doing:

tail -f ~/.dotperson/daemon.out.log

Install the browser extension

For the global chat frontier — load the unpacked extension from apps/browser-extension/ (developer mode) or wait for the Chrome Web Store listing. Sign in once via the popup. From then on you can drop your persona into the chat you’re on with one click from the popup, and — for each surface you enable in the popup — the extension captures that surface’s threads and sends them to the relay, which is what carries them to your other devices.

Twenty-one supported surfaces:

Capture is off on every surface until you switch it on in the popup. You’re in the driver’s seat: master kill switch, per-conversation skip via the in-page indicator, regex redactor, and per-surface traffic-light health dots all live there too. The dashboard’s Overview card mirrors the same signals via the relay’s /v1/me/capture-health endpoint.

See Daily use for what to do once everything is wired.

Your first query

In any wired editor, ask your AI:

“What was I working on yesterday?”

It calls corpus_query via MCP, fuses FTS + vec + entity + temporal scores, and answers with sourced specifics. From the terminal:

personkit today               # daily brief — recent threads + git activity
personkit corpus health       # threads / messages / embedding counts

The persona it uses came from your git repo. The corpus it queried lives on your laptop. We host nothing you didn’t ask us to.

Next steps