Anythink CLI

MCP serverDev tools

Anythink is an all-in-one backend that your AI can set up and configure for you. Once added, your AI handles backend setup in one place instead of stitching together separate services. The project's command line tool lives at github.com/anythink-cloud/anythink-cli.

Use Anythink CLI in Claude, ChatGPT or Ahel Desktop

Free. Sign in, add Anythink CLI and connect your AI. About a minute.

Also: Claude Code · Cursor · Codex

Then ask your AI: use Anythink CLI

Details

Available today. Use it from your connected AI after setup.

Add the integration, then ask your AI to set up and configure your backend with Anythink. The command line tool and its documentation are in the anythink-cli repository on GitHub.

Anythink CLIStart free

What your AI can do with it

  • Set up an all-in-one backend
  • Configure backend settings with your AI
  • Consolidate separate backend services into one place
  • Work with the anythink command line tool

Install Anythink CLI

The server’s own address, for the clients that take one directly. Or connect Ahel once and every client you use reads it from one address, with the account kept on Ahel rather than in each client’s config.

  • Claude Code

    claude mcp add --transport http --scope user anythink-cli 'https://mcp.anythink.cloud/mcp'

    Run it once in your project, then open /mcp to approve any sign-in the server asks for.

  • Claude Desktop

    https://mcp.anythink.cloud/mcp

    Add a custom connector in Settings, paste this address, and approve the sign-in.

  • Cursor

    cursor://anysphere.cursor-deeplink/mcp/install?name=anythink-cli&config=eyJ1cmwiOiJodHRwczovL21jcC5hbnl0aGluay5jbG91ZC9tY3AifQ==

    Open the link and Cursor adds the server at that address.

  • ChatGPT

    https://mcp.anythink.cloud/mcp

    In Settings, enable Developer mode, create an MCP app, and paste this address. Your plan and workspace must allow custom apps.

  • Codex

    codex mcp add anythink-cli --url 'https://mcp.anythink.cloud/mcp'

    Run it once, then sign in with codex mcp login anythink-cli if the server asks for an account.

From the project's README

As published by anythink-cloud/anythink-cli in README.md.

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.

   ░███                             ░██    ░██        ░██           ░██
  ░██░██                            ░██    ░██                      ░██
 ░██  ░██  ░████████  ░██    ░██ ░████████ ░████████  ░██░████████  ░██    ░██
░█████████ ░██    ░██ ░██    ░██    ░██    ░██    ░██ ░██░██    ░██ ░██   ░██
░██    ░██ ░██    ░██ ░██    ░██    ░██    ░██    ░██ ░██░██    ░██ ░███████
░██    ░██ ░██    ░██ ░██   ░███    ░██    ░██    ░██ ░██░██    ░██ ░██   ░██
░██    ░██ ░██    ░██  ░█████░██     ░████ ░██    ░██ ░██░██    ░██ ░██    ░██
                             ░██
                       ░███████

Contents

  • Installation
  • Getting started
  • Command reference
    • signup / login / logout
    • accounts
    • projects
    • config
    • entities
    • fields
    • data
    • search
    • workflows
    • users
    • files
    • roles
    • api-keys
    • menus
    • integrations
    • pay
    • oauth
    • api
    • docs
    • migrate
    • plans
  • MCP server
  • Contributing
  • License

Installation

Both the anythink CLI and the anythink-mcp server are distributed together. The quickest way to get both is Homebrew.

Homebrew (macOS / Linux) — recommended

brew install anythink-cloud/tap/anythink

This installs both commands onto your PATH:

  • anythink — the CLI
  • anythink-mcp — the MCP server (see MCP server)

Upgrade later with brew upgrade anythink.

macOS / Linux — download binary

Grab the latest release for your platform from the Releases page:

PlatformBinary
macOS (Apple Silicon)anythink-osx-arm64
macOS (Intel)anythink-osx-x64
Linux (x86_64)anythink-linux-x64
Linux (ARM64)anythink-linux-arm64
# Example — macOS Apple Silicon
curl -Lo anythink https://github.com/anythink-cloud/anythink-cli/releases/latest/download/anythink-osx-arm64
chmod +x anythink
sudo mv anythink /usr/local/bin/

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:

sha256sum -c checksums.txt --ignore-missing

.NET global tool

If you have the .NET 8 SDK installed:

dotnet tool install --global anythink-cli

Build from source

git clone https://github.com/anythink-cloud/anythink-cli
cd anythink-cli
dotnet build
dotnet run -- --help

Getting started

# 1. Create an account (or log in if you already have one)
anythink signup

# 2. Create a billing account
anythink accounts create --name "My Company"

# 3. Create a project
anythink projects create "My App" --region lon1

# 4. Connect to the project
anythink projects use <project-id>

# 5. Start building
anythink entities list
anythink workflows list

Your credentials and project profiles are stored in ~/.anythink/config.json. You can manage multiple projects by running projects use to switch between them.


Command reference

signup / login / logout

anythink signup                        Create a new Anythink account
anythink login                         Log in to the platform
anythink logout                        Remove saved credentials for a project profile

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.


accounts

Manage billing accounts. A billing account is the container for one or more projects and holds your subscription and payment details.

anythink accounts list                 List your billing accounts
anythink accounts create               Create a new billing account
anythink accounts use <id>             Set the active billing account

Examples

anythink accounts create --name "Acme Ltd" --email billing@acme.com
anythink accounts use a1b2c3d4

projects

Create and manage Anythink projects. Each project is an isolated backend instance with its own database, auth, files, and workflows.

anythink projects list                 List projects in the active billing account
anythink projects create <name>        Create a new project
anythink projects use <id>             Connect to a project (sets it as the active profile)
anythink projects delete <id>          Delete a project

Options — projects create

FlagDescription
--region <id>Deployment region (e.g. lon1)
--plan <id>Plan ID (see anythink plans)

Examples

anythink projects create "My App" --region lon1
anythink projects use a1b2c3d4
anythink projects delete a1b2c3d4 --yes

config

View and manage saved CLI profiles.

anythink config show                   List all profiles and platform settings
anythink config use <profile>          Set the active project profile
anythink config remove <profile>       Remove a profile

Profiles are named by project alias or ID and stored in ~/.anythink/config.json.


entities

Manage entities (database tables) in the active project.

anythink entities list                 List all entities
anythink entities get <name>           Get entity details and fields
anythink entities create <name>        Create a new entity
anythink entities update <name>        Update entity settings
anythink entities delete <name>        Delete an entity and all its data

Options — entities create

FlagDescription
--rlsEnable row-level security
--publicMake the entity publicly readable
--lockLock new records (prevent direct creation)
--junctionMark as a junction (many-to-many) table

Examples

anythink entities create orders --rls
anythink entities get customers
anythink entities delete temp_data --yes

fields

Manage fields on an entity. Fields map directly to database columns.

anythink fields list <entity>          List fields on an entity
anythink fields add <entity> <name>    Add a field
anythink fields delete <entity> <id>   Delete a field

Options — fields add

FlagDescription
--type <type>Field type: varchar, text, int, float, bool, datetime, json, uuid
--requiredMark the field as required
--uniqueEnforce a unique constraint
--indexedAdd a database index
--default <value>Default value

Examples

anythink fields list customers
anythink fields add customers email --type varchar --unique --required
anythink fields add products price --type float --required
anythink fields delete customers 1234 --yes

data

CRUD operations on entity records.

anythink data list <entity>            List records
anythink data get <entity> <id>        Get a single record by ID
anythink data create <entity>          Create a new record
anythink data update <entity> <id>     Update a record
anythink data delete <entity> <id>     Delete a record

Options — data list

FlagDescription
--limit <n>Records per page (default: 20)
--page <n>Page number (default: 1)
--filter <json>Filter expression (JSON)
--jsonOutput raw JSON instead of table
--allStream all pages as sequential JSON objects (requires --json, constant memory)

Options — data create / data update

FlagDescription
--data <json>JSON object of field values

Examples

anythink data list blog_posts --limit 10
anythink data get blog_posts 42
anythink data create blog_posts --data '{"title":"Hello World","status":"draft"}'
anythink data update blog_posts 42 --data '{"status":"approved"}'
anythink data delete blog_posts 42 --yes

search

Full-text search across your entities, plus index lifecycle management.

anythink search query <text>                          Run a search
anythink search similar <entity> <id>                 Find similar documents
anythink search rehydrate [<entity>]                  Rebuild the search index (admin)
anythink search purge [<entity>]                      Wipe the search index (admin)
anythink search audit <entity>                        Compare configured public-searchable fields
                                                       with what public search actually returns

Options — search query

FlagDescription
--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.
--highlightHighlight matched terms in results.
--page NPage number (default: 1).
--limit NResults per page (1-100, default: 20).
--publicUse the unauthenticated /search/public endpoint (only public-marked fields).
--jsonPrint 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

# Browse everything
anythink search query "*"

# Filtered search with sorting
anythink search query "anythink" --filter "status=published" --sort "created_at:desc"

# Compare what public visitors see vs what's in the database
anythink search audit posts
anythink search audit users --query "alice" --sample 10

# Reindex after a schema change
anythink search rehydrate posts
anythink search rehydrate --yes        # everything (admin)

# Geo search (radius in metres)
anythink search query "*" --filter "_geoRadius(51.5074,-0.1278,5000)"

workflows

Manage automation workflows. Workflows can be triggered on a cron schedule, when entities are created or updated, or manually.

anythink workflows list                List all workflows
anythink workflows get <id>            Get workflow details and steps
anythink workflows create <name>       Create a new workflow
anythink workflows enable <id>         Enable a workflow
anythink workflows disable <id>        Disable a workflow
anythink workflows trigger <id>        Manually trigger a workflow
anythink workflows delete <id>         Delete a workflow

Options — workflows create

FlagDescription
--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

anythink workflows create daily-sync --trigger Timed --cron "0 6 * * *"
anythink workflows trigger 76
anythink workflows disable 83

users

Manage users in the active project.

anythink users list                    List all users
anythink users me                      Show the currently authenticated user
anythink users get <id>                Get a user by ID
anythink users invite <email> <first> <last>   Create a user and send an invitation email
anythink users delete <id>             Delete a user

Options — users invite

FlagDescription
--role-id <id>Assign a role to the new user

Examples

anythink users list
anythink users invite alice@example.com Alice Smith --role-id 3
anythink users delete 42 --yes

files

Manage uploaded files in the active project.

anythink files list                    List uploaded files
anythink files get <id>                Get file metadata by ID
anythink files upload <path>           Upload a file
anythink files delete <id>             Delete a file

Options — files list

FlagDescription
--page <n>Page number
--limit <n>Files per page (default: 25)

Options — files upload

FlagDescription
--publicMake the file publicly accessible

Examples

anythink files list
anythink files upload logo.png --public
anythink files upload export.csv
anythink files delete 12 --yes

roles

Manage roles in the active project. Roles control what authenticated users can access.

anythink roles list                    List all roles
anythink roles create <name>           Create a new role
anythink roles delete <id>             Delete a role

Options — roles create

FlagDescription
--description <text>Human-readable description of the role

Examples

anythink roles list
anythink roles create editor --description "Can edit content"
anythink roles delete 5 --yes

api-keys

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.

anythink api-keys list                              List your API keys
anythink api-keys create <name> --permissions ...   Create a new key
anythink api-keys revoke <id>                       Revoke a key

Options — api-keys create

FlagDescription
--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-capAllow --expires-in greater than 365 days
--save-as <profile>Save the new key directly to a CLI profile instead of printing it
--jsonPrint the response as JSON to stdout (the key is in this output — handle carefully)
-y, --yesSkip 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:

anythink api-keys create ci-deploy --permissions data:read --yes 2> key.txt

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

# Create a 90-day key for CI
anythink api-keys create github-actions --permissions "data:read,data:create" --yes 2> key.txt

# Create a key and save it directly into a profile (key never echoes)
anythink api-keys create scraper --permissions data:read --save-as scraper-bot --yes
anythink --profile scraper-bot data list posts

# Revoke a key
anythink api-keys revoke 42 --yes

menus

Manage dashboard sidebar menus in the active project. Menus control what entities appear in the Anythink dashboard and how they are grouped.

anythink menus list                              List all menus with tree structure
anythink menus add-item <menu_id> <entity>       Add an entity to a dashboard menu

Options — menus add-item

FlagDescription
--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

# List all menus and their items
anythink menus list

# Add "Check-ins" under the Profiles group (parent 168) in admin menu (250)
anythink menus add-item 250 check_ins --icon MessageCircle --parent 168

# Add a top-level menu item
anythink menus add-item 250 badges --icon Award

integrations

Manage integrations — both the catalog of available providers (Claude, OpenAI, Slack, Google, etc.) and the active connections that hold credentials for them.

anythink integrations list                                  List available providers
anythink integrations get <provider>                        Show details and operations for one provider
anythink integrations connections list [--provider <p>]     List your active connections

anythink integrations connect <provider>                    Create an API-key connection (Claude, OpenAI, etc.)
anythink integrations oauth status <provider>               Show OAuth client setup status
anythink integrations oauth configure <provider>            Set the OAuth client ID + secret
anythink integrations oauth connect <provider>              Connect via the browser OAuth flow

anythink integrations test <connection-id>                  Test a connection
anythink integrations enable <connection-id>                Enable a connection
anythink integrations disable <connection-id>               Disable a connection
anythink integrations disconnect <connection-id>            Delete a connection

anythink integrations execute <provider> <operation>        Run an operation on a connected provider

API-key providers — integrations connect

FlagDescription
--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-connectionMake 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.

FlagDescription
--name <name>Friendly name for this connection
--user-connectionMake this a user-scoped connection
--port <n>Local callback port (default: 8745)
--no-openDon'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:

anythink integrations oauth configure slack          # prompts for client_id + secret (hidden)
anythink integrations oauth connect slack --name main

Running operations — integrations execute

Shortened here. Read the whole README on GitHub.

Signals

GitHub stars
6
Forks
2
Last commit
Oct 2026
Advanced
Delivery
anythink MCP server → your Ahel connector (mcp.ahel.ai) → your AI.
Item type
mcp-server
Key
cloud-anythink-anythink
Source
github.com/anythink-cloud/anythink-cli
Hosted endpoint
https://mcp.anythink.cloud/mcp