Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.joggr.ai/llms.txt

Use this file to discover all available pages before exploring further.

Local sandboxes use git worktrees to create independent working directories that share a single .git history. Each sandbox gets its own branch and file tree — no stashing, no context switching, no conflicts between tasks.

Why Local

Local sandboxes are the fastest option. There’s no container build, no cloud provisioning — just a git worktree on your filesystem. They share your host environment (toolchain, env vars, caches), so there’s zero setup overhead beyond what you configure in copy and run. The tradeoff is isolation. Worktrees isolate at the branch level, not the filesystem or network level. The agent still has access to your host machine. For most day-to-day work that’s fine — if you need stronger boundaries, use containers or remote.

What You Get

Instant Setup

No container builds or cloud provisioning. Worktrees are created in milliseconds.

AFK Mode

Detach and walk away — your agent keeps working in the background. Reattach anytime to pick up where it left off.

Zero Config Needed

Works with your existing toolchain, env vars, and caches. No Dockerfile, no cloud account — just copy and run.

Parallel by Default

Spin up multiple sandboxes and run agents in parallel. Ship a feature, fix a bug, and refactor a module — all at the same time.

How It Works

1

Create

jog sandbox create creates a git worktree with its own branch and file tree. Configured copy files (.env, caches) are copied from your main repo, then run commands execute to get the environment ready.
2

Work

The worktree is a full checkout — build, test, and run agents just like your main repo. Changes in one sandbox don’t affect another.
3

Attach / Detach

Switch between sandboxes with jog sandbox attach. When you detach, the sandbox keeps running in the background — agents continue working while you do something else. Reattach anytime to check progress.
4

Clean up

jog sandbox remove deletes the worktree. If there are uncommitted changes, removal is blocked unless you pass --force.
Follow the Create a Sandbox guide to get started.

Usage

# Create a sandbox for an existing branch
jog sandbox create feat/login

# List sandboxes for this repo
jog sandbox list

# List sandboxes across all repos
jog sandbox list --all

# Switch to a sandbox
jog sandbox attach feat/login

# Interactive picker
jog sandbox attach

# Remove a sandbox
jog sandbox remove feat/login

# Force remove (even with uncommitted changes)
jog sandbox remove feat/login --force

Configuration

Local sandboxes use the top-level sandbox config. See the setup guide for a step-by-step walkthrough, or the full reference for all options.
{
  "$schema": "https://raw.githubusercontent.com/joggrdocs/home/refs/heads/main/schema.json",
  "sandbox": {
    "local": {
      "copy": [".env", ".env.local", ".turbo"],
      "run": ["pnpm install", "pnpm build"],
      "command": "claude"
    }
  }
}

Troubleshooting

Git worktree for that branch already exists.Fix: Run jog sandbox list to see existing sandboxes, then jog sandbox remove <name> or choose a different branch name.
Sandbox has uncommitted changes and removal is blocked.Fix: Either commit/stash your changes, or use jog sandbox remove <name> --force.
Git command failures during sandbox operations.Fix:
  • Ensure you’re running from within a git repository
  • Verify git worktree support: git worktree list
  • Check git version (requires 2.5+): git --version