Project secrets
POST /v1/secrets stores a value once, write-only and encrypted: no call ever returns it. On every plan, 200 per project.- Agent runs, plain-English steps and scripts take
secrets: ["NAME"] and type %NAME% without the model seeing it, only on the secret’s own sites with origins. - Sessions and
exec take secrets too, and export them as $NAME into the shell (scope "shell" or "all", opt-in). Exec output, events and the terminal show %NAME% instead of the value. GET /v1/secrets/audit records every change and use, never a value. Changes by Boxline support show as support.- In the SDKs:
bx.secrets, contexts.setLogin, and env and secrets on sessions.create and exec. In the CLI: boxline secrets list, set and delete, which reads the value from a hidden prompt or stdin, never an argument. - Tasks take
secrets (project secrets by name), and scheduled tasks may use them: the way to sign in on a schedule. PATCH /v1/contexts/:id/login changes some login details and keeps the rest; a new site needs its password again. The audit log names every kind of use (task_run included) and what each change did.
See Credentials.
Environment variables
env on POST /v1/sessions sets variables for the whole shell, kept encrypted and set again on every new machine. cwd, env and secrets on exec now apply to that command only. See Environment variables.
Saved login details and 2FA
PUT /v1/contexts/:id/login keeps a site’s user name, password and 2FA setup key on a saved login. The AI types them as %login.username%, %login.password% and %login.otp% (a fresh code), only on that site, and never sees them. Hobby plan and up. See Browser profiles.
The shell
- A time limit no longer kills background jobs or forgets the shell’s directory and exports, and
exit or set -e keep them too. - Big output keeps its start and its end, with a
[… N characters not shown …] marker, and streaming sends everything. - A move or pause carries each shell’s directory and exported variables, and lists the processes it stopped.
See Shell best practices.
Data retention
An ended session’s recording, logs and agent-run steps are deleted after 7 days on Free, 30 on Hobby and Startup, and 90 on Scale (retentionDays). The session stays, with its usage, and gets dataDeletedAt. See Recordings.
Changed POST /v1/auth/signup needs acceptTerms: true (400 terms_not_accepted without it), and takes an optional name.
Changed plan_limit is always 402 now: project secrets beyond maxSecrets and a session longer than the plan’s maxTimeoutSeconds used to answer 403.
Password resets and account recovery
The console can send a password reset link. Resetting an account whose email was not confirmed yet also recovers it: its API keys are revoked, its webhooks and task schedules are switched off, and its sessions stop, with the new reason account_recovered. See Password resets and account recovery.