Provider CLI for cash4tokens.
Project description
cash4tokens CLI
The cash4tokens CLI turns a machine with Claude Code or Codex access into a provider node for api.cash4tokens.com.
Install
pip install cash4tokens
For local development:
cd cli
pip install -e .
Editable installs are treated as local development builds and do not self-update automatically.
Setup
cash4tokens init \
--server https://api.cash4tokens.com \
--email you@example.com
cash4tokens init now sends a 6-digit OTP to the account email, verifies it in the terminal, and then registers the machine as a provider. If the account is new, the CLI asks for a Base payout wallet before finishing setup.
If you omit --wallet, the CLI guides you through entering a valid Base payout wallet when needed. This writes ~/.cash4tokens/config.json. The CLI does not need a .env file.
The account email is only used for cash4tokens login and notification management. It does not need to match the email address on your Claude Code or OpenAI/Codex subscription.
The CLI uses the provider-scoped API surface under /api/v1/provider/*.
For automation and agent-driven setup, init can be fully flag-driven:
cash4tokens init \
--server https://api.cash4tokens.com \
--email you@example.com \
--wallet 0xYourBaseWallet \
--otp-code 123456 \
--machine-name provider-01 \
--display-name "Provider Account"
Commands
| Command | Description |
|---|---|
cash4tokens init |
Register this machine as a provider |
cash4tokens start |
Start the provider daemon in the background |
cash4tokens run |
Run the provider daemon in the foreground |
cash4tokens stop |
Stop the local background daemon |
cash4tokens profile |
Show or update the account display name and payout wallet |
cash4tokens status |
Show server connectivity, provider connection state, balance, and total earnings |
cash4tokens dashboard |
Show recent served requests and provider earnings |
cash4tokens version |
Show the installed CLI version and manifest URL |
cash4tokens self-update |
Fetch the release manifest and install the latest packaged CLI |
cash4tokens install |
Install the daemon as a macOS LaunchAgent |
cash4tokens uninstall |
Remove the macOS LaunchAgent |
Auto-Update Behavior
- The manifest lives at
https://api.cash4tokens.com/manifest.jsonby default. - Packaged CLI installs poll the manifest on startup and periodically while the daemon is running.
- When a newer release is available, the CLI installs
cash4tokens==<version>withpython -m pip, then restarts itself when idle. - Local source checkouts and editable installs skip automatic updates by design.
Config File
Example ~/.cash4tokens/config.json:
{
"server_url": "https://api.cash4tokens.com",
"manifest_url": "https://api.cash4tokens.com/manifest.json",
"provider_id": "uuid",
"daemon_token": "dt_xxx",
"api_key": "c4t_xxx",
"user_id": "uuid",
"wallet_address": "0x..."
}
The CLI also stores update check metadata under the update key after the first manifest fetch.
user_id in this config is the authenticated provider account id.
Credential Sources
Claude Code
- Reads OAuth tokens from the macOS Keychain
- Requires a Claude Code subscription on the local machine
- Tokens stay local and are refreshed by the local Claude tooling
Codex
- Reads auth state from
~/.codex/auth.json - Requires an active Codex-capable OpenAI account on the local machine
- Tokens stay local and are refreshed through the existing OpenAI auth flow
macOS LaunchAgent
cash4tokens install creates ~/Library/LaunchAgents/com.cash4tokens.daemon.plist.
- Starts on login
- Restarts when network is available
- Writes logs to
~/.cash4tokens/log/daemon.log - Picks up new CLI releases automatically because
cash4tokens runperforms an update check before the daemon comes online
Files
cli/
pyproject.toml Publishable CLI package config
cash4tokens_cli/
main.py Typer command entrypoint
daemon.py Daemon lifecycle, update loop, and inference orchestration
connection.py WebSocket client with reconnects
health.py Capability discovery and heartbeat payloads
provider/ Local Anthropic and OpenAI integrations
token/ Local auth token readers
update.py Manifest parsing and self-update flow
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 cash4tokens-0.1.5.tar.gz.
File metadata
- Download URL: cash4tokens-0.1.5.tar.gz
- Upload date:
- Size: 24.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dbedf2ec8888a575737d9193386fcd14ee4963ec7564027321235557824729ae
|
|
| MD5 |
2db80569a8a9f234d880674a3f0bcc20
|
|
| BLAKE2b-256 |
10993e0ff3d000aa57b0056d78b9f5b2e28db83ebaa764bdc2fc741a66500a0c
|
File details
Details for the file cash4tokens-0.1.5-py3-none-any.whl.
File metadata
- Download URL: cash4tokens-0.1.5-py3-none-any.whl
- Upload date:
- Size: 32.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4bfa5c3bddf6c11d5bc0d906033304402a2932f5258cdfef9517b3847bdc19bd
|
|
| MD5 |
2a7440083ccc8f6dabd8f55797ae99c3
|
|
| BLAKE2b-256 |
d97e703ce4042bd38aba3d57c7b4e5369647a95d16d091761d29602f84f757d5
|