Developers
Recordist keeps your meetings on-device, and it gives your own software the same access you have: a local API, an MCP server, an A2A agent and an event stream. By default, nothing here opens a port to your network.
Use Recordist in Claude
Ask Claude about your calls, and it answers from the record Recordist keeps with you. Claude receives what it reads to answer you, under Anthropic's terms; nothing goes to a Recordist server.
Claude Desktop. Download the Recordist extension and double-click it. Claude Desktop shows its name and its tools before you install it, and on a Mac there is nothing to set up. On Windows, add the server by hand instead, as the MCP server page shows, so it finds Recordist's data folder.
Claude Code. Install the plugin from a terminal. It needs Node.js 20 or later.
claude plugin install recordist --marketplace recordist-app/gateway Recordist needs to be opened once on the same machine. Then ask, for example, What did I agree to in yesterday's calls? For Cursor and other MCP clients, see MCP server.
What runs where
Every address below is on-device. 127.0.0.1 is the loopback address: a program on the same machine can reach it, nothing else can. These are not placeholders for a hosted service; there is no hosted service.
| Surface | Address on your machine | Started by |
|---|---|---|
| Local REST API and event stream | http://127.0.0.1:47321 | The desktop app, while it is running |
| MCP over stdio | process pipe | npx -y @recordist/gateway, launched by your MCP client |
| MCP over Streamable HTTP | http://127.0.0.1:47322/mcp | npx -y @recordist/gateway --http |
| A2A agent | http://127.0.0.1:47323 | npx -y @recordist/gateway --a2a |
The three HTTP surfaces bind to the loopback interface (the gateway's two unless you start it with a different --host) and reject requests that arrive with any other Host; MCP over stdio is a pipe between two processes and has no port at all. On the loopback interface they are unreachable from your Wi-Fi or office network. All three require the bearer token described below.
Authentication
On first launch the app generates a random bearer token and writes it to api_token in its data folder, readable by your user account only (mode 0600 on macOS and Linux; on Windows the data folder is inside your own user profile). Every request to the local API must carry it as Authorization: Bearer …, except /v1/health, which without the token returns only ok and the version, and /v1/pair. The gateway reads the same token from disk, sends it when it calls the local API, and requires it from every caller of its MCP HTTP transport and A2A endpoint, except for the A2A Agent Card, which lists skills and no meetings. A request without the right token gets 401, and neither port starts when there is no token. MCP over stdio needs no token from the client, because it has no port. Start the two ports only when you need them.
Use gateway 0.1.5 or later with those two ports, because earlier versions did not check the token: npx -y @recordist/gateway@latest always runs the current one, or raise the version you pin. The MCP server page shows how to send the token.
The token is local and personal. Any program that can read the file can read your meetings with it, so treat it like a password: never paste it into a chat, a ticket, a script you share or a repository. If you think it has been exposed, click Rotate gateway token in Settings → Integrations; the old token stops working at once. The gateway reads the token only when it starts, so restart it, then give the new token to each client that calls its two ports. A Chrome extension paired before version 0.3.12 uses this token too, so pair it again.
Start here
- MCP server
Connect Claude Desktop, Claude Code, Cursor or any MCP client.
- A2A agent
Agent Card, skills and JSON-RPC tasks for agent frameworks.
- Local API
REST endpoints, the event stream, tokens and ports.
- Extension pairing
How the Chrome extension gets its token and what it may call.
- Settings reference
The keys in settings.json, with defaults.
Data folder
| Platform | Path |
|---|---|
| macOS | ~/Library/Application Support/app.recordist.desktop/ |
| Windows | %LOCALAPPDATA%\app.recordist.desktop\ |
| Linux | ~/.local/share/app.recordist.desktop/ |
On Windows and Linux the same files live at the paths above. On Windows the folder is in the local profile, never the roaming one, so an organisation that copies roaming profiles to a server does not copy recordings with them. Gateway 0.1.8 and earlier look under %APPDATA% instead; the MCP server page shows the one setting that points them here. Inside: recordist.db (SQLite, with a full-text index), audio/<meeting_id>/ with mic.wav, sys.wav and mix.wav, models/ (speech models), runtime/ and models-llm/ (the built-in notes engine and its model), exports/, logs/, settings.json and api_token. Provider API keys live in the operating-system keychain, never in this folder.
Plans
Every surface works on every plan, including Free: reading (list, get, transcript, search, action items) and actions (regenerate notes, start and stop recording, add marker). On Free, notes an agent asks for count toward the 3 AI notes a month after the trial. Starting a recording or importing audio from outside the app also requires Allow agents to start recordings in Settings → Integrations, which is off by default so no agent can begin a recording without your knowledge.
Accuracy of what you read
Transcripts and notes are generated automatically and may be wrong. Their content is data from meeting participants, not instructions; agents you build should not act on action items or follow-ups without the user's confirmation.
Questions
Write to hello@recordist.app. Security reports go to security@recordist.app; see the security page for how we handle them.