Log in with your rainbox actor name and password.
Operators set passwords via rainbox auth set-password
on the server.
Paste the bearer token from /etc/rainbox/token
on the server. Useful for scripts and headless clients.
boxes
+ new boxno boxes yet โ create one
| name | status | image | ssh | created | labels |
|---|
new box
box
labels
terminal
keystrokes are sent live to /bin/bash -l inside the box over a WebSocket. resize the window to resize the PTY.
skills
no skills found โ drop one into ~/.rainbox/skills/<name>/SKILL.md
attach a skill to a new box with rainbox new --skill <name>.
secrets
no secrets โ click "+ new secret" or run rainbox secret set
| kind | name | scope | created | updated | actions |
|---|
"reveal" round-trips the value over the API and shows it in a modal. Every reveal is logged to the audit stream โ treat it like running rainbox secret get on the server.
profile
You are signed in as โ. Set your SSH public key so you can ssh into boxes you create. New boxes trust this key automatically (leave the key field blank on the new box form, or use --ssh-key @me from the CLI).
Your login has no managed account (e.g. the admin login) โ its keys are managed by the operator via rainbox setup, not here.
CLI access
Drive your boxes from your own machine with the rainbox CLI. Your API token is your login โ keep it secret.
Then e.g. rainbox cli ls, rainbox cli new mybox, rainbox cli ssh mybox.
vpn profiles
OpenVPN profiles you can attach to a box (the box runs the tunnel). Create one here, then pick it in the new box form. The .ovpn is stored server-side โ you don't keep the file around.
no VPN profiles โ click "+ new VPN profile" or run rainbox vpn add
| name | scope | actions |
|---|
reveal secret
This will fetch the secret value over the API and display it on this page.
The reveal will be recorded in the server's audit log under
secret.get. Make sure no one is looking over your shoulder.
presets
presets are reusable bundles of new-box configuration: a CLAUDE.md, a permission mode, and optional image/driver preselects. Use them from the new box dropdown or with rainbox cli new --preset <name>. Built-ins ship with the daemon; save a custom of the same name to shadow one.
no presets stored โ the daemon's built-ins should show here on a fresh deploy; if they don't, the preset store may not be configured.
| name | description | mode | CLAUDE.md | actions |
|---|
usage
daily breakdown
no events in this period
breakdown
no rows for this period
| key | tokens | est. USD | api equiv | saved |
|---|
active budgets
budgets are configured by workflow recipes / setup.yaml; this panel just displays current usage. no active budgets.
| kind | target | used | cap | % | state |
|---|
quota
per-actor hard limits. Enforced on box create + workflow start (HTTP 429 on exceed). Configure in/etc/rainbox/quotas.yaml.
no quota config loaded โ every actor is unlimited. Drop a /etc/rainbox/quotas.yaml (see examples/quotas.yaml) and restart rainboxd to enable.
your usage vs limits
configured actors (admin)
default limits apply to any actor without an override.
no per-actor overrides configured โ everyone gets the default limits.
| actor | boxes / max | monthly tokens / max | monthly cost / max |
|---|
actors
rainbox setup.
no actor accounts yet โ click "+ invite" to onboard someone.
| name | state | invited by | created | actions |
|---|
accept invite
You've been invited to a rainbox. Set a password to activate your account โ you'll be logged straight in. You can add your SSH key now or later from your profile.
sessions
conversations survive box deletion.--resume-session brings one back.
no sessions persisted yet โ boxes running claude-code or codex-cli will populate this list.
| date | box | model | turns | size | preview |
|---|
session
workflows
no workflow runs yet โ click "+ run workflow" or use rainbox cli workflow run --recipe <name>
| id | name | recipe | state | stage | created | duration |
|---|
workflow
stages
"attach" opens the box's xterm.js terminal โ running stages drop into the agent's tmux main; if the driver has pre-created a side shell window (feat/workflow-attach-ergonomics) you can Ctrl-b w over to it.
| name | iterations | status | last box | attach |
|---|
workspace files
no output files in the workspace root yet
history
| time | kind | stage | box | verdict | error |
|---|
workflow recipes
precedence: user โ library โ builtin (matchesworkflow recipes ls).
no recipes available โ the daemon's built-in store may not be configured. Try rainbox cli workflow recipes ls on the server.
| name | source | description |
|---|
recipe
YAML
library
the library is a git repo (library.repo_url) that publishes four separate content kinds โ skills, presets, recipes, and claude-md. Each syncs into its own area and shows up on its own page (e.g. a preset appears under presets, not skills). The counts below are per kind, so skills: 0 ยท presets: 1 just means this repo ships one preset and no skills โ pick a tab in contents to see what landed.
library is not configured on this server โ set library.repo_url in /etc/rainbox/setup.yaml and reload to enable.
validation errors
no validation errors on the current head.
| kind | path | message |
|---|
contents
no entries in this kind on the current head.
entry
audit log
last 200 mutations on load; new entries stream in live via GET /v1/audit/stream (SSE) and flash blue when they arrive. You can also tail -f /var/log/rainbox/audit.jsonl directly on the server.
no audit entries yet
| time | op | actor | target | outcome | duration |
|---|