SuperAPI AI Directory

anythink-cli

#️⃣ ☁️ 🍎 🪟 🐧 - Build and run a backend on the Anythink platform: relational data with row-level security, search, RBAC, workflows, growth and retention tools, and payments.

Open website

About this tool

Anythink CLI is the official command-line interface for the Anythink headless backend platform, aimed at developers and entrepreneurs, allowing users to manage backend projects from the terminal. The Anythink platform itself provides relational data with row-level security, search, RBAC, workflows, growth and retention tools, and payment capabilities, and the CLI covers the platform's main operations.

Main capabilities

  • Accounts and projects: signup, login, and logout are interactive operations; on first run, it guides you through connecting a billing account and a project; billing accounts manages billing accounts (a billing account contains one or more projects and holds subscription and payment information); projects creates and manages projects, each project being an independent backend instance with its own database, authentication, files, and workflows; config views and manages the CLI configuration file, and projects use can be used to switch between multiple projects.
  • Entities and fields: entities manages entities (database tables) in a project, fields manages entity fields, and fields map directly to database columns.
  • Data operations: data provides record-level CRUD; data list supports filter operators; data export streams exports to a file page by page, data import creates one record per line, and you should first validate with --dry-run before importing.
  • Search: cross-entity full-text search, with support for index lifecycle management; search rehydrate rebuilds the index from the database, search purge deletes the index, search audit checks for public search data leaks (the exit code is 1 when a leak is detected, which can be used in CI/CD).
  • Workflows: workflows manages automated workflows, and triggers can be cron schedules, entity events, API routes, or manual runs.
  • Users and files: users manages project users; files manages uploaded files.
  • Email: view and edit transactional email templates (confirmation, invitation, recovery, etc.) as well as the HTML shell that wraps the body of all emails.
  • Roles and API keys: roles control what authenticated users can access; api-keys issues and manages keys for non-interactive access such as CI pipelines, scripts, and integrations; keys include permission scopes and expiration, are bound to their creator, and the original key is shown only once at creation time and cannot be retrieved afterward.
  • Menus, charts, and dashboards: menus managesDashboard sidebar menu; charts builds and previews charts; dashboards manages dashboards composed of widgets such as charts, lists, and notes, using a 12-column grid layout.
  • Project settings and integrations: settings views and modifies project settings, including CORS origins that allow browsers to call the API; integrations manages the catalog of available providers (Claude, OpenAI, Slack, Google, etc.) and their credential connections.
  • Payments and subscriptions: pay manages AnythinkPay, including Stripe Connect, Apple in-app purchases, payments, subscription plans, and live subscriptions.

Installation methods

  • Homebrew (macOS / Linux, recommended): installs both the anythink CLI and anythink-mcp (MCP server) to PATH; you can also tap first and then install, and can update to the latest version.
  • Download binaries (macOS / Linux): get the latest version for the corresponding platform from the Releases page; the MCP server is the anythink-mcp-<platform> binary matching the platform in the same release; checksums.txt can be used to verify downloads.
  • .NET global tool: requires the .NET 8 SDK.
  • Build from source.

Configuration and usage Credentials and project configuration are stored in ~/.anythink/config.json; configurations are named by project alias or ID and can be switched via projects use.

Details of data import and export (based on the materials)

  • Filter operators (JSON form): {"field": value} exact match, {"field": [a, b]} matches any one, {"field": null} matches null values; otherwise use operator objects, such as {"price": {"gte": 10, "lt": 100}}.
  • CSV follows RFC 4180: cells containing commas, quotes, or line breaks are quoted, quotes are doubled, and quoted cells can span lines; objects, arrays, JSON fields, and relationships are written as compact JSON text.
  • Formula protection (export): CSV text beginning with =, +, -, @, tab, or carriage return is prefixed with ', to prevent spreadsheet software from executing it as a formula; numbers are unaffected, including +44 Phone numbers such as 20 7946 0000. This guard is one-way: when importing the file, the ' is preserved, unless --no-formula-guard is used on export.
  • Types are handled as entity fields: text preserves exact characters (00123 remains 00123); integers and decimals require . as the decimal point (1,5 will be rejected, not guessed); booleans accept true/false, 1/0, yes/no; dates must be ISO 8601 (2025-03-31, 2025-03-31T09:30:00Z, with no offset treated as UTC); JSON fields must be valid JSON.
  • Empty CSV cells are sent as null; empty strings in JSON and JSONL input remain empty strings.
  • Error rows are skipped rather than sent, and the row number is reported (for CSV it is the record number, with the header as row 1; for JSONL it is the line number; for JSON it is the array position) and counted in skipped; rows rejected by the server are counted in failed. If anything is skipped or fails, the exit code is non-zero.
  • Retries: 400, 409, and 422 are never retried, to avoid duplicate creation; only 429/503 responses and requests that never reached the server (DNS, connection, or TLS failures) are retried. On timeout or disconnection after sending, the row is reported as UNCERTAIN: may have been created, and the project must be checked before re-importing.
  • System columns are ignored on import: id, created_at, updated_at, tenant_id, and locked are never sent, and the import states which ones were ignored; re-importing an exported file into the same project creates duplicate records with new ids and timestamps rather than updating the original records.
  • One-to-many collections and secret fields are skipped on import; one-to-many columns are not exported unless specified in --fields; many-to-many, file, and user columns are copied by id, are meaningful only within the same project, and produce one warning per column on import.
  • Empty boolean cells are sent as null rather than false.
  • Ctrl+C stops reading the file, finishes the already-queued rows, and prints a partial summary (exit code 1); an interrupted export deletes temporary files.
  • data import and data export read and write local files, so they are not provided through the hosted (HTTP) MCP server.

Use cases Suitable for developers who want to manage backend projects, entities, and data uniformly from the terminal, workflows, users, files, email templates, roles, secrets, dashboards, integrations, and payments; it is also suitable for using search audit in CI/CD for public search leakage checks and api-keys for non-interactive access.

Limitations and notes (based on the materials)

  • Not currently supported: updating by key or upserting existing records, looking up relationships by natural key (the related record's id must be used), and file uploads.
  • When using the MCP server, file-related options are not available, and agents must pass HTML inline via content_text, wrapper_text, or html_text.
  • Some commands require confirmation (such as cancel, delete, expire, reassociate, pause, etc.), which can be skipped with -y / --yes; in a non-interactive shell, running without this parameter will be refused.
  • Changing some settings (such as pointing default_role_id to an administrator role) requires --yes; allow_registrations set to true and require_email_confirmation set to false will require confirmation.
  • CORS origins must be http/https with a host and optional port, with no path, query, or fragment, and a trailing / will be removed; wildcards under shared hosting domains (vercel.app, github.io, etc.) or bare TLDs will be rejected unless --yes is passed.
  • Email HTML is limited to 1,000,000 characters.
  • The raw API key is shown only once at creation and cannot be retrieved again.

Category note: this tool is the command-line interface for the Anythink platform and belongs to the AI development platform category.