Manage parallel AI development agents in isolated Git worktrees.
KILD eliminates context switching between scattered terminals when working with multiple AI coding assistants. Each kild runs in its own Git worktree with automatic branch creation, allowing you to manage parallel AI development sessions from a centralized interface.
- Isolated Worktrees: Each kild gets its own Git worktree with unique
kild/<branch>branch - Native Terminal Integration: Launches AI agents in native terminal windows
- Session Tracking: Persistent registry tracks all active kilds
- Cross-Platform: Works on macOS, Linux, and Windows
- Agent-Friendly: Designed for programmatic use by AI assistants
- Visual Verification: Companion
kild-peektool for capturing screenshots and inspecting native UI (see.claude/skills/kild-peek/SKILL.md)
A native graphical interface is under development using GPUI. The UI provides visual kild management as an alternative to the CLI.
# Build and run the experimental GPUI GUI
cargo run -p kild-uiThe GUI currently supports:
- Multi-project management: Add git repositories as projects, switch between them
- KILD listing with status indicators (running, stopped, git dirty state)
- Creating new kilds with agent selection
- Opening new agents in existing kilds
- Stopping agents without destroying kilds
- Destroying kilds with confirmation dialog
- Bulk operations: Open All stopped kilds, Stop All running kilds
- Quick actions: Copy path to clipboard, open in editor, focus terminal window
See the PRD for the development roadmap.
cargo install --path .# Enable verbose logging output (shows JSON logs)
kild -v <command>
kild --verbose <command>kild create <branch> --agent <agent>
# Examples:
kild create kiro-session --agent kiro
kild create claude-work --agent claude
kild create gemini-task --agent gemini
# Branch names with slashes are supported
kild create feature/auth --agent claude
kild create bugfix/login-error --agent kiro
# Add a description with --note
kild create feature-auth --agent claude --note "Implementing JWT authentication"kild list
# Machine-readable JSON output
kild list --json# Print worktree path
kild cd <branch>
# Shell function for quick navigation
kcd() { cd "$(kild cd "$1")"; }
# Usage with shell function
kcd my-branch# Open with same agent (additive - doesn't close existing terminals)
kild open <branch>
# Open with different agent
kild open <branch> --agent <agent>
# Open agents in all stopped kilds
kild open --all
# Open all stopped kilds with specific agent
kild open --all --agent <agent># Open worktree in editor (uses $EDITOR or defaults to 'zed')
kild code <branch>
# Use specific editor
kild code <branch> --editor vim# Bring terminal window to foreground
kild focus <branch># Show uncommitted changes
kild diff <branch>
# Show only staged changes
kild diff <branch> --staged# Show last 10 commits (default)
kild commits <branch>
# Show last 5 commits
kild commits <branch> -n 5
kild commits <branch> --count 5# Stop agent, preserve worktree
kild stop <branch>
# Stop all running kilds
kild stop --allkild status <branch>
# Machine-readable JSON output
kild status <branch> --json# Destroy with safety checks (blocks on uncommitted changes, warns on unpushed commits)
kild destroy <branch>
# Force destroy (bypass all git safety checks)
kild destroy <branch> --force
# Destroy all kilds (with confirmation prompt and safety checks)
kild destroy --all
# Force destroy all (skip confirmation and all git safety checks)
kild destroy --all --forceThe restart command is deprecated. Use open instead:
# Old (deprecated, still works with warning)
kild restart <branch>
# New (preferred)
kild open <branch>kild cleanupKILD uses a hierarchical TOML configuration system:
- User config:
~/.kild/config.toml(global settings) - Project config:
./.kild/config.toml(project-specific settings) - Defaults: Built-in sensible defaults
See .kild/config.example.toml for all available options.
File Include Patterns: By default, KILD copies certain files to new worktrees even if gitignored:
.env*- Environment files*.local.json- Local config files.claude/**- Claude AI context files.cursor/**- Cursor AI context files
Configure additional patterns in [include_patterns] section. Your patterns extend the defaults.
Agent Settings: Configure default agent, startup commands, and flags per agent.
Terminal Preferences: Set preferred terminal emulator (Ghostty, iTerm2, Terminal.app).
- Worktree Creation: Creates a new Git worktree in
.kild/<name>with a unique branch - File Copying: Copies configured patterns (env files, AI context) to worktree
- Agent Launch: Launches the specified agent command in a native terminal window
- Session Tracking: Records session metadata in
~/.kild/registry.json - Lifecycle Management: Provides commands to monitor, stop, and clean up sessions
- Rust 1.89.0 or later
- Git repository (kild must be run from within a Git repository)
- Native terminal emulator (Terminal.app on macOS, gnome-terminal/konsole on Linux, etc.)
KILD is designed to be used by AI agents themselves. For example, an AI assistant can create a new kild for a specific task:
# AI agent creates isolated workspace for bug fix
kild create bug-fix-123 --agent claudeThis enables parallel AI workflows without manual terminal management.
- CLI: Built with clap for structured command parsing
- Git Operations: Uses git2 crate for worktree management
- Terminal Launching: Platform-specific terminal integration
- Session Registry: JSON-based persistent storage
- Cross-Platform: Conditional compilation for platform features
Apache License 2.0 — free to use, modify, and distribute.
The name "KILD", logo, and associated branding are trademarks of Widinglabs OÜ and are not covered by the Apache 2.0 license. See LICENSE.md for details.
