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.

Sandboxes are configured via a .joggr/config.json (or .yaml) file at the root of your repository.

Prerequisites

Complete the Getting Started guides before continuing.

1. Create the config file

Create a .joggr/ directory in your repo root and add a config file. JSON and YAML are both supported.
{
  "$schema": "https://raw.githubusercontent.com/joggrdocs/home/refs/heads/main/schema.json",
  "sandbox": {
    "local": {}
  }
}
The $schema property enables autocomplete and validation in your editor.

2. Configure copy

copy defines files and directories to copy from your repo root into each new sandbox. Git worktrees don’t inherit untracked or gitignored files — this is how you bring secrets, env vars, and build caches along.
{
  "sandbox": {
    "local": {
      "copy": [".env", ".env.local", ".turbo"]
    }
  }
}
Keep this list minimal. Only include files the sandbox can’t function without:
FileWhy
.envRuntime secrets and environment variables
.env.localLocal overrides not committed to version control
.turboTurborepo cache — avoids redundant rebuilds in monorepos
Directories are copied recursively. Avoid copying large directories like node_modules — use run to install dependencies instead.

3. Configure run

run defines shell commands that execute sequentially inside the sandbox directory after creation. Use this to bootstrap the environment so it’s ready to use immediately.
{
  "sandbox": {
    "local": {
      "run": ["pnpm install", "pnpm build"]
    }
  }
}
Order matters — install dependencies before building. Common commands:
CommandPurpose
pnpm installInstall dependencies
pnpm buildBuild the project
npx prisma generateGenerate Prisma client from schema
Every command in run adds to sandbox creation time. Keep it fast — skip anything the sandbox doesn’t need upfront.

4. Configure command

command sets the command that launches when the sandbox session opens.
{
  "sandbox": {
    "local": {
      "command": "claude"
    }
  }
}
Pick whichever tool you’ll use most in sandboxes:
CommandUse case
claudeAI-driven development with Claude
cursorCursor IDE
code .VS Code
zed .Zed editor

5. Verify

Your full config should look like this:
{
  "$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"
    }
  }
}
Test it by creating a sandbox:
jog sandbox create test/my-first-sandbox
Confirm that your copy files are present, run commands completed, and your command launched.