Runs where your work is
Files, spreadsheets, connected services. Not a chat box that hands you instructions to carry out yourself.
An agent that does the work, and the memory layer underneath it. They are useful separately and they are designed to compose.
desktop agent · open source · macOS & Windows
A local-first desktop agent. Give it an outcome and it plans the work, moves through your files and connected tools, and stops for your approval before anything important leaves the building.
Files, spreadsheets, connected services. Not a chat box that hands you instructions to carry out yourself.
Anything consequential stops and waits. You see the action before it happens, not after.
Every run is a record you can re-open, inspect step by step, and hand to someone else.
Bring your own provider key. Nothing is routed through us.
Source
Open
Keys
BYOK
Platforms
macOS · Windows
local agent memory · CLI + MCP · macOS & Linux
One local memory that coding agents and application frameworks can share. Kaleidoscope exposes a developer-friendly CLI and a two-tool stdio MCP server while its proprietary engine remains a source-free native binary on your machine.
Codex, Claude Code, Cursor, OpenCode, and application frameworks use the same local profile.
Start with the CLI, or connect LangGraph, OpenAI Agents SDK, CrewAI, and other MCP hosts through the MCP server.
The proprietary memory engine ships as one source-free native binary for your platform. Its source is not in the package.
Agents receive exactly two MCP tools: search and remember. Account and operator work stays outside the model-facing surface.
Interfaces
CLI · MCP
Platforms
macOS · Linux
Status
On npm · needs a key
Kaleidoscope installs from npm on macOS and Linux, on arm64 and x86_64, with Node.js 18 or newer. It needs a key to run: email contact@kleosresearch.xyz and we will send you one. There is no Python package yet.
npm install -g @kleos-research/kaleidoscope
0xCopilot is an agent. Kaleidoscope is what an agent remembers. You can run the agent without the memory layer, and you can point the memory layer at an agent we did not build — that is the whole reason it is harness-neutral rather than a feature.
Keeping them separate is a research position as much as a product one. If memory only ever ran inside our own agent, we could not measure whether it helps, because we would have nothing to compare it against.