Skip to main content

IdentArk CLI

The command-line client for IdentArk credential references, agent registration, human approval workflows, and local development injection.

Release status: alpha. The package is prepared for identark-cli on PyPI but has not been published yet. Install it from this repository until the first trusted-publishing release completes.

Requirements

  • Python 3.11 or newer
  • An IdentArk account or scoped csk_ API key
  • An OS keychain for device-login tokens, when available

Install from source

cd cloud/cli
python -m pip install -e .
identark --version

After the first release:

python -m pip install identark-cli

Authenticate

Interactive device login opens the IdentArk authorization page and stores the resulting Firebase session in the OS keychain:

identark auth login
identark auth status

For headless environments, print the URL instead of opening a browser:

identark auth login --no-browser

For CI and agent automation, prefer a narrowly scoped key that is supplied by the runtime and is never persisted by the CLI:

export IDENTARK_API_KEY='csk_...'
identark auth token

identark auth token reports the token source and storage backend but never prints the raw token. If an OS keychain is unavailable, the CLI warns and uses ~/.identark/credentials.toml with mode 0600; any process running as that OS user can still read that fallback file.

Project setup

identark init
identark credential add ANTHROPIC_API_KEY --ref vault://prod/anthropic
identark credential list
identark credential scan --strict

Credential names must be valid environment-variable names. References are limited to vault://... and env://...; secret values are never written to .identark/config.toml.

The pre-commit scanner is opt-in and refuses to overwrite an existing hook:

identark credential install-hook

Once installed, the hook fails closed if the identark executable is missing or the scan fails.

Local agent development

Create a scaffold and run its generated src/main.py:

identark agent init --name my-agent --template basic
cd my-agent
identark credential add API_KEY --ref vault://prod/provider
identark agent run

Available templates are basic, slack-bot, and api-service.

Register the agent with the real control-plane endpoint separately:

identark agent register \
  --name my-agent \
  --provider anthropic \
  --model claude-sonnet-4-5 \
  --credential-ref vault://prod/anthropic

identark agent list

Important isolation boundary

identark agent run, identark agent dev, and identark credential inject resolve scalar credentials and place them in the child process environment. The child process can read those values. This is useful for local development, but it is not a “secret never reaches the agent” boundary.

For production database access or other operations where the agent must never receive a raw credential, use an IdentArk managed connector/executor. Structured credentials such as Neon database credentials are deliberately refused by local environment injection.

Human approvals

identark approvals list
identark approvals inspect <approval-id>
identark approvals approve <approval-id>
identark approvals reject <approval-id> --reason "Not expected"
identark approvals watch

watch is a read-only monitor. Approvals always require an explicit command; there is no client-side auto-approve mode. Sensitive-looking keys in displayed tool arguments are recursively redacted. Server policy remains authoritative, and approval timeout defaults to deny.

MCP servers

identark mcp server list
identark mcp server add \
  --name public-tools \
  --endpoint https://mcp.example.com/rpc \
  --transport streamable_http
identark mcp server show <server-id>
identark mcp tool list --server <server-id>
identark mcp tool execute \
  --server <server-id> \
  --tool search \
  --args '{"query":"example"}'

CLI registration accepts only absolute HTTPS endpoints using http_sse or streamable_http. Version 0.1 does not collect raw MCP bearer tokens or API keys. Authenticated MCP registration will be exposed only after the API accepts vault references rather than secret values. Capability discovery is also not advertised until the backend performs real discovery.

Configuration

Project configuration lives in .identark/config.toml. Global non-secret settings live in ~/.identark/config.toml.

identark config show
identark config set project_name "My Agent"
identark config get project_name
identark config set --global api_url https://api.identark.io

Config commands protect token fields from generic get and set access. API URLs must use HTTPS, except http://localhost for local development.

Environment variables

Variable Purpose
IDENTARK_API_KEY Preferred non-persisted scoped API key
IDENTARK_SESSION_TOKEN Non-persisted session token
IDENTARK_TOKEN Legacy non-persisted token alias
IDENTARK_API_URL Override the API endpoint for a command
IDENTARK_DISABLE_KEYRING Force the warned 0600 file fallback
IDENTARK_DEBUG Enable child-process debug mode

Token precedence is the order shown above.

Development and release gates

uv sync --project cli --locked --extra dev
uv run --project cli ruff format --check --config cli/pyproject.toml cli/identark_cli cli/tests
uv run --project cli ruff check --config cli/pyproject.toml cli/identark_cli cli/tests
uv run --project cli mypy --config-file cli/pyproject.toml cli/identark_cli
uv run --project cli pytest cli/tests
uv build cli

CI runs those gates on Python 3.11 and 3.13, enforces at least 50% statement coverage, builds both distributions, and installs the wheel into a clean virtual environment. Releases use tags such as cli-v0.1.0 and PyPI Trusted Publishing; the tag must match identark_cli.__version__.

Before the first release, configure a pending PyPI Trusted Publisher for:

  • PyPI project: identark-cli
  • GitHub repository: identArk/backend
  • Workflow: cli-release.yml
  • Environment: pypi

Support and license

Licensed under the MIT License. See LICENSE.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

identark_cli-0.1.0.tar.gz (107.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

identark_cli-0.1.0-py3-none-any.whl (37.3 kB view details)

Uploaded Python 3

File details

Details for the file identark_cli-0.1.0.tar.gz.

File metadata

  • Download URL: identark_cli-0.1.0.tar.gz
  • Upload date:
  • Size: 107.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for identark_cli-0.1.0.tar.gz
Algorithm Hash digest
SHA256 ff512854311d74b1ab2dad0220aab6058b67f94d6deeaef52bd16cbddfb1e694
MD5 29ec4c54096e41ae10d05cf665110008
BLAKE2b-256 9e5ad12b5fb571833686a834d83ddaa29e9594ba4dfab5b41a8b99423a693f6f

See more details on using hashes here.

Provenance

The following attestation bundles were made for identark_cli-0.1.0.tar.gz:

Publisher: cli-release.yml on identArk/backend

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file identark_cli-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: identark_cli-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 37.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for identark_cli-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 58fd8b318e579e66ad50eb317ed328032b5fadf2c27056896756bbaf90d48d4a
MD5 525f720727f95bbd09fd93642fa1978d
BLAKE2b-256 7eca788a497ea6ce488790be4b15b4dc28fe7f9c03681eac6876d47e02659169

See more details on using hashes here.

Provenance

The following attestation bundles were made for identark_cli-0.1.0-py3-none-any.whl:

Publisher: cli-release.yml on identArk/backend

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page