Command-line client for the HEVN backend API and MCP transfers.
Project description
HEVN CLI
Standalone command-line wrapper for the HEVN backend API and MCP transfers.
Requires an active HEVN account. Sign up at app.gethevn.com before installing.
Install
For end users:
pipx install hevn-cli
hevn login
hevn --help
Before the package is published to PyPI, install from GitHub so pipx upgrade
can fetch newer commits:
pipx install "git+https://github.com/hevn/hevn-cli.git"
pipx upgrade hevn-cli
For local development:
poetry install
poetry run hevn --help
For local wheel smoke testing only:
poetry build
pipx install dist/hevn_cli-0.1.0-py3-none-any.whl
Local wheel installs are not a good long-term pipx install source because
pipx upgrade hevn-cli can only reinstall from that same local artifact.
Publish
PyPI publishing is handled by the Publish to PyPI GitHub Actions workflow.
Run it manually from the main branch. The workflow runs lint, tests, and
hevn --help on Ubuntu, macOS, and Windows, then builds and publishes the
package once from Ubuntu.
The workflow uses PyPI trusted publishing. In the PyPI project hevn-cli,
configure a trusted publisher with GitHub owner hevn, repository hevn-cli,
workflow .github/workflows/publish-pypi.yml, and environment pypi.
Environment
export HEVN_ENV="prod" # prod (default), dev, or local
export HEVN_API_KEY="<app bearer token or app api key>"
export HEVN_MCP_KEY="mcp_..."
Optional:
export HEVN_BASE_URL="https://api.hevn.finance/api/v1"
export HEVN_SITE_URL="https://app.gethevn.com"
export HEVN_API_KEY_HEADER="Authorization"
Authorization is the default app header and is sent as Bearer <HEVN_API_KEY>.
Use HEVN_API_KEY_HEADER=X-API-Key if a deployment exposes app endpoints by API key.
Use HEVN_* environment variables for CLI configuration.
Built-in environments:
| Env | Site URL | API URL |
|---|---|---|
prod |
https://app.gethevn.com |
https://api.hevn.finance/api/v1 |
dev |
https://app-beta.hevn.finance |
https://dev-api.hevn.finance/api/v1 |
local |
http://localhost:8081 |
http://localhost:8000/api/v1 |
You can also select the environment per command:
hevn --env dev account get
hevn --env local login
Clear saved CLI credentials:
hevn logout
Examples
hevn contacts list
hevn contacts list --yaml
hevn login
hevn account list --yaml
hevn banks list --all
hevn contacts new
hevn contacts new --type email --name "Vendor" --email vendor@example.com
hevn transfer contact <contact-id> 25 --memo "Thanks"
hevn transfer contact --contact-id <contact-id> --amount 25 --memo "Thanks"
hevn transfer contact --contact-id <contact-id> --amount 25 --yes --memo "Bank payout"
hevn transfer contact --contact-id <contact-id> --amount 25 --bank-account-id <bank-account-id> --yes --memo "Bank payout"
hevn transfer contact --contact-id <contact-id> --quote-id <quote-id> --memo "Bank payout"
hevn invoice list
hevn bills --yaml
hevn invoice get <invoice-id>
hevn invoice decline --invoice-id <invoice-id> --yes --yaml
hevn invoice new
hevn invoice new --contractor-email vendor@example.com --contractor-name Vendor --item "Consulting:1:100" --due-date 2026-06-01
hevn invoice upload-incoming --path ./invoice.pdf --contractor-email vendor@example.com --items '[{"name":"Consulting","quantity":1,"price":"100"}]'
hevn invoice batch --contract '{"contractId":"<contract-id>","period":0,"memo":"May payroll","items":[{"name":"Monthly services","quantity":1,"price":"5000"}]}' --yaml
hevn contracts list --yaml
hevn contractors list --yaml
hevn contracts preview --id <contract-id> --yaml
hevn contracts new --contractor-email contractor@example.com --type default_contractor --amount 1000 --currency USD --period monthly --activation-at 2026-05-01 --yaml
hevn contracts new --contractor-email contractor@example.com --type custom --document-id <document-id> --item '{"name":"Design","quantity":2,"price":"100"}' --yaml
hevn contracts payment-methods --id <contract-id> --payment-method '{"accountType":"email","email":"contractor@example.com"}' --yaml
hevn contracts --id <contract-id> approve --yaml
hevn hire --contractor-email contractor@example.com --job-title "Engineer" --scope-description "Full-time engineering work" --amount 5000 --currency USD --period monthly --start-date 2026-05-01 --yaml
hevn transfer --invoice-id <invoice-id> --memo "Invoice payment"
hevn deposit 100 usdc base
hevn deposit --amount 100 --currency usdc --chain base
hevn rate EUR
hevn rate --currency AED --yaml
Contract statuses:
pending_approval_by_contractor
pending_approval_by_client
active
completed
cancelled
paused
hevn hire is a convenience alias for creating a contractor contract.
Preview it with hevn contracts preview --id <contract-id> --yaml, then approve
with hevn contracts --id <contract-id> approve --yaml.
Contract migration guidance
When a user asks to move or import contracts or contractors into HEVN, load them by creating a new active contract from the contract file rather than only adding contractor records. For Deel migrations, first suggest that the user create a Deel API token at app.deel.com/settings/developer/tokens/create.
Project details
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 hevn_cli-0.1.0.tar.gz.
File metadata
- Download URL: hevn_cli-0.1.0.tar.gz
- Upload date:
- Size: 43.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
003fdce17b789c2eee6a175f517476c0574aabc66f047dd260af68607632aca0
|
|
| MD5 |
6c8d8fe5929e01750ac42cb481828a45
|
|
| BLAKE2b-256 |
91ec5f3f6306eb32ac3be04c0a912cbef5064e95bf1535462acd5b30388c43c8
|
Provenance
The following attestation bundles were made for hevn_cli-0.1.0.tar.gz:
Publisher:
publish-pypi.yml on hevn-inc/hevn-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hevn_cli-0.1.0.tar.gz -
Subject digest:
003fdce17b789c2eee6a175f517476c0574aabc66f047dd260af68607632aca0 - Sigstore transparency entry: 1666593011
- Sigstore integration time:
-
Permalink:
hevn-inc/hevn-cli@bde7dfbf9294c0993080ed3a180866f5eb7bd001 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/hevn-inc
-
Access:
internal
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@bde7dfbf9294c0993080ed3a180866f5eb7bd001 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file hevn_cli-0.1.0-py3-none-any.whl.
File metadata
- Download URL: hevn_cli-0.1.0-py3-none-any.whl
- Upload date:
- Size: 56.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b8a3f7c638b293d14a232df4c180fe78741cbffafda526d63320e8833efedb1a
|
|
| MD5 |
03e1298b3c79af1faf544f854c278598
|
|
| BLAKE2b-256 |
43dc3c7723b35a23d8deb191b0cc408a1cc67c3e0235b4232f909984b33a754d
|
Provenance
The following attestation bundles were made for hevn_cli-0.1.0-py3-none-any.whl:
Publisher:
publish-pypi.yml on hevn-inc/hevn-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hevn_cli-0.1.0-py3-none-any.whl -
Subject digest:
b8a3f7c638b293d14a232df4c180fe78741cbffafda526d63320e8833efedb1a - Sigstore transparency entry: 1666593090
- Sigstore integration time:
-
Permalink:
hevn-inc/hevn-cli@bde7dfbf9294c0993080ed3a180866f5eb7bd001 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/hevn-inc
-
Access:
internal
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@bde7dfbf9294c0993080ed3a180866f5eb7bd001 -
Trigger Event:
workflow_dispatch
-
Statement type: