Skip to content

Start

Daily use

What to expect once everything is wired — your morning brief, the persona that gets sharper week by week, the dashboard.


Once personkit setup + personkit daemon --install have run, aiperson is doing work on your behalf every five minutes — quietly. Here is what you’ll actually notice day to day.

Your morning

Open your terminal:

personkit today

You’ll see something like:

Today · 2026-05-26  (last 24h)
────────────────────────────────

Threads (8)
  · 09:14  claude_code [claude-opus-4-7]  Migrate the corpus to schema v2
  · 10:30  claude_web [claude-opus-4-7]   Memory layer thesis — three goals
  · 11:42  cursor      [claude-opus-4-7]  Wire the daemon plist
  · 14:05  voice                          Notes after the call with Lerato
  · …

Git activity (5)
  · 09:12  feat: schema v2 — threads + messages
  · 11:45  feat: unified daemon under one launchd plist
  · …

The same brief is available as JSON (personkit today --json) — your morning workflow can paste it into a chat or feed it to a script.

The dashboard surfaces the same data at /dashboard — useful when you want to skim threads and click into one.

In your editor

Any MCP-aware editor (Claude Code, Cursor, VS Code Copilot, Windsurf, Continue, Aider, Gemini-CLI, JetBrains) lets your AI call:

Your AI doesn’t need to be reminded. The MCP server is wired into every host via personkit connect.

In the browser — 21 cloud chat surfaces

The extension (v1.0) wires your persona into the global chat frontier — Western and Chinese — and does two things on each supported host:

  1. Injects your persona when you open a chat — one click in the popup. Voice, values, conventions, refusals all land at the top of the message you’re about to send.
  2. Captures the full conversation (opt-in per surface) as you go — user prompts and assistant replies both. Every turn lands in your local messages table; the relay mirrors it for cross-device sync if Pro is on.

Coverage:

The popup shows per-surface health (green ≤5 min since the last accepted turn, yellow ≤60 min, red otherwise) and per-surface consent toggles. Default is off — explicit consent before any browser capture. A master kill switch pauses everything; the in-page indicator at the bottom of every captured chat is a one-click toggle for that conversation only.

From the terminal you can verify what’s landing in real time:

personkit corpus surfaces                          # per-surface roll-up
personkit corpus messages --surface=browser-ext:chatgpt --limit=10

Voice memos

personkit voice capture ~/Downloads/standup-2026-05-26.m4a

Bridges through a local whisper binary, transcribes, and lands the result as a user-role message in a voice thread. Use --model base.en (default) or larger for accuracy.

The persona that gets sharper

Two paths add to your persona:

  1. In-session — every ~10 messages a Stop hook fires inside Claude Code and nudges the model to consider whether anything emerged worth recording. The model decides whether to call write_value, write_convention, write_refusal, record_relational_moment, etc.
  2. Nightly synthesis — the daemon’s synthesis pass (personkit synthesise) does entity-alias merging and templated thread summaries. The LLM-driven proposal generation lands behind the proposal-review surface (toggle on via PERSONKIT_SYNTHESIS_LLM_OK=1 once you trust it).

Proposed changes land in your inbox at /dashboard/persona/proposals — accept or dismiss each one. Accepting a proposal commits a signed update to your .person.json.

When something looks off

Exporting

You own everything. Any time:

personkit export --format=markdown --out ~/dotperson-export

Produces one .md per thread, Obsidian-ready, with YAML front-matter. Move them, version-control them, drop the folder into another tool — dotperson keeps no claim on the files.