Terminal
Run arbitrary shell commands inside any sandbox.
Where to find it
Sandbox table → row → Terminal tab.
What it is
A thin wrapper around E2B's command execution. You type a command, the UI ships it to the sandbox, and streams stdout + stderr back. It's not an interactive PTY — think ssh user@host 'some command' rather than a full shell.
Commands you'll actually run
shell
pm2 status # which processes are up?
pm2 restart shmastra # restart the dev server
pm2 restart healer # restart the healer agent
pm2 logs shmastra --lines 100 # tail server logs
ls .logs # where log files live
cat .env # inspect env (handle with care)
pnpm install # re-install after a messy merge
pnpm dry-run # run the Shmastra dry-run build manually
git status # see uncommitted changes
git log --oneline -n 20 # recent commits (includes healer's)
du -sh node_modules files .storage # disk usageCombining with other tabs
- Chat with agent is a friendlier way to do investigations — the Claude session narrates as it goes.
- Logs shows pm2 output live; use the terminal when you want to run things between log reads.
- Files is easier for edits than piping through
sed.
When a sandbox is broken
A typical rescue loop:
- Terminal:
pm2 logs shmastra --lines 200— capture the last error. - Files: find and fix the offending file.
- Terminal:
pm2 restart shmastra && sleep 5 && pm2 status. - Sandbox table: confirm status flips back to
ready.
If it doesn't, hand off to chat: "Here's the error, have a go."
Be careful
- Destructive commands are unprotected.
rm -rfworks. Don'trm -rf /. - Secrets are readable.
cat .envshows real values; a shoulder surfer can see them on your screen. - No history between tabs. Each terminal request is independent — environment variable exports don't carry across.