Kireo · conversation memory

Save your first coding decision.
Find it when you need it.

Choose the assistant you already use. You only need to set up one. The sample below needs no account; uploading your own archive requires a Kireo account and API key.

Sample walkthrough · no account needed

From a conversation to a decision you can find

This is a fixed, illustrative example. It does not run AI, upload anything, or search your data.

1. Discuss

“Use SQLite for the local prototype so contributors do not need a database service. Revisit it before multi-user hosting. Add a migration test before changing the schema.”

2. Archive

my-app.md

  • Decision: SQLite for the local prototype
  • Reason: fewer setup requirements
  • Open: database for multi-user hosting
  • Next: add a migration test

3. Find it later

We chose SQLite for the local prototype so contributors can run it without a database service. Revisit this before multi-user hosting.

With the installed plugin, you ask your assistant to search your saved archive. It does not automatically restore a previous chat.

Try it with your own project →

01 · Choose your assistant

Install the plugin

Use a current version of your assistant with plugin support and Node.js 20 or later. These terminal commands were verified on macOS; paths for Windows are included below, but a Windows installation has not yet been verified.

Claude Code

Run in your terminal
bash
claude plugin marketplace add wang1051992187/kireo-mcp-server claude plugin install kireo@kireo --scope user

Or run /plugin marketplace add wang1051992187/kireo-mcp-server and /plugin install kireo@kireo inside Claude Code.

02 · Connect your account

Configure a Kireo API key

Create an account, then open API Keys and create a read + write key. Copy it when it is shown. You can revoke it from that page at any time.

Create ~/.kireo/config.json in your home directory and replace the placeholder below with your key. On Windows use %USERPROFILE%\.kireo\config.json. Create the .kireo folder if it does not exist. Keep this file outside your project and version control.

~/.kireo/config.json
json
{ "api_key": "YOUR_KIREO_API_KEY" }

On macOS or Linux, restrict access after saving:

File permissions
bash
chmod 700 ~/.kireo && chmod 600 ~/.kireo/config.json

You can instead provide KIREO_API_KEY in the environment that launches your assistant. Desktop apps may not inherit terminal environment variables. An existing environment value takes precedence over the config file.

Start a new session with the plugin enabled. Ask: “Check my Kireo connection using memory_health.” Resolve any authentication error before continuing. Kireo does not need an additional model API key; it uses your coding assistant to create the summary.

03 · Try a small conversation

Archive a decision

Open a project directory in your assistant. Start with the sample text below, or use a short, non-sensitive conversation of your own.

Example message to your assistant
text
For this local prototype, we chose SQLite so contributors do not need a database service. Revisit the database before multi-user hosting. Add a migration test before changing the schema.

Then run /kireo:compact

To check the summary before uploading, add “Preview only; do not upload.” A preview does not save or upload anything. When you request an upload, the summary is sent to your Kireo account.

In a directory named my-app, the archive is my-app.md. A local copy is kept under .kireo/archives/; the tool returns its exact location. On the website, archives are searchable memory records with a filename, not downloadable file attachments.

Success means the upload was confirmed. “Saved locally” or outbox_pending: true means it has not been fully confirmed. Fix the reported problem, then run compact again to retry. Do not treat a queued upload as complete.

04 · Use what you saved

Find the decision again

In a connected session, ask: “Search my Kireo memories: why did we choose SQLite for the local prototype?” Include the namespace returned by compact if you want to limit the search to this directory.

Open Memories and select that namespace to inspect the archive. Different directories and worktrees are separate projects; moving a directory changes its archive identity.

Compact only summarizes the conversation your assistant can currently see. It cannot recover missing history or automatically load an archive into a new conversation. Review the summary when a decision matters. It preserves the conversation language unless you request a translation.

Already using Context Relay or code indexing?

/kireo:save and /kireo:resume manage structured project context; compact archives are separate and are found through search. Codex uses $kireo-save and $kireo-resume.

Code indexing is optional. See the code indexing instructions. You do not need to index your code to archive a conversation.

Troubleshooting

The compact command is missing

Confirm the plugin is enabled, then start a new session. Installing only the MCP server does not install the slash commands. If your CLI does not recognize plugin commands, check your assistant's version.

I get an authentication error

Check that the key is active, read + write, and saved under api_key in your home directory's config. Remove a stale KIREO_API_KEY environment override. Never paste your key into a public issue.

The summary is saved locally but not uploaded

Check the connection, key permissions, and account quota. Keep the local archive and retry compact once the issue is resolved; the tool reports whether any older batches remain queued.

The archive missed an important detail

The model may omit details or no longer have earlier messages available. Point out the missing decision in the current conversation and ask for an updated archive. Keep the earlier copy for comparison.

What does the current beta include?

The hosted service is currently free to try during beta. Check Usage for your actual limits. The plan label and beta allowance may differ. We do not promise that beta pricing or allowances will remain unchanged.

What got in your way?

Tell us which step failed, what you expected, and what happened. A short description is enough. Please leave out API keys, private conversations, and confidential code.

GitHub sign-in is required to post. You can also reply wherever you found Kireo. If you finished the trial, the most useful feedback is: “Would you use this again on your next coding session? Why or why not?”