box.ascii.dev
Import ASCII Box sandboxes into Bast as read-only hosts via the native box CLI.
The Sync tab (4) imports ASCII Box sandboxes into Bast. Synced boxes show up in the host picker under Box, stay connectable with your system ssh, and keep connection details owned by Box sync.
Bast talks to Box through the native box CLI on your machine. There is no separate Bast cloud agent or Go SDK. Auth, list, stop, resume, and SSH key authorization all use the same CLI you already use with box.ascii.dev.
Bast supports GCP, AWS, Azure, and box.ascii.dev through each provider's native CLI, and Upstash Box and Hetzner Cloud through their APIs.
Requirements
- ASCII Box CLI (
box) on yourPATH(the installer also places it at~/.ascii/bin/box) - An authenticated Box account (
box login/box onboard) - Network access to create, stop, resume, and SSH into your boxes
Connect box.ascii.dev
- Open Bast and press
4for Sync. - Select box.ascii.dev and press Enter.
- Choose Connect or Sync now.
If the Box CLI is already installed and logged in, Bast auto-connects on TUI start and when you run bast sync status, unless you previously chose Disconnect (sticky opt-out via bast sync disable box).
Sign in with the usual CLI:
box login
box statusWhat gets created
Each box becomes an SSH host Bast writes under:
~/.ssh/bast/sync/box/configYour managed Bast config includes that file so OpenSSH (and Bast) can see the hosts. In the picker they are grouped as:
Box
box-nameRunning boxes show Box synced. Stopped or archiving boxes stay in the same group but are hidden from the host list until you press . (the same toggle that shows user-hidden hosts). Search still finds them by name. Selecting the Box group shows running vs stopped counts and New box. Connection settings, group, and label are owned by sync, so edit (e), delete (d), move, favorite, and hide are blocked.
On the Box provider page (Sync 4), boxes are listed under Running and Stopped, the same collapse/expand pattern as the Hosts tab. Stopped starts collapsed. Enter on a host connects (or resumes a stopped box).
How Bast connects
On connect (TUI Enter or bast connect / bast <label>), Bast prepares SSH access, then launches your system ssh.
| Situation | Behavior |
|---|---|
| Running box with IP | Direct SSH as user with ~/.ssh/ascii_box_ed25519 |
| Stopped box | Enter resumes the box, refreshes sync, then SSHs in |
| Missing local key | Ensures ~/.ssh/ascii_box_ed25519 and authorizes it on the box |
SSH user is always user. There is no default-user setting for Box.
Stopping and archiving
Stopping a box snapshots it and pauses billing (archiving → archived). That can take a few minutes. Stopped boxes cost nothing and can be resumed later. Delete (d / bast box delete) force-stops the box and permanently removes the snapshots it exclusively owns. Named snapshots stay until you run bast box snapshot rm. List snapshots with bast box snapshots [host].
box.ascii.dev settings
Inside the box.ascii.dev submenu:
| Action | Purpose |
|---|---|
| Sync now | Re-run discovery and refresh SSH config |
| New box | Create a sandbox (small / default / large) |
| Connect / Disconnect | Enable sync, or turn it off and remove generated hosts (Disconnect also opts out of auto-connect) |
| Enable / Disable auto-sync | Sync when the TUI opens |
| Refresh status | Reload account and last-sync info |
Synced boxes appear below those actions, grouped by status. Press Esc to return to the provider list.
Host keys (Hosts tab)
With the Box group selected:
| Key | Action |
|---|---|
n | Create a new box |
s | Sync now |
. | Show stopped boxes |
| Space | Collapse or expand |
With a Box host selected:
| Key | Action |
|---|---|
| Enter | Connect (resume first if stopped) |
r | Resume only (when stopped) |
o | Stop (when running; confirms with stop) |
n | Fork from the latest snapshot (confirms with fork) |
d | Delete the box and its snapshots (confirms with delete) |
F | Open Files (SFTP) when the box is reachable |
CLI
bast sync box # discover and write hosts
bast sync status # account, last sync, errors
bast sync disable box # turn off, remove sync hosts, sticky opt-out
bast sync box --json
bast box new [--type small|default|large] [--ttl seconds | --no-auto-stop] [--no-env]
bast box fork <host|id> [--type small|default|large] [--no-env]
bast box stop <host|id>
bast box resume <host|id> [--type small|default|large] [--no-env]
bast box delete <host|id> [--yes]
bast box snapshots [host|id]
bast box snapshot delete <snapshot-id> [--yes]
bast box snapshot rm <name>
bast connect box_mybox # banner + Box access prepare, then sshRe-sync and cleanup
Press r on the Sync tab (or run bast sync box) after you create, stop, or resume boxes outside Bast. Disconnecting box.ascii.dev removes the generated sync config and the Include line Bast added for it. Your Bast-managed hosts and keys are left alone. ~/.ssh/ascii_box_ed25519 is left in place if Bast created it.