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-clion 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
- Documentation: https://docs.identark.io/cli
- Issues: https://github.com/identArk/backend/issues
- Email: support@identark.io
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ff512854311d74b1ab2dad0220aab6058b67f94d6deeaef52bd16cbddfb1e694
|
|
| MD5 |
29ec4c54096e41ae10d05cf665110008
|
|
| BLAKE2b-256 |
9e5ad12b5fb571833686a834d83ddaa29e9594ba4dfab5b41a8b99423a693f6f
|
Provenance
The following attestation bundles were made for identark_cli-0.1.0.tar.gz:
Publisher:
cli-release.yml on identArk/backend
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
identark_cli-0.1.0.tar.gz -
Subject digest:
ff512854311d74b1ab2dad0220aab6058b67f94d6deeaef52bd16cbddfb1e694 - Sigstore transparency entry: 2545180340
- Sigstore integration time:
-
Permalink:
identArk/backend@b173340a7e327b2cbc5773890b4fd468bfc151d8 -
Branch / Tag:
refs/tags/cli-v0.1.0 - Owner: https://github.com/identArk
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
cli-release.yml@b173340a7e327b2cbc5773890b4fd468bfc151d8 -
Trigger Event:
push
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
58fd8b318e579e66ad50eb317ed328032b5fadf2c27056896756bbaf90d48d4a
|
|
| MD5 |
525f720727f95bbd09fd93642fa1978d
|
|
| BLAKE2b-256 |
7eca788a497ea6ce488790be4b15b4dc28fe7f9c03681eac6876d47e02659169
|
Provenance
The following attestation bundles were made for identark_cli-0.1.0-py3-none-any.whl:
Publisher:
cli-release.yml on identArk/backend
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
identark_cli-0.1.0-py3-none-any.whl -
Subject digest:
58fd8b318e579e66ad50eb317ed328032b5fadf2c27056896756bbaf90d48d4a - Sigstore transparency entry: 2545180408
- Sigstore integration time:
-
Permalink:
identArk/backend@b173340a7e327b2cbc5773890b4fd468bfc151d8 -
Branch / Tag:
refs/tags/cli-v0.1.0 - Owner: https://github.com/identArk
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
cli-release.yml@b173340a7e327b2cbc5773890b4fd468bfc151d8 -
Trigger Event:
push
-
Statement type: