neetorecord is the command line interface for NeetoRecord. It calls the same
v2 REST API that powers the web app, so anything you can read or change through
the API you can also do from a shell script, a
CI job, or an AI coding assistant.
Why use the CLI
No API key to manage
neetorecord login signs you in through the browser and stores a session
per workspace. There is no key to paste into a config file or a CI secret.Readable and scriptable
Commands print a table on a terminal and JSON when piped.
--quiet prints
the bare identifier, which is what you want inside a shell pipeline.Several workspaces at once
Sign in to as many subdomains as you need and choose one per command with
--subdomain.Ready for AI assistants
--toon trims output tokens, and neetorecord setup teaches Claude Code,
Cursor, Windsurf, Copilot, Gemini, and Codex how to drive the CLI.CLI vs MCP: which should I use?
NeetoRecord’s MCP server reaches nearly everything the CLI reaches - recordings, transcripts, chapters, folders, tags, CTAs, analytics, and recording requests. Two gaps are real: only the CLI manages team members, and only MCP reads a publicly shared recording that lives in someone else’s workspace. Everywhere else the two overlap, so choose on how the work reaches NeetoRecord.Reach for the CLI when
- No AI assistant should be in the loop. A cron entry or a CI step runs
neetorecordwith nothing but the binary and the workspace you already signed in to - no assistant open, no model account, no tokens spent per run. Over MCP, something with model access has to be running before any call happens at all. - The output feeds another program.
--quietprints the bare identifier, soid=$(neetorecord folders create --name "Onboarding" --quiet)drops straight into the next command.--jsonreturns the records plus apaginationblock forjq, a spreadsheet, or your own script. An assistant answers in prose you would have to copy out by hand. - You are working through the whole library. Re-tagging or re-foldering
hundreds of recordings is one
neetorecord recordings updateper recording either way, but over MCP each of those is a separate tool call, and every page of results crowds out the assistant’s context. The CLI pages on your terms:--page-size 100with--jsonreportstotal_pagesandtotal_recordsbeside the records, so a loop knows how many pages are left and walks all of them unattended, writing each one to a file or intojq. The size of the library stops mattering. - The run has to be repeatable and reviewable. The command is the artifact:
neetorecord recordings trigger-transcript <id> --language enin a runbook or a pull request makes the identical call next time. Ask twice over MCP and the assistant may take a different route.
Reach for MCP instead when
- The answer is inside the recording. You remember a customer objection came
up in a demo, but not which demo or how it was phrased. The assistant searches
the transcripts, reads what comes back, names the recording, and then shows
you the frame at that timestamp, because the screenshot arrives as an image it
can actually look at.
neetorecord recordings search-by-transcript --queryreturns a list andrecordings screenshotreturns a URL - the reading and the looking are still yours to do. - The details live in your chat, not in your head. A pasted support thread becomes the recording’s summary, its tags, or the label and link on a CTA, with no retyping. The CLI cannot see any of it.
- One request should cover several steps. Start the transcript, wait for it
to finish, generate chapters from it, then write the summary onto the
recording. Over MCP that is a single ask; with the CLI you write the polling
loop that sits between
trigger-transcriptandtranscript-status. - The person doing it does not use a terminal. NeetoRecord hosts the server, so there is nothing to install or keep updated.
Prerequisites
- A NeetoRecord workspace, and your workspace subdomain.
- macOS, Linux, or Windows.
Next steps
Installation
Install the CLI with Homebrew, a shell script, or PowerShell.
Authentication
Sign in, switch workspaces, and check who you are signed in as.
Output formats
Tables, JSON envelopes, quiet mode, and TOON.
Commands
Every command grouped by resource.