The fusedframes command finds and reads the documents FusedFrames makes from
your recorded work. It is built for scripts and for AI coding agents like
Claude Code and Cursor: every command prints JSON that other tools can parse.
It is read-only. It cannot record anything and it cannot create, change or
delete anything. Recording stays in the desktop app.
Install
npm install -g @fusedframes/cliThe npm package needs Node.js 20 or later. If you would rather not use Node,
standalone binaries for macOS, Linux and Windows are on
GitHub Releases
with a SHA256SUMS file to check your download against.
Set your API key
The CLI needs an API key; see Authentication to create one and to understand what a key can see. Pipe the key in on standard input:
echo "ff_your_key" | fusedframes config set-keyKeys typed on the command line leak into your shell history, so the CLI only
reads keys from stdin and refuses one passed as an argument. In an interactive
terminal, fusedframes config set-key on its own prompts for the key with
hidden input.
fusedframes config showprints your settings with the key masked.- The
FUSEDFRAMES_API_KEYenvironment variable overrides the saved key. fusedframes logoutremoves the saved key from your computer.
Commands
search and documents list filter with --category, --tag and --app;
search also takes --library <id> to stay inside one library. search,
documents list and documents source-recordings page their results with
--page and --page-size (page 1 and 20 results per page by default).
Examples
Output is always compact JSON on one line, so pipe it to jq when you want to
read it yourself. Search every library you can see, filtered to one
application:
fusedframes search "failed deployment" --app Terminal | jqA trimmed response:
{
"documents": [
{
"id": "doc_01h...",
"title": "Roll back a failed deployment",
"category": "Deploys",
"relevance": { "score": 0.91, "semanticSimilarity": 0.88 }
}
],
"total": 1,
"matchedTotal": 1,
"lowConfidence": false
}Read the full document behind a hit, with its edges included:
fusedframes documents get doc_01h...Follow the document's outgoing edges two steps to see what usually comes next:
fusedframes traverse doc_01h... --direction outgoing --label "often next" --depth 2Errors print as JSON too, in the shape
{"error":{"code":"...","message":"..."}}, and the exit code is 1 for any
error. A typical agent run chains the read commands: search, then
documents get, then traverse, then documents source-recordings for the
real examples behind a document.