The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Anythink Cli listing page.
The official command-line interface for Anythink — the headless backend platform for developers and founders. Manage your projects, entities, data, workflows, users, files, and payments without leaving the terminal.
Both the anythink CLI and the anythink-mcp server are distributed together. The quickest way to get both is Homebrew.
This installs both commands onto your PATH:
anythink — the CLIanythink-mcp — the MCP server (see MCP server)Upgrade later with brew upgrade anythink.
Grab the latest release for your platform from the Releases page:
| Platform | Binary |
|---|---|
| macOS (Apple Silicon) | anythink-osx-arm64 |
| macOS (Intel) | anythink-osx-x64 |
| Linux (x86_64) | anythink-linux-x64 |
| Linux (ARM64) | anythink-linux-arm64 |
The MCP server ships as a matching anythink-mcp-<platform> binary on the same release — download and install it the same way (e.g. anythink-mcp-osx-arm64).
Verify the download against checksums.txt in the release assets:
If you have the .NET 8 SDK installed:
Your credentials and project profiles are stored in ~/.anythink/config.json. You can manage multiple projects by running projects use to switch between them.
signup and login are interactive — they prompt for email and password and walk you through connecting to a billing account and project on first run.
Manage billing accounts. A billing account is the container for one or more projects and holds your subscription and payment details.
Examples
Create and manage Anythink projects. Each project is an isolated backend instance with its own database, auth, files, and workflows.
Options — projects create
| Flag | Description |
|---|---|
--region <id> | Deployment region (e.g. lon1) |
--plan <id> | Plan ID (see anythink plans) |
Examples
View and manage saved CLI profiles.
Profiles are named by project alias or ID and stored in ~/.anythink/config.json.
Manage entities (database tables) in the active project.
Options — entities create
| Flag | Description |
|---|---|
--rls | Enable row-level security |
--public | Make the entity publicly readable |
--lock | Lock new records (prevent direct creation) |
--junction | Mark as a junction (many-to-many) table |
Examples
Manage fields on an entity. Fields map directly to database columns.
Options — fields add
| Flag | Description |
|---|---|
--type <type> | Field type: varchar, text, int, float, bool, datetime, json, uuid |
--required | Mark the field as required |
--unique | Enforce a unique constraint |
--indexed | Add a database index |
--default <value> | Default value |
Examples
CRUD operations on entity records.
Options — data list
| Flag | Description |
|---|---|
--limit <n> | Records per page (default: 20) |
--page <n> | Page number (default: 1) |
--filter <json> | Filter expression (JSON) |
--json | Output raw JSON instead of table |
--all | Stream all pages as sequential JSON objects (requires --json, constant memory) |
Options — data create / data update
| Flag | Description |
|---|---|
--data <json> | JSON object of field values |
Examples
Full-text search across your entities, plus index lifecycle management.
Options — search query
| Flag | Description |
|---|---|
--entities <list> | Comma-separated entity names. Default: all indexed entities. |
--filter <expr> | Filter expression, e.g. "status=published AND category=news". Supports _geoRadius. |
--sort <list> | Comma-separated sort fields, e.g. "created_at:desc,id:asc". |
--facet <fields> | Comma-separated fields to compute facet counts on. |
--highlight | Highlight matched terms in results. |
--page N | Page number (default: 1). |
--limit N | Results per page (1-100, default: 20). |
--public | Use the unauthenticated /search/public endpoint (only public-marked fields). |
--json | Print the raw response JSON. |
Index lifecycle
rehydrate and purge are admin operations on the search index:
search rehydrate — rebuilds the index from the database (no data loss; just resyncs)search purge — deletes the index (run rehydrate after to repopulate)Both confirm by default; pass -y / --yes to skip the prompt for automation.
search audit — public-search data leak check
Compares what the entity's schema says should be public-searchable (fields with publicly_searchable=true and the entity's own is_public=true) against what /search/public actually returns. Any field appearing in public results that isn't on the allowlist is reported as a leak.
Exits with code 1 if a leak is detected — useful for CI/CD.
Examples
Manage automation workflows. Workflows can be triggered on a cron schedule, when entities are created or updated, or manually.
Options — workflows create
| Flag | Description |
|---|---|
--trigger <type> | Trigger type: Timed, EntityCreated, EntityUpdated, Manual |
--cron <expr> | Cron expression (for Timed trigger, e.g. 0 6 * * *) |
--entity <name> | Entity name (for EntityCreated / EntityUpdated triggers) |
Examples
Manage users in the active project.
Options — users invite
| Flag | Description |
|---|---|
--role-id <id> | Assign a role to the new user |
Examples
Manage uploaded files in the active project.
Options — files list
| Flag | Description |
|---|---|
--page <n> | Page number |
--limit <n> | Files per page (default: 25) |
Options — files upload
| Flag | Description |
|---|---|
--public | Make the file publicly accessible |
Examples
Manage roles in the active project. Roles control what authenticated users can access.
Options — roles create
| Flag | Description |
|---|---|
--description <text> | Human-readable description of the role |
Examples
Issue and manage API keys for non-interactive access (CI pipelines, scripts, integrations). Each key is scoped to a permission set, has an expiry, and is tied to the user that created it.
The raw key is shown once on creation and never retrievable — save it immediately or use --save-as to write it directly into a CLI profile.
Options — api-keys create
| Flag | Description |
|---|---|
--permissions <list> | Required. Comma-separated permission names, e.g. data:read,data:create |
--expires-in <days> | Days until expiry (default: 90, max: 365) |
--no-expiry-cap | Allow --expires-in greater than 365 days |
--save-as <profile> | Save the new key directly to a CLI profile instead of printing it |
--json | Print the response as JSON to stdout (the key is in this output — handle carefully) |
-y, --yes | Skip the confirmation prompt |
Output behaviour
By default, the success message goes to stdout and the raw key goes to stderr on its own line. This makes it easy to capture only the key:
If the server drops any of the requested permissions because the current user does not hold them, the CLI surfaces a loud warning so you do not end up with a quietly under-scoped key.
Examples
Manage dashboard sidebar menus in the active project. Menus control what entities appear in the Anythink dashboard and how they are grouped.
Options — menus add-item
| Flag | Description |
|---|---|
--icon <name> | Lucide icon name (e.g. MessageCircle, Target) |
--name <text> | Display name (defaults to entity name, title-cased) |
--parent <id> | Parent menu item ID for nesting under a group |
Examples
Manage integrations — both the catalog of available providers (Claude, OpenAI, Slack, Google, etc.) and the active connections that hold credentials for them.
API-key providers — integrations connect
| Flag | Description |
|---|---|
--api-key <key> | API key for the provider. If omitted, you'll be prompted (input is hidden). |
--name <name> | Friendly name for this connection (default: <provider> connection) |
--user-connection | Make this a user-scoped connection (only the current user sees it). Default: tenant-wide. |
OAuth providers — integrations oauth connect
The CLI starts a local HTTP listener on http://localhost:8745/callback, opens your browser to the provider's authorisation URL, and exchanges the returned code for a connection — no copy/paste of auth codes required.
| Flag | Description |
|---|---|
--name <name> | Friendly name for this connection |
--user-connection | Make this a user-scoped connection |
--port <n> | Local callback port (default: 8745) |
--no-open | Don't try to open the browser — just print the URL |
--timeout <secs> | How long to wait for the callback (default: 300) |
OAuth credentials need to be set up once per provider before you can connect:
Running operations — integrations execute
| Flag | Description |
|---|---|
--input <k=v> | Input parameter as key=value. Repeatable. |
--inputs <json> | All inputs as a JSON object. |
--json | Print the full JSON response (default: just the content field if present). |
Examples
Configure and manage Anythink Pay — the built-in Stripe Connect integration for accepting payments in your project.
Options — pay payments
| Flag | Description |
|---|---|
--page <n> | Page number |
--limit <n> | Payments per page (default: 25) |
pay connect is interactive — it prompts for business type, country, and contact email, creates a Stripe Connect account, then opens the Stripe onboarding URL in your browser.
Examples
Configure OAuth social sign-in providers for the active project.
Google OAuth lets your project's users sign in with their Google account. You'll need a Google Cloud project with the OAuth 2.0 credentials created — see the Google Cloud Console.
Set the authorised redirect URI in your Google Cloud credentials to:
Examples
List all API endpoints available for the active project — both platform routes and the dynamically generated REST routes for your entities.
Print the full CLI reference.
Copy the entity schema (entities + fields) from one project profile to another. Useful for promoting a schema from staging to production.
Options
| Flag | Description |
|---|---|
--from <profile> | Source profile name (required) |
--to <profile> | Destination profile name (required) |
--dry-run | Show what would be migrated without making changes |
Examples
List available Anythink plans.
The Anythink MCP server exposes the platform to AI assistants (Claude, Cursor, etc.) via the Model Context Protocol.
No install needed — the recommended way is to run it on demand with npx:
Prefer a native binary on your PATH? Any of:
For Claude Code, register it in one command:
Or add it to your MCP client config manually (e.g. .mcp.json):
To pin a profile, add it to args: ["-y", "@anythink-cloud/mcp", "--profile", "my-project"]
Works in any MCP client. Most use the same mcpServers JSON shown above — just add it to the client's config file:
| Client | Config file |
|---|---|
| Claude Code | claude mcp add anythink -- npx -y @anythink-cloud/mcp (or .mcp.json) |
| Claude Desktop | claude_desktop_config.json (Settings → Developer → Edit Config) |
| Cursor | ~/.cursor/mcp.json (or the Add to Cursor button above) |
| VS Code | .vscode/mcp.json (or the Install in VS Code button above) |
| Cline | cline_mcp_settings.json (MCP Servers → Configure) |
| Windsurf | ~/.codeium/windsurf/mcp_config.json |
A couple of clients use a different config shape:
mcpServers is a list)context_servers, not mcpServers)(Using a native binary instead of npx? Use "command": "anythink-mcp" with no args.)
Once connected, run the login tool, then accounts_use / projects_use to pick your working context.
The MCP server provides dedicated tools for authentication, account/project management, and configuration — plus a generic cli tool that can run any CLI command:
| Tool | Description |
|---|---|
signup | Create a new Anythink account |
login | Log in with email and password |
login_direct | Store credentials directly (org ID + API key or JWT) |
logout | Remove a saved profile |
config_show | List all profiles |
config_use | Switch active profile |
config_remove | Remove a profile |
accounts_list | List billing accounts |
accounts_create | Create a billing account |
accounts_use | Set the active billing account |
projects_list | List projects |
projects_create | Create a project |
projects_use | Connect to a project |
projects_delete | Delete a project |
cli | Run any CLI command (entities, data, workflows, roles, etc.) |
Releases are automated via GitHub Actions. Push a version tag to trigger a build:
The workflow builds self-contained binaries for macOS (arm64, x64) and Linux (x64, arm64), computes SHA256 checksums, and publishes them as a GitHub release.
MIT — see LICENSE. This covers the Anythink CLI and MCP server source in this repository; it does not grant rights to the Anythink platform, APIs, or services, which are governed by separate terms at anythink.cloud.
Built with Spectre.Console · Powered by Anythink