Skip to content
Kajero

CLI and MCP

Install the kajero command and connect Claude Code or another MCP client to your notes.

One kajero command works on the same notes as the app, also while the app is closed. It reads and writes through the same services as the app, so scoping, validation and version history apply to every client.

Install the command

The command ships inside the app. Run Install Command Line Tool… from ⌘K. It links kajero into /usr/local/bin; macOS asks for your administrator password if that folder is not writable. An existing file there that is not Kajero's is replaced only after you confirm.

This works from the packaged app only. After installing, Kajero shows the path and a ready-made MCP configuration.

Grant access

Every command needs an explicit scope. Without one it fails with MissingScopeError.

FlagGrants
--workspace <slug>One workspace; repeat the flag for several
--inboxThe Inbox
--allEvery workspace and the Inbox (not combinable with the other two)

A workspace, folder or note outside the grant behaves as if it did not exist.

Commands

CommandDoes
kajero listList notes (--folder, --tag)
kajero read <note-id>Print a note as Markdown
kajero search <terms…>Search notes (--folder, --tag)
kajero createCreate a note from Markdown on stdin (--title, --folder, --tag)
kajero captureCreate an Inbox note from Markdown on stdin (--title)
kajero export <directory>Write notes as Markdown files with attachments (--folder or --note)
kajero import <directory>Import a folder of Markdown files into a new folder
kajero mcpServe the note tools over MCP on stdio

Add --json to print JSON instead of text (not for mcp). kajero --help prints the full usage.

kajero search --workspace work "quarterly plan"
echo "Call the dentist" | kajero capture --inbox

Connect Claude Code

claude mcp add kajero -- kajero mcp --workspace work

Replace work with the slug of your workspace.

Connect another MCP client

Any client that starts a stdio MCP server can use this configuration. Use the full path the installer shows (usually /usr/local/bin/kajero):

{
  "mcpServers": {
    "kajero": {
      "command": "/usr/local/bin/kajero",
      "args": ["mcp", "--workspace", "work"]
    }
  }
}

Each server instance sees only what its flags grant. To give one agent two workspaces, repeat --workspace. To keep work and private notes apart, register one server per context.

Tools

The MCP server offers: list_workspaces, list_folders, list_tags, search_notes, read_note, create_note, update_note, move_note, set_tags, archive_note, delete_note and propose_edit.

delete_note is a soft delete: the note goes to the Trash. Whiteboards are readable as text, but an agent cannot edit the drawing itself.

Actor revisions

Every write by an agent creates a revision whose actor is agent:<client>, with <client> taken from the name the MCP client reports when it connects. A client that reports no name is refused (MissingClientNameError). Commands you run yourself in a terminal are recorded as agent:cli.

update_note takes the revision from read_note as baseRevision. If the note changed in between, the call fails with StaleRevisionError and the agent reads the note again before retrying. An agent therefore never overwrites an edit it has not seen.

Open Agent activity in the app (G then A) to see every change with a diff and revert it with one click.