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.
░███ ░██ ░██ ░██ ░██
░██░██ ░██ ░██ ░██
░██ ░██ ░████████ ░██ ░██ ░████████ ░████████ ░██░████████ ░██ ░██
░█████████ ░██ ░██ ░██ ░██ ░██ ░██ ░██ ░██░██ ░██ ░██ ░██
░██ ░██ ░██ ░██ ░██ ░██ ░██ ░██ ░██ ░██░██ ░██ ░███████
░██ ░██ ░██ ░██ ░██ ░███ ░██ ░██ ░██ ░██░██ ░██ ░██ ░██
░██ ░██ ░██ ░██ ░█████░██ ░████ ░██ ░██ ░██░██ ░██ ░██ ░██
░██
░███████
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 |
# 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/Verify the download against checksums.txt in the release assets:
sha256sum -c checksums.txt --ignore-missingIf you have the .NET 8 SDK installed:
dotnet tool install --global anythink-cligit clone https://github.com/anythink-cloud/anythink-cli
cd anythink-cli
dotnet build
dotnet run -- --help# 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 listYour credentials and project profiles are stored in ~/.anythink/config.json. You can manage multiple projects by running projects use to switch between them.
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.
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 a1b2c3d4Create 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
| Flag | Description |
|---|---|
--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 --yesView 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.
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
| 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
anythink entities create orders --rls
anythink entities get customers
anythink entities delete temp_data --yesManage 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
| 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
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 --yesCRUD 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
| 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
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 --yesManage 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
| 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
anythink workflows create daily-sync --trigger Timed --cron "0 6 * * *"
anythink workflows trigger 76
anythink workflows disable 83Manage 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
| Flag | Description |
|---|---|
--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 --yesManage 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
| 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
anythink files list
anythink files upload logo.png --public
anythink files upload export.csv
anythink files delete 12 --yesManage 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
| Flag | Description |
|---|---|
--description <text> |
Human-readable description of the role |
Examples
anythink roles list
anythink roles create editor --description "Can edit content"
anythink roles delete 5 --yesConfigure and manage Anythink Pay — the built-in Stripe Connect integration for accepting payments in your project.
anythink pay status Show Stripe Connect account status
anythink pay connect Set up a Stripe Connect account and start onboarding
anythink pay payments List recent payments
anythink pay methods List saved payment methods
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
anythink pay status
anythink pay connect
anythink pay payments --limit 50Configure OAuth social sign-in providers for the active project.
anythink oauth google status Show Google OAuth configuration status
anythink oauth google configure Set Google OAuth client ID and secret
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:
https://api.my.anythink.cloud/org/<your-org-id>/auth/v1/google/callback
Examples
anythink oauth google status
anythink oauth google configureList all API endpoints available for the active project — both platform routes and the dynamically generated REST routes for your entities.
anythink api List all endpoints
anythink api --json Output as JSON (useful for AI tooling)
Print the full CLI reference.
anythink docs Print reference as markdown
anythink docs --json Print reference as JSON (for AI/tooling consumption)
Copy the entity schema (entities + fields) from one project profile to another. Useful for promoting a schema from staging to production.
anythink migrate --from <profile> --to <profile>
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
anythink migrate --from my-app-staging --to my-app-prod
anythink migrate --from my-app-staging --to my-app-prod --dry-runList available Anythink plans.
anythink plans List plans
anythink plans --json Output as JSON
The Anythink MCP server exposes the platform to AI assistants (Claude, Cursor, etc.) via the Model Context Protocol.
dotnet tool install -g anythink-cli
dotnet tool install -g anythink-mcpAdd to your MCP client config (e.g. .mcp.json for Claude Code):
{
"mcpServers": {
"anythink": {
"command": "anythink-mcp"
}
}
}To use a specific profile: "args": ["--profile", "my-project"]
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.) |
- .NET 8 SDK
- An Anythink account (free tier works)
git clone https://github.com/anythink-cloud/anythink-cli
cd anythink-cli
dotnet builddotnet run -- --help
dotnet run -- projects list
dotnet run -- entities listThe CLI targets production (https://api.my.anythink.cloud) by default. You can override platform and API settings via environment variables (e.g. in your shell or a .env file in the current working directory):
| Variable | Description |
|---|---|
MYANYTHINK_API_URL |
Platform management API base URL |
MYANYTHINK_ORG_ID |
Platform organization/tenant ID |
BILLING_API_URL |
Billing API base URL |
ANYTHINK_PLATFORM_TOKEN |
JWT access token for platform commands |
ANYTHINK_ACCOUNT_ID |
UUID of the active billing account |
These variables take precedence over the saved configuration in ~/.anythink/config.json. Overrides are applied at runtime by the configuration resolution logic.
Releases are automated via GitHub Actions. Push a version tag to trigger a build:
git tag v1.2.0
git push origin v1.2.0The workflow builds self-contained binaries for macOS (arm64, x64) and Linux (x64, arm64), computes SHA256 checksums, and publishes them as a GitHub release.
anythink-cli/
├── src/ # CLI source
│ ├── Commands/ # Command implementations (signup, login, etc)
│ ├── Config/ # CliConfig.cs, Profile, ConfigService
│ ├── Models/ # ApiModels.cs, BillingModels.cs
│ ├── Client/ # HttpApiClient.cs, AnythinkClient.cs, BillingClient.cs
│ ├── Output/ # Renderer.cs (Spectre.Console helpers)
│ └── Program.cs # Application entry point & .env loader
├── mcp/ # MCP server source
│ ├── Tools/ # MCP tool implementations
│ ├── McpClientFactory.cs # Auth + client resolution
│ └── Program.cs # MCP server entry point
├── tests/ # CLI unit tests
├── mcp-tests/ # MCP unit tests
├── AnythinkCli.sln # Solution file
└── .gitignore
MIT — see LICENSE.
Built with Spectre.Console · Powered by Anythink