Skip to content
Kiku.sh

Agents

Connect an agent.

Claude Code, Claude Desktop, Cursor or your own scripts can read your calls through Kiku, on your Mac, once you say which agent and what it reads. Three steps.

  1. 1Turn on Agents

    In Kiku's Settings, under Agents, turn on Let agents read your calls. Memory needs to be on too. Kiku answers agents while it runs.

  2. 2Connect the agent

    Click Connect an Agent and give it a name, like Claude. Choose what it reads (Notes, or Notes and quotes), which calls (from the last 90 days, all, or from now on) and for how long (30 days, 90 days, or until you revoke it).

  3. 3Copy its key

    Kiku shows the agent's key once, starting with kk_, with the setup lines below already filled in. Copy them now: Kiku keeps only a fingerprint of the key.

MCP

Add Kiku to your agent.

Kiku's MCP server is the kiku helper inside the app. Your agent starts it on its own, with the key in KIKU_TOKEN. Put your key where the lines say kk_....

Claude Code

In Terminal, for every project:

claude mcp add --scope user kiku -e KIKU_TOKEN=kk_... -- /Applications/Kiku.app/Contents/Helpers/kiku mcp

Then /mcp in Claude Code lists kiku and its tools.

Claude Desktop

In Claude, Settings, Developer, Edit Config opens claude_desktop_config.json. Add this, then restart Claude:

{
  "mcpServers": {
    "kiku": {
      "command": "/Applications/Kiku.app/Contents/Helpers/kiku",
      "args": [
        "mcp"
      ],
      "env": {
        "KIKU_TOKEN": "kk_..."
      }
    }
  }
}

Cursor

The same block in ~/.cursor/mcp.json for every project, or in .cursor/mcp.json for one (keep the key out of git). Then turn kiku on in Cursor Settings, under MCP.

Any other MCP app

Command /Applications/Kiku.app/Contents/Helpers/kiku, argument mcp, and the key in the KIKU_TOKEN environment variable.

Then ask, for example: "What did we decide about the launch date?" or "Write the follow-up to this morning's call."

Command line

kiku api, for your scripts.

The same helper answers in a shell, with one subcommand per operation. kiku api lists them and kiku api list_meetings --help explains one. It prints JSON when piped (or with --json) and a table in a terminal.

export KIKU_TOKEN=kk_...
alias kiku=/Applications/Kiku.app/Contents/Helpers/kiku
kiku api list_meetings --since 7d
kiku api get_meeting 1791194400000-launch01 --json | jq .result.notes
kiku api brief --people "Léa Martin" --people "Tom Becker"

Local API

A REST API that stays on your Mac.

Under it all is a REST API on a socket in Kiku's folder that only you can open: no network port, so no web page and no other user can reach it. It describes itself at /v1/openapi.json, and at /v1/llms.txt for agents that read a page. Every answer cites its call.

curl --unix-socket "$HOME/Library/Application Support/Kiku/api.sock" \
  -H "Authorization: Bearer $KIKU_TOKEN" \
  "http://localhost/v1/meetings?since=7d"

What it answers

search
Past calls by keywords, best first, with the lines that match.
list_meetings
Calls, newest first, by date, person or app.
get_meeting
One call's notes: summary, decisions, next steps.
list_people
The people Kiku knows from your calls.
get_person
Calls with someone, and the next steps both ways.
list_commitments
Next steps still open, yours or theirs.
list_decisions
What was decided, on a subject.
brief
A brief before a meeting with these people.

If it does not answer

unauthorized
The key is not one Kiku knows: the agent was revoked, or the key was mistyped.
off
Agents is off in Kiku's Settings.
needs_app
Kiku is not running. Open it.

In your hands

What stays yours.

Kiku sends nothing itself. An agent you connect usually sends what it reads to its model's company to answer you, and the others on your calls did not choose that. Programs that run as you on this Mac can also read Kiku's folder directly: a key only controls what they get through Kiku.

Claude Code can read files through its shell. To keep it to what you allowed, add this to ~/.claude/settings.json:

"permissions": {
  "deny": [
    "Read(~/Library/Application Support/Kiku/**)",
    "Bash(*Application Support/Kiku*)"
  ]
}