Daily Development Workflow
This guide covers the day-to-day patterns for working with SkyBox: starting your work, switching between projects, and shutting down cleanly.
Starting Your Day
Quick Start a Project
If you know which project you want to work on:
skybox up my-projectOr navigate to the project directory and run:
cd ~/.skybox/Projects/my-project
skybox upSkyBox auto-detects the project from your current directory.
Skip the Manual Start
With shell integration, containers start automatically when you cd into a project directory — no skybox up needed.
What Happens on Start
- Session Check - SkyBox checks for an existing session and creates one for your machine
- Sync Resume - If sync was paused, it resumes automatically
- Container Start - Starts or creates the dev container
- Post-Start - Prompts for editor/shell options
Choose Your Entry Point
After the container starts:
? What would you like to do?
1) Open in editor
2) Attach to shell
3) Both
4) Neither (just exit)Option 1: Open in Editor
Opens your configured editor (Cursor, VS Code, Zed, etc.) with the Dev Container extension connecting to the running container.
Option 2: Attach to Shell
Drops you into an interactive shell inside the container:
Attaching to shell (Ctrl+D to exit)...
root@container:/workspaces/my-project#Option 3: Both
Opens the editor and attaches to a shell.
Non-Interactive Start
For scripting or quick access:
# Just start, no prompts
skybox up my-project --no-prompt
# Start and open editor
skybox up my-project --editor
# Start and attach shell
skybox up my-project --attach
# Start, open editor, and attach shell
skybox up my-project --editor --attachChecking Project Status
Overview of All Projects
skybox statusShows a table of all local projects:
Projects:
NAME CONTAINER SYNC BRANCH SESSION LAST ACTIVE SIZE
backend-api running syncing main active here 2 hours ago 245M
frontend-app stopped paused develop none 3 days ago 512M
shared-lib stopped syncing main none 1 day ago 48MFor a live-updating full-screen view, try skybox dashboard.
Detailed Project Status
skybox status my-projectShows comprehensive information:
Project: my-project
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Container
Status: running
Image: mcr.microsoft.com/devcontainers/base:debian
Uptime: 2 hours
CPU: 0.5%
Memory: 256M / 4G
Sync
Status: syncing
Session: skybox-my-project
Pending: 0 files
Last sync: -
Git
Branch: main
Status: clean
Ahead: 0 commits
Behind: 0 commits
Session
Status: active here
Machine: my-laptop
User: me
Started: 2 hours ago
PID: 12345
Disk Usage
Local: 45M
Remote: 44MSwitching Between Projects
Stop Current Project
skybox down backend-apiThis:
- Flushes pending sync changes to remote
- Stops the container
- Ends the session
- Optionally pauses sync to save resources
Start Another Project
skybox up frontend-appQuick Project Selection
Without specifying a project, SkyBox prompts you:
skybox up? Select a project:
1) backend-api
2) frontend-app
3) shared-libMultiple Projects Simultaneously
You can run multiple projects at once - each gets its own container:
# Terminal 1
skybox up backend-api --attach
# Terminal 2
skybox up frontend-app --attachNote: Each project has its own session, so SkyBox will warn you if the same project is active on another machine.
Working with Running Containers
Quick Access with skybox open
For running containers, use skybox open for quick access without the full startup flow:
# Open action menu (editor/shell/both)
skybox open my-project
# Open editor directly
skybox open my-project --editor
# Attach to shell directly
skybox open my-project --shellThis is faster than skybox up because it skips session checks and sync checks.
Using skybox up with Running Containers
If a container is already running:
skybox up my-project? Container already running. What would you like to do?
1) Continue with existing container
2) Restart container
3) Rebuild container- Continue - Just attach or open editor
- Restart - Stop and start fresh
- Rebuild - Full rebuild (use after devcontainer.json changes)
Open Editor for Running Project
skybox editor my-projectOpens your configured editor pointing to the running container.
Multiple Shell Sessions
Open additional shells for a running container with skybox shell:
# Terminal 1: Main work
skybox up my-project --attach
# Terminal 2: Run tests
skybox open my-project --shell
# Terminal 3: Watch logs
skybox open my-project --shellList Local Projects
skybox listLocal projects:
backend-api
Branch: main
Path: /Users/john/.skybox/Projects/backend-api
frontend-app
Branch: develop
Path: /Users/john/.skybox/Projects/frontend-appEnding Your Day
Clean Shutdown
skybox down my-projectInteractive prompts:
Syncing pending changes... done
Stopping container... done
Session ended
? Remove the container to free up resources? (y/N)
? Pause background sync to save resources? (y/N)Quick Shutdown
skybox down my-project --no-promptStops container and ends session without prompts.
Shutdown with Cleanup
skybox down my-project --cleanupRemoves the container entirely (not just stops it). Useful for freeing disk space.
Shutdown All Projects
Stop all running containers at once using the --all flag:
skybox down --allThis stops all running containers and ends all sessions. If some projects fail to shut down, the command continues with the remaining projects and reports failures at the end.
Managing Sync
Background Sync Behavior
- Sync runs continuously in the background via Mutagen
- Changes sync bidirectionally (local <-> remote)
- Default mode:
two-way-resolved(conflicts resolved automatically)
Check Sync Status
skybox status my-projectLook at the Sync section:
- syncing - Active and healthy
- paused - Manually paused or auto-paused
- error - Sync problem (check mutagen logs)
Pause Sync Manually
During skybox down, you can choose to pause sync. This saves resources when you are not actively working.
Resume Paused Sync
Running skybox up automatically resumes paused sync sessions.
Session Management
Understanding Sessions
Sessions track which machine is actively working on a project. When you run skybox up:
- SkyBox checks for an existing session file in the project
- If no session exists, creates one for your machine
- If a session exists from the same machine, updates the timestamp
- If a session exists from a different machine, warns and asks to continue
Session Conflict Resolution
This project is running on work-laptop (started 3 days ago)
? Continue anyway? (y/N)Continuing anyway:
- Creates a new session for your current machine
- The session file syncs to the other machine via Mutagen
- Safe as long as you are not actively editing on both machines simultaneously
Viewing Session Status
skybox status my-projectSession section shows:
- Current status (active here / active on another machine / none)
- Machine name
- Username
- When the session started
Debugging with Logs
View container logs for a running project:
skybox logs my-projectFollow logs in real time (useful for debugging server processes):
skybox logs my-project -fThis streams container output continuously until you press Ctrl+C. See skybox logs for all available options.
Diagnosing Issues with Doctor
If something is not working as expected, run the built-in diagnostic tool:
skybox doctorThis checks Docker, Mutagen, SSH connectivity, and configuration in one command and suggests fixes for any problems found. Run this before diving into manual troubleshooting.
Batch Operations
For multi-project workflows, use the --all flag to operate on all projects at once:
# Start all projects
skybox up --all
# Stop all projects
skybox down --allIf individual projects fail during batch operations, the command continues with the remaining projects and reports failures at the end.
Troubleshooting
For solutions to common issues with containers, sync, and sessions, see the Troubleshooting Guide.
Related Commands
| Command | Usage in this workflow |
|---|---|
skybox up | Start a project container |
skybox down | Stop a project container |
skybox open | Quick access to running containers |
skybox shell | Open additional shell sessions |
skybox status | Check project and sync status |
skybox dashboard | Live-updating full-screen view |
skybox logs | View container or sync logs |
skybox doctor | Diagnose common issues |
skybox list | List local projects |
See Also
- Multi-Machine Workflow - Working across multiple machines
- Shell Integration - Auto-start containers on
cd - Troubleshooting - Common issues and solutions