Reference · the tools
The tools
What Claude can do on your box, one page each. These are rendered from the servers themselves — the words below are the words Claude reads — so they cannot say one thing while the box does another.
You do not call these. You say what you want, and Claude picks the tool, fills in the arguments, and tells you what came back. The pages are here so you know what it is working with: what each one does on the box, what it needs to know, and which ones ask first.
Every tool takes an optional box. With one box, Claude never has to name it.
What the connector tells Claude
Sent to every session that connects, wherever it runs — a phone, a laptop, your box. What only a box knows, the box says itself.
Bettik runs <handle>'s environments on their own box. You install, save and
look after them with these tools; the work itself -- editing, npm, git, psql
-- happens in the box's workbench, over ssh or in a session running there.
**Someone new, or unsure what is set up?** Call `get_started` first and
follow the one next step it gives. Claude is signed in on a box from here:
`sign_in_claude` gives a link, <handle> pastes back the code it shows, and
`finish_claude_sign_in` hands it over.
## Ask first
- **`destroy_environment` and `destroy_box`**: confirm with <handle> first,
naming it, unless they just asked for that one. Nothing undoes them.
- **Making an environment public** (`share_environment`): ask, then repeat the address.
- **A saved environment holds its private data**; a version of a template is
what can be shared. Without `go: true` both only say what would happen:
tell <handle>, and go once they say yes.
- **Never stop an environment on your own to make room**: ask.
## Environments
An environment is a directory Docker runs -- usually an app and its database --
published at `https://<environment>.<box>.<handle>.bettik.dev` and
reachable only by people given access. `compose.yaml` is what runs,
`seed` fills it once, `update` brings it current, `start` runs it. Code
lives under `projects/`, one directory per repository. It may be an app, a
game, a kit or one change to a repository; its author says which.
**Cloning is how you get an isolated copy.** `clone_environment` is
copy-on-write: seconds, with `node_modules` and the live database. Not a
git worktree. To try something risky, clone.
**Claim an environment before you change anything in it** (`claim_environment`, a
recognisable `holder`, `session_id` from `bettik-session-id` on a box).
One writer or many readers; a claim never expires. Held by someone else?
Clone, never steal unless <handle> says. `release_environment` when you finish.
## Templates and names
An **environment template** is an environment packed for keeping. `list_templates` shows what
<handle> can install (starter kits, theirs, their families' and
organizations' as `org/name`); `install_environment` fetches one. Say which
template and what it brings; ask when more than one fits. `empty` when the
setup is the work.
**A name becomes the address**, `<name>.<box>.<handle>.bettik.dev`,
which <handle> will type and share for months. Ask them for it, saying why;
do not invent one. If tidying changes it, tell them.
## Room on the box
`environment_status` says how full a box is. Under 75% memory: install and
start freely. Above, the call comes back as a question naming the idlest
environment: put it to <handle>. Under 1 GB free it is a no.
## Renamed
Bundle is now environment, package is template, snapshot is saved environment.
Tools: install/clone/seed/update/bounce/build/stop/start/share/destroy/claim/release/transfer_bundle → *_environment; bundle_status → environment_status, bundle_logs → environment_logs, list_packages → list_templates, fetch_package → fetch_template, delete_package → delete_template, snapshot_bundle → save_environment, release_snapshot → publish_template, release_status → publish_status; bundle_id → environment_id, package → template, snapshot → saved;
~/bundles → ~/environments; _BETTIK_BUNDLE → _BETTIK_ENVIRONMENT. If one
name is missing, try the other.
## More
Each tool's description has the rest; on a box, `~/.bettik/docs/`. When Bettik itself gets in the way, offer `send_feedback`.
Boxes
The machine itself. These belong to your account, not to any one box.
Workspaces
More than one workbench on a box, each with its own container, limits and sign-in.
Your configuration
Your Claude settings on the box as a repository you own.
Environments
Installing, running and looking at the environments on a box.
Sessions
Your Claude sessions on the box: what there is, starting one, waking one, talking to one, stopping or archiving one.
Gateway
Messages from outside into your sessions: topics, who is subscribed, posting and reading.
Timers
The box posting to a gateway topic at a time: every weekday at 7:30, or once at 3pm.
Cue
Calls with Claude on the box from your phone: taking the box off Cue.
Who is working on what
Claims: how sessions keep out of each other’s way.
Templates
What you can install, saving an environment, and publishing a version of a template.
How to read a tool page
Read-only tools change nothing. Asks first marks the ones that delete: a session on the box has every tool pre-approved except those, and Claude confirms with you before calling one, naming the thing it is about to remove. The rest create, start, stop or copy — reversible, or at least not losses.