- Use the dashboard for security decisions that require a person, such as membership, roles, Personal Access Tokens and Service Account credentials.
- Use the CLI for interactive terminal work and to start local processes with decrypted records in memory.
- Use the SDK when your application or script needs to call directly.
- Use MCP when an agent needs to inspect or change resources under an approved identity.
- Use the raw API when another language or platform cannot use the TypeScript SDK.
What the tools share
The tools can use the same account, project and record IDs. A human PAT can also represent the same person across API, SDK, CLI and MCP. A Service Account bundle can represent the same machine across SDK, CLI and MCP. They do not automatically read each other’s configuration:
Do not make an application read the CLI configuration file. That file belongs to the CLI and its shape is not an application integration contract.
The SDK does not read the CLI login file, and MCP does not inherit it.
Local development without environment files
This is the simplest way to use records in a local application that already reads environment variables.Prepare the records
Create a project in the dashboard and store the values your application needs. Give records names that produce clear environment keys. The CLI trims each name, converts it to uppercase and replaces characters outsideA-Z, 0-9 and _ with _. For example, Database URL becomes DATABASE_URL.
Choose names that remain unique after conversion. Names such as API URL and API-URL both become API_URL. An injected record also replaces an existing child-process variable with the same key.
Sign in to the CLI
~/.airctrl/config.json, outside your repository. It asks for the vault passphrase when it needs to decrypt records unless your approved runtime supplies AC_VAULT_PASSWORD.
Confirm the project before launching the application:
Start the application
.env file is created. When a value changes in , restart the command to launch a new process with the current values.
airctrl run removes control variables such as AC_TOKEN and AC_VAULT_PASSWORD before starting the child. The application receives the selected project records, not the CLI credential that fetched them.Use the CLI for setup and the SDK in code
The CLI is useful for finding IDs and checking access before you write integration code:airctrl run and omit the SDK.
Use the CLI to discover context for MCP
The CLI can help you find an account, project, record or gateway ID before asking an agent to work with it:airctrl login does not sign MCP in. This separation prevents an agent from silently inheriting a developer’s terminal session. Configure MCP separately with AIRCTRL_MCP_* variables. Then make a natural-language request with the exact scope you found:
MCP tool used:
list_recordsUse a Service Account in CI or a server
Do not use a human CLI login for an unattended workload.- Create the Service Account in the dashboard.
- Assign the smallest custom role and project access it needs.
- Share the required records with it when direct record access is needed.
- Provision its credential in the dashboard.
- Save the complete bundle in the deployment platform’s secret storage.
- Map the same bundle into the SDK, CLI or MCP process that performs the work.
AC_API_BASE_URL, AC_TOKEN, AC_SA_CREDENTIAL_ID and AC_SA_CAP_PRIVATE_KEY_B64. For MCP, use the matching AIRCTRL_MCP_* variables described in Authentication.
Service Account creation, role assignment and credential lifecycle remain dashboard-only. SDK, CLI and MCP use an active credential; they do not administer it.
Separate control-plane and application credentials
credentials and application credentials have different jobs:- A human PAT or Service Account token authenticates calls to the control plane.
- A vault passphrase or Service Account capability decrypts records locally.
- A gateway token authenticates an application to an gateway.
- A provider credential lets that gateway call the selected AI provider.
Avoid these combinations
- Do not assume
airctrl loginconfigures the SDK or MCP. - Do not parse
~/.airctrl/config.jsonfrom application code. - Do not expect
airctrl runto pass control credentials to its child process. - Do not commit a
.envfile, PAT, Service Account bundle, vault passphrase or provider key. - Do not use a human PAT for CI when a least-privilege Service Account can perform the supported operation.
- Do not ask an agent to search neighboring accounts, projects or IDs after a
403or404.
Troubleshoot a combined workflow
Choose your next guide
- Authentication explains human and machine identities.
- Records and secrets covers decryption, injection, creation and sharing.
- SDK overview shows direct application integration.
- CLI overview explains terminal and process-injection behavior.
- MCP setup connects an approved agent identity.
- Feature availability shows which operations each identity can use.