@caffinate/grid
v0.1.0
Published
Caffinate Grid — one command, turn idle compute into $CAFF.
Maintainers
Readme
@caffinate/grid
Turn idle compute into $CAFF. One command.
npx @caffinate/grid connectRegisters your machine as a compute node on the Caffinate Grid, heartbeats every 30s, and earns $CAFF against your daily cap. Ctrl+C to disconnect.
Three-step setup
# 1. Get your API key
open https://caffinate.ai/get-api-key
# 2. Sign in once (stored in ~/.caffinate/config.json, chmod 600)
npx @caffinate/grid login
# 3. Start earning
npx @caffinate/grid connectCommands
| Command | What it does |
|---|---|
| grid | Intro + next-step hints |
| grid login | Paste a caff_* key; verify against the API |
| grid connect | Register node + live heartbeat dashboard |
| grid status | Balance + all your nodes, at a glance |
connect options
| Flag | Default | Purpose |
|---|---|---|
| -n, --name <name> | hostname-derived | Label for the node in the web dashboard |
| -q, --quiet | off | Suppress the live heartbeat dashboard line |
Environment variables
| Var | Purpose |
|---|---|
| CAFFINATE_API_KEY | Alternative to grid login. Read once at login time. |
| CAFFINATE_API_URL | Override API base URL. Default https://api.caffinate.ai. |
| NO_COLOR | Disable ANSI colors. |
How it works
grid connect calls the Caffinate API's browser-class node registration — this is the same endpoint the /grid web page uses, so the economics match: CU accrues per heartbeat up to a daily cap, throttleable from the web dashboard's dimmer slider. CLI nodes appear in your node list and can be managed from the browser too.
Heartbeats fire every 30 seconds while the process is alive. Miss three in a row (~90s) and the server flips your node to idle — no explicit teardown needed on shutdown.
Node identity is stable across runs: after the first connect, your node id is cached in ~/.caffinate/config.json and reused on subsequent runs. One node per machine.
Security
- Your API key is stored at
~/.caffinate/config.jsonwith mode 0600 (user-only read/write). - The key is sent over HTTPS only — never logged to stdout except on explicit
grid statusoutput (never the full key — just the first-8 prefix). - Revoke keys any time at https://caffinate.ai/get-api-key.
Build + publish
pnpm --filter @caffinate/grid build
pnpm --filter @caffinate/grid publish --access publicLicense
MIT.
