@helixid/cli
v0.2.2
Published
Command-line interface for HelixID operator workflows — agent enrollment, bootstrap token management, wallet inspection, and credential lifecycle operations.
Readme
@helixid/cli
Platform Operator CLI for HelixID setup-time operations. The binary is named helix.
All wallet encryption uses HELIX_WALLET_PASSPHRASE from the environment — never pass a passphrase on the command line.
Install
From the monorepo root:
nvm use
pnpm install
pnpm --filter @helixid/cli buildRun locally during development:
pnpm exec tsx src/bin/helix.ts did create --method web --domain example.com --wallet ./issuer.encCommands
helix did create
Create an encrypted wallet and DID. For --method web, the command also
creates the issuer's initial status list by default — one command, two
artifacts, both of which need hosting on your domain:
- the DID document at
https://<domain>/.well-known/did.json, and - the status list JSON at the
--status-list-base-url(defaulthttps://<domain>/.well-known/helix-status-list.json).
Pick a generous --status-list-length (default 131072 bits; 100k+ is
recommended — unused bits are free, and grant/credential indices are assigned
randomly within the list).
export HELIX_WALLET_PASSPHRASE='your-secret'
# Issuer (did:web) — also writes status-list.json next to the wallet file
helix did create --method web --domain example.com --wallet ./issuer.enc
# Issuer without the status-list step (previous behavior)
helix did create --method web --domain example.com --wallet ./issuer.enc --no-status-list
# Agent (did:key)
helix did create --method key --wallet ./agent.encStatus-list flags (did:web only): --no-status-list to opt out,
--status-list-length <bits>, --status-list-output <path>,
--status-list-base-url <url>.
helix issuer init
Verify an issuer wallet loads correctly.
helix issuer init --wallet ./issuer.enchelix status-list create
Create a signed BitstringStatusList credential file.
helix status-list create \
--length 131072 \
--output ./public/status/1.json \
--base-url https://example.com/status/1 \
--wallet ./issuer.enchelix vc issue
Issue a HelixAgentCredential and update the status list file.
helix vc issue \
--agent-did did:key:z6Mk... \
--scopes read:orders,write:bookings \
--expires 90d \
--status-list ./public/status/1.json \
--base-url https://example.com/status/1 \
--wallet ./issuer.enc \
--output ./vc-agent-001.jsonSend the output VC file to the agent out of band. The agent stores it with wallet.addCredential(vc).
helix vc self-issue
Dev-only self-signed credential for local testing.
helix vc self-issue \
--scopes read:orders \
--expires 24h \
--wallet ./agent.enchelix revoke
Revoke a credential by flipping its status list bit.
helix revoke \
--vc-id urn:uuid:abc-123 \
--status-list ./public/status/1.json \
--wallet ./issuer.enchelix wallet inspect
Inspect wallet metadata without printing the private key.
helix wallet inspect --wallet ./agent.encEnvironment variables
| Variable | Required | Purpose |
|---|---|---|
| HELIX_WALLET_PASSPHRASE | Always | Wallet encryption passphrase |
