Skip to content
Agentmart
Submit a tool

jj

Use Jujutsu (`jj`) for version control operations including status, history, diffs, commits, rebases, splits, squashes, and Git interop.

Skill by adampoit

IndexedMIT★ 2
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/adampoit-jj

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Use Jujutsu (`jj`) for version control operations including status, history, diffs, commits, rebases, splits, squashes, and Git interop. Use when a repository is initialized for jj or the user asks for jj/Jujutsu workflows.

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/jj

What's inside

Skill name
jj
Description
Use Jujutsu (`jj`) for version control operations including status, history, diffs, commits, rebases, splits, squashes, and Git interop. Use when a repository is initialized for jj or the user asks for jj/Jujutsu workflows.
License
MIT
Instructions
170 lines in SKILL.md · view on GitHub

Files (1)

  • SKILL.md

SKILL.md (first lines)

# jj

Use `jj` for version control when a repository has a `.jj/` directory or `jj status` succeeds.

```bash
jj status
```

## Core Model

- There is no staging area; commands operate on the current change or selected revisions.
- The working copy is a mutable commit/change. Use `jj describe` to set its message.
- Change IDs are stable across rewrites; commit IDs change when contents or metadata change.
- Most history edits are safe because jj records operations in the operation log.

## Inspect State

Start with these read-only commands:

```bash
jj status
jj log --limit 20
jj diff --git
```

Inspect a specific revision:

```bash
jj show <revset>
jj evolog -r <revset>
```

Useful revsets:

- `@`: current working-copy commit
- `@-`: parent of the working-copy commit
- `::@`: ancestors of the working-copy commit
- `@::`: descendants of the working-copy commit
- `trunk()`: repository trunk/main baseline
- `mine()`: changes authored by the current user
- `conflicted()`: changes with conflicts
- `mutable()`: changes that can be rewritten

Quote revsets in shell commands when they contain special characters:

```bash
jj log -r 'trunk()..@'
```

## Make Commits

Describe the current change before creating a new one:

```bash
jj describe -m "Explain why this change exists"
jj new
```

Create a new change from a specific parent:

```bash
jj new <revset>
```

Prefer small, atomic changes. If the working copy mixes concerns, split it before describing or submitting.

`jj desc` is the common shorthand for `jj describe`; use either form consistently with nearby docs or commands.

## Refine History

Move selected changes from the working copy into its parent:

```bash
jj squash
```

Absorb modifications into matching mutable ancestors:

```bash
jj absorb
```

Split a mixed change:

```bash
jj split
```

Split whole files or filesets non-interactively by passing paths and a message:

```bash
jj split -r @ path/to/file1 path/to/file2 -m "Move focused changes into their own commit"
jj split -r @ 'glob:src/**/*.rs' -m "Update Rust sources"
```

## Rebase

Use `--onto`/`-o` for destinations:

```bash
jj rebase -r <revset> -o <destination>
```

Common forms:

```bash
jj rebase -r @ -o trunk()
jj rebase -s <source> -o <destination>
jj rebase -b <branch> -o <destination>
```

Avoid deprecated `--destination`/`-d` examples unless an installed jj version requires them.

## Git Interop

Fetch and push through jj in colocated Git repositories:

```bash
jj git fetch

From adampoit/ai, MIT.

More from adampoit/ai

Signals

Stars
2
Forks
0
Open issues
0
Last commit (this folder)
May 5, 2026 (5 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from adampoit

Cite this page

jj skill. Agent Mart. https://agentmart.dev/skills/adampoit-jj (last updated 2026-10-24)