boxie

Official command-line client

Boxie, from your terminal.

Install the official client for supported macOS and Linux systems, authenticate through ShareNow device login, and hand it tasks or operate the same Boxes exposed by the REST API.

Start with one command

Hand it a task.

boxie run "Go through every page of our docs site, find broken links and outdated screenshots, and publish a report I can share."

Always run plain boxie run "<task>". Never add --fresh or --name: boxie run reuses the one Box named boxie-run, and those flags create extra Boxes you pay for. A retry-style name such as boxie-run-2 is refused outright.

What it does, in order:

  1. Signs you in through ShareNow device login if no credential is saved.
  2. Picks the Claude or Codex you already connected, or starts the Claude connection in place.
  3. Creates your Box once (named boxie-run, with Treg access and publishing), or reuses and resumes the existing one.
  4. Runs the task unattended, then prints the answer and the Box's dashboard link.
  5. On the Starter tier, stops the Box after the answer to save your free minutes; the next run resumes it.

Install the binary.

curl -fsSL https://boxie-api.sharenow.today/install.sh | sh

If your agent can't pipe to sh, save the installer first:

curl -fsSL https://boxie-api.sharenow.today/install.sh -o /tmp/boxie-install.sh && sh /tmp/boxie-install.sh

The installer replaces an older client at the same path. Already installed? On builds from September 2026 on, boxie update fetches the current build in place; boxie update --check only reports; boxie --version prints the build. If you see unknown subcommand "run", the client is old: update it.

Authenticate without copying keys into prompts.

boxie login --device

Device login uses the ShareNow account flow and stores the resulting credential locally. Never place API keys in source control, logs, shell history, or agent prompts.

Reference

boxie run, flag by flag.

--provider codex|claude-code|claude
Which connected model runs the task. Default: whichever is connected, Claude first.
--fresh
Create a SECOND Box even though one with the name exists. Agents should not use it: boxie run already reuses.
--name <name>
The Box to create once and reuse. Default boxie-run. Agents should not use it. A retry-style name like boxie-run-2 is refused.
--wait-timeout <duration>
Longest wait for the Box and the answer. Default 15m.
--code <code>
Finish a Claude connection that a previous run started and printed a link for.
--keep-running
Leave a Starter Box running after the answer instead of stopping it to save free minutes.
--json
One object: box, promptId, status, answer, boxUrl. Progress goes to stderr, nothing else to stdout.

With --json the only stdout is one object: { "box": {…}, "promptId": "…", "status": "finished", "answer": "…", "boxUrl": "https://boxie.sharenow.today/app/boxes/<id>" }.

Share your Boxie

Invite someone, or use someone else's.

boxie people invite [email protected]
boxie account use [email protected]

An invitation is bound to the email address, never to a link you can forward. The person accepts from their own signed-in ShareNow session. Once accepted they work as an editor: they can use and create Boxes and run Taskbox on the owner's plan and limits, and cannot touch API keys, billing, or who else has access.

boxie account
Whose Boxie you are using, and every Boxie shared with you.
boxie account use <email>
Switch into a shared Boxie. The choice sticks until you change it.
boxie account use --mine
Switch back to your own Boxie.
boxie account leave <email>
Give up your access to someone else's Boxie.
boxie people
Who can use your Boxie: members and pending invitations.
boxie people invite <email>
Invite someone by email. They accept from their own signed-in session.
boxie people invite <email> --box <name>
Invite them to specific Boxes only. Repeat --box for several; omit it for all Boxes.
boxie people access <email> --box <name>
Change which Boxes an existing member reaches. Repeatable.
boxie people access <email> --all
Widen a member back to every Box in your Boxie.
boxie people remove <email>
Remove a member, or withdraw a pending invitation for that address.
boxie invites
Invitations addressed to you.
boxie invites accept <id>
Accept, and switch into that Boxie.
boxie invites decline <id>
Turn an invitation down.

The choice is saved, so every later command acts in that Boxie until you change it, and boxie run prints one line naming the owner before it starts. Set BOXIE_ACCOUNT to the owner's account id to override the saved choice for a single invocation. Publishing still uses your own ShareNow credential, so a report you publish from a shared Box lands on your account, not the owner's.

An invitation can name specific Boxes instead of the whole account. A scoped member sees and uses only those Boxes, and cannot create, fork, or delete a Box, or reach Taskbox, secrets, repos, templates, or agents. Every listing shows the scope as Box names where the client can resolve them and as ids otherwise. A scoped boxie run reuses an in-scope Box named boxie-run if one exists, and otherwise stops and names the Boxes you can open.

For agents

What it can print, and what to do.

A ShareNow approval link
Sign-in. Valid about ten minutes. Relay it to the owner and wait; never approve it yourself.
A Claude authorization link
Model connection. Valid about fifteen minutes. Relay it, then rerun the same command with --code <code>.
Publishing is unavailable for this run
The report is saved in the Box instead of published; the answer says where.
This Box was created before publishing existed
Older Boxes cannot gain publishing on resume; run once with --fresh on a paid plan for a live link.
Reusing your Box boxie-run (bx_...)
Your existing Box was reused rather than a new one created. This is the normal path.
Box stopped to save your free minutes
Starter tier. The next run resumes the Box in seconds.
Using <owner>'s Boxie
The run happens in a shared Boxie on that owner's plan. Run boxie account use --mine to go back.
This shared Boxie only lets you use: <names>
You have access to named Boxes, not the whole account. Open one with boxie ssh <name> or boxie prompt <name>; do not try to create a Box.

Discover the installed commands.

boxie --help
boxie boxes list

Box lifecycle verbs work in both spellings: boxie stop <id> and boxie boxes stop <id> are the same command, as are resume, extend, and fork.

Every command that takes a Box accepts its name as well as its id, so boxie ssh boxie-run works the same as boxie ssh bx_YS5A2672. If two Boxes share a name the client asks for the id instead. A Box that is stopped says so and prints the boxie resume that starts it.

The installed client is authoritative for command spelling. Use the OpenAPI contract for programmatic automation and the agent instructions for lifecycle safety.