Home

An agent on your own notes

Built for writing and planning, not chatting. Want AI help? Connect the assistant you already use.

Your assistant can search, read, and write everything in Pikos. There's no account to connect, no API key to paste, and no Pikos server in the middle. pikos mcp talks to whatever started it over stdin and stdout, and that's the whole of Pikos's network story.

Where your notes go after that is up to the assistant. Claude, ChatGPT, and other cloud assistants send what they read to their provider, the same as anything else you share with them. A model running on your own computer keeps it all there.

The same pikos command works from a terminal, against the same SQLite file the app uses.

Install it

brew install pikos-app/tap/pikos-cli

On Linux, grab the x86_64 tarball from the latest release.

Open the desktop app once before you start. It creates the workspace file, and the CLI opens that same file rather than making its own.

Give an agent access

pikos mcp speaks the Model Context Protocol over stdio. Point any MCP client at it:

{
  "mcpServers": {
    "pikos": { "command": "pikos", "args": ["mcp"] }
  }
}

That block works in Claude Desktop, Claude Code, and anything else that reads an MCP server config. The agent can search and read pages, list them with the full filter set, create and update them, and complete, delete, or restore them. It can also work with folders and reminders. Each tool runs the same code the matching subcommand does, so the two can't drift apart.

It never opens a port. The server talks over stdin and stdout to the process that started it, and there's a test in the suite that fails if it ever opens a listening socket. Pikos hands your notes to the assistant that started it and to nothing else.

From the terminal

pikos today
pikos add "Email Sam tomorrow 2pm #work !high"
pikos list --tag work --status not_started
pikos search "quarterly review"

Quick add understands the same natural language the app does, so dates, tags, folders, and priorities come out of the sentence you type. Add --json to any command to get machine-readable output instead of a table.

One thing to know: add runs that parser in a short-lived Node process, so it needs Node on your PATH. Reading, listing, searching, and completing are pure Rust and don't.

What it won't do

Lose your work. Deleting moves a page to the trash and restoring brings it back. There's no hard delete over MCP, so nothing an agent does is one-way.

Upgrade your workspace behind your back. A schema upgrade is one-way and would lock your installed app out until you update it too, so the server refuses and tells you to run it yourself.

Send anything anywhere. There's no telemetry in the CLI or the server, and no model runs inside Pikos. The app you point at it does the thinking; Pikos just holds the notes.

Full reference

Every subcommand, every flag, and every MCP tool is documented in the CLI readme. Found a gap, or want a tool that isn't there? Tell me.