Minimal CLI wrapper that launches Claude Code in isolated jj workspaces
Project description
Kekkai
A minimal CLI that launches Claude Code in isolated jj workspaces.
Installation
# Install globally with uv (recommended)
uv tool install kekkai
# Or use uvx for one-off usage
uvx kekkai
Requirements
- Claude Code installed and in PATH
- Jujutsu (jj) installed and in PATH
- Must be run from inside a jj repository
- Watchman (highly recommended for real-time snapshotting and a full experience, see Watchman Setup)
Quick Start
# Launch Claude in a new isolated workspace
kekkai feature-auth
# List existing agent workspaces
kekkai list
When you run kekkai <name>:
- Creates an isolated jj workspace as a sibling directory (
<repo>-<name>/) - Launches Claude Code with full terminal experience
- On exit, prompts whether to keep or delete the workspace
Multi-Agent Workflow
Run multiple agents in parallel by opening multiple terminals:
# Terminal 1
kekkai feature-auth
# Terminal 2
kekkai bugfix-login
# Terminal 3
kekkai refactor-api
Monitor all agents from your main workspace:
jj log
Managing Agent Changes
From your main workspace, use jj to integrate agent work:
# See all changes across workspaces
jj log
# Squash an agent's changes into current revision
jj squash --from <agent-revision>
# Rebase agent work onto latest
jj rebase -s <agent-revision> -d @
# Cherry-pick specific changes
jj new <agent-revision>
see jjui for a more user-friendly interface.
Watchman Setup
Without Watchman, jj only captures changes when you run a jj command. With Watchman, snapshotting is automatic and you can monitor agent progress in real-time.
- Install Watchman
- Enable in
~/.config/jj/config.toml:
# ~/.config/jj/config.toml
[fsmonitor]
backend = "watchman"
watchman.register-snapshot-trigger = true
# highly recommend auto updating stale snapshots as well
[snapshot]
auto-update-stale = true
- Verify:
jj debug watchman status
Development
git clone https://github.com/yum0e/kekkai
cd kekkai
uv run kekkai --help
uv run --with pytest pytest tests/ -v
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file kekkai-0.1.2.tar.gz.
File metadata
- Download URL: kekkai-0.1.2.tar.gz
- Upload date:
- Size: 22.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.9.22 {"installer":{"name":"uv","version":"0.9.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e40dadc322c0d157d3bff851fdd001b67306aed5c57ce933ce9b6336f2164b95
|
|
| MD5 |
95757631af5e3e2943bf14c4e85a7d85
|
|
| BLAKE2b-256 |
8c66176c3ed9f2cd22db3b13ab7faba56c05f5570023fbc3c02c17c235aa528e
|
File details
Details for the file kekkai-0.1.2-py3-none-any.whl.
File metadata
- Download URL: kekkai-0.1.2-py3-none-any.whl
- Upload date:
- Size: 7.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.9.22 {"installer":{"name":"uv","version":"0.9.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f75b88f79198f210ae1d3c01f65bc8b41d9f606147edf3a523aa22bcf647de35
|
|
| MD5 |
afb2d73b2bc8155479cef1f1ced95f12
|
|
| BLAKE2b-256 |
5dc18f51a1d2730f7f6bd58a18992e4aec14b106188801ed486fd093eabef02b
|