Bast
Sync

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 your PATH (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

  1. Open Bast and press 4 for Sync.
  2. Select box.ascii.dev and press Enter.
  3. 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 status

What gets created

Each box becomes an SSH host Bast writes under:

~/.ssh/bast/sync/box/config

Your managed Bast config includes that file so OpenSSH (and Bast) can see the hosts. In the picker they are grouped as:

Box
  box-name

Running 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.

SituationBehavior
Running box with IPDirect SSH as user with ~/.ssh/ascii_box_ed25519
Stopped boxEnter resumes the box, refreshes sync, then SSHs in
Missing local keyEnsures ~/.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 (archivingarchived). 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:

ActionPurpose
Sync nowRe-run discovery and refresh SSH config
New boxCreate a sandbox (small / default / large)
Connect / DisconnectEnable sync, or turn it off and remove generated hosts (Disconnect also opts out of auto-connect)
Enable / Disable auto-syncSync when the TUI opens
Refresh statusReload 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:

KeyAction
nCreate a new box
sSync now
.Show stopped boxes
SpaceCollapse or expand

With a Box host selected:

KeyAction
EnterConnect (resume first if stopped)
rResume only (when stopped)
oStop (when running; confirms with stop)
nFork from the latest snapshot (confirms with fork)
dDelete the box and its snapshots (confirms with delete)
FOpen 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 ssh

Re-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.

On this page