Skip to main content
The NeetoForm CLI (neetoform) lets you manage NeetoForm from your terminal. It covers the v2 REST API: create and publish forms, edit their questions, logic and settings, share them, read and export their submissions, and manage team members and workspace settings. It is designed for people comfortable with a terminal or HTTP. You do not need to be a developer: run neetoform setup to connect an AI assistant such as Claude or Cursor, then describe the task in plain language.

Why use the CLI?

Script your form data

Build forms, pull submissions, and manage team members from shell scripts and cron jobs.

Audit from the terminal

Pull forms or submissions, pipe them to jq, and create one-off reports without leaving your shell.

Work in bulk

Page through thousands of submissions in one loop, unattended, and switch workspaces with a single flag.

Built for AI agents

Use token-efficient --toon output and one-command setup for Claude, Cursor, Copilot, and more.

CLI vs MCP: which should I use?

NeetoForm’s MCP server reaches the same resources the CLI does - forms and their questions, logic, settings and submissions, team members, and workspace settings. The MCP server can also show a form inside the chat, exactly as respondents see it, which no neetoform command does. Otherwise neither one can do more than the other, so choose on how the work reaches NeetoForm.

Reach for the CLI when

  • No AI assistant should be in the loop. A cron entry or a CI step runs neetoform with 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. --quiet prints the bare records for jq to pick ids from; --json returns records plus pagination for jq, a spreadsheet, or your own script. An assistant replies in prose you would have to copy out by hand.
  • You are working through thousands of records. Over MCP every page is a separate tool call, and a list that long crowds out the assistant’s context. The CLI pages on your terms instead: --page-size 100 with --json returns total_pages and total_records alongside the records, so a loop knows how many pages are left and walks all of them unattended. Each page lands in a file or goes straight into jq, so nothing has to be held in memory and the size of the list stops mattering.
  • You need the same run every time. A neetoform command is plain text you can save. Drop it into a runbook or a pull request and anyone can read exactly what it will do before it runs, then run it later and get the identical call. An assistant works from a prompt rather than a fixed command, so the same request can come out as a different set of calls on a different day.

Reach for MCP instead when

  • The details live in your chat, not in your head. Paste the thread where three people asked for access and they are invited with the role you name, with no address retyped. The CLI cannot see any of it.
  • The answers need reading, not matching. Submissions carry free text, and an assistant can go through two hundred of them and tell you which complaints keep repeating. jq only matches wording you already knew to look for.
  • One request should cover several steps. Find the form by title, pull last week’s submissions, and list who scored you below 5, with no id copied between commands.
  • The person doing it does not use a terminal. NeetoForm hosts the server, so there is nothing to install or keep updated.
You can have both. Run neetoform setup claude and your AI assistant drives the CLI itself, so a plain-language request still ends in an exact command you can read, repeat, and paste into a script.

What you need

  1. Access to one or more NeetoForm workspaces.
  2. Permission to manage the resources you want to work with (forms, submissions, team members, and so on). The CLI acts as you, so a command fails if your organization role does not allow the operation.
  3. The neetoform binary. See Installation.
Unlike the API, which authenticates with an X-Api-Key header, the CLI signs you in through your browser and stores credentials locally. See Authentication.