Loading video...

Video Failed to Load

Go Home

I replaced Claude Code’s default --worktree command with a custom one built around Ghostty, Lazygit, and Yazi. By default, Claude Code creates worktrees inside the .claude/worktrees folder within the same project. That means if you spin up 3 worktrees, you end up with 3 complete copies of your project...

67,005 views • 7 months ago •via X (Twitter)

27 Comments

Lawrence Chen's profile picture
Lawrence Chen7 months ago

nice! can you also optionally support workspaces+panes in with cmux cli?

Roderik's profile picture
Roderik7 months ago

how do you do the ghostty panes? did not know you could script those

Jon Zeolla's profile picture
Jon Zeolla7 months ago

You can do similar without the third party dep with a bash function like this

Robogator's profile picture
Robogator7 months ago

This is such a clean upgrade to Claude Code worktrees, love how you turned chaos into a focused branch playground 🚀

Jelmer Borst's profile picture
Jelmer Borst7 months ago

Or... Just use @conductor_build

Ben Kruger's profile picture
Ben Kruger7 months ago

Good luck with your permissions with a sibling! When inside the same repo you inherit the repo permissions

Pere's profile picture
Pere7 months ago

Love it!

Alvaro's profile picture
Alvaro7 months ago

I love your customization tools for ghostty and Claude Code, thanks for sharing! Do you use an IDE on top, or only the terminal?

Doug Lance's profile picture
Doug Lance7 months ago

tmux bro

Donny Li's profile picture
Donny Li7 months ago

Great workflow tweak. Keeping worktrees outside the repo is cleaner for fs watchers and usually cuts IDE index churn when multiple branches are open.

yrzhe.top's profile picture
yrzhe.top7 months ago

Nested worktrees inside the project dir = accidental complexity tax. Solving it at the hook layer with adjacent dirs is a small spatial shift, big cognitive payoff. Bookmarked.

Vish's profile picture
Vish7 months ago

moving worktrees to sibling directories is one of those fixes that seems small until you realize how much cognitive overhead messy project nesting adds. having lazygit and yazi ready in the right context on launch is a nice touch too. most people underestimate how much time they lose just navigating to the right place before they can start working

SweatSpots 🏃🏼‍♂️'s profile picture
SweatSpots 🏃🏼‍♂️7 months ago

It's indeed a better DX than the default one! I didn't know that you can hook and overwrite the commands. How did you do that magic?

Life Of Rick's profile picture
Life Of Rick7 months ago

the sibling directory move is underrated. I've seen agents step on each other's files mid-task and it's chaos. isolation isn't just cleaner — it's the difference between reliable output and silent corruption nobody catches until production.

Sam Cui's profile picture
Sam Cui7 months ago

Nicely done! I also found hooks to be the ideal solution to parallel subagents. Furthermore, you can use context injection to avoid information repetition. Check it out here:

Shreyans Bhansali's profile picture
Shreyans Bhansali7 months ago

bro turned worktrees into a spa day for branches

Tyson George's profile picture
Tyson George7 months ago

This is awesome. If you want the editor part too, I made lazyide — lazygit-style TUI IDE made to run right next to Claude Code.

Sizero's profile picture
Sizero7 months ago

What's your ghostty setup? Looks amazing!

Morgan's profile picture
Morgan7 months ago

Super interesting Daniel, I need to try this.

Himanshu Kumar's profile picture
Himanshu Kumar7 months ago

@dani_avila7, Dani, custom worktrees offer better project organization.

Mrugesh Mohapatra 🇮🇳's profile picture
Mrugesh Mohapatra 🇮🇳7 months ago

This is cool. I built my own tool for worktrees management too. Love the integration for automation for lazygit and yazi. Stealing this for my claude hooks!

Gagan | Claude + AWS's profile picture
Gagan | Claude + AWS7 months ago

this is the kind of customization that makes claude code feel like a proper development environment and not just an AI chatbot in a terminal. the hooks system is so underrated. having ghostty panes auto launch with lazygit and yazi ready to go means you can actually context switch between worktrees without losing your flow. saving this for later

Dominic Evans's profile picture
Dominic Evans7 months ago

One assumes they do it within the workspace because that keeps them trivially all in the same sandbox workspace and so permissions apply across them.

Chahid Chirchi's profile picture
Chahid Chirchi7 months ago

that's slick, lazygit + yazi must speed things up??

Elon's profile picture
Elon7 months ago

Wanna try to add a setup_worktree hook like Cursor has?

Daniel Hillmann's profile picture
Daniel Hillmann7 months ago

This is so cool. Almost exactly what I have been looking for. Thank you for sharing.

MindyCore's profile picture
MindyCore7 months ago

Love how you smooth the workflow 💙 ⚡ Small tweaks like this make coding feel effortless and joyful.

Related Videos

I got curious how compaction works as a PM, so I did some brain surgery on Claude Code: (Anthropic's been doing really interesting work on context editing - they showed Claude Opus playing Settlers of Catan for 75+ minutes in a single thread by constantly editing the context instead of starting fresh. When I saw that Claude Code has a compaction command with optional custom instructions, I wanted to understand what's actually happening.) Abhishek Katiyar and Aman Khan gave me the key tip: Claude Code stores all your conversation history as text files on your computer. Open a new directory and give Claude Code a task. Here's how to watch compaction happening: 1. Go to your user's root directory 2. Press Command+Shift+Period (Mac) to show hidden folders 3. Navigate to ~/.claude/projects/ 4. Find your project folder and use Cursor/VSCode to open it (there's a reason) 5. Install the JSONL Gazelle plugin (open source, thank you Gabor Cselle!) 6. Open the most recent JSONL file - each row is a message in your conversation 7. Run the compact command in Claude Code with custom instructions 8. Watch what happens in the file What I learned: When you compact, Claude Code doesn't just summarize and delete everything. It creates a "compact boundary" in the conversation file, writes a summary of what happened before, but keeps the full original conversation (!!!!) The new thread can still retrieve any details from before compaction if needed. That is so damn cool. Why this matters: What you're getting in Claude Code is similar to what Anthropic ships in their developer SDK - so inspecting your daily tools is how you build real product intuition. The best way to understand AI systems is to open them up and look inside. Everything is text files.

Tal Raviv

58,082 views • 9 months ago

THIS MIGHT BE THE #1 OPEN-SOURCE REPO FOR CLAUDE CODE RIGHT NOW. IT GIVES CLAUDE A MEMORY AND SLASHES YOUR TOKEN COST ON EVERY QUESTION The repo is safishamsi/graphify, a free open-source skill that turns any codebase into a knowledge graph Claude Code can read instantly. Instead of grepping through your files every session, Claude gets a map of how everything connects The problem it fixes: Every time you ask Claude Code about a big repo, it does the same thing, greps through dozens of files like a brute-force Ctrl+F, blows through your context window, and sometimes still misses the answer hiding in a file nobody searched. Claude Code has no memory of how your project is structured. Every session starts from zero What it does: It maps your entire codebase into a knowledge graph, capturing not just which files exist, but which functions depend on which, which modules are central, and which files cluster around the same concern. Claude queries the map instead of scanning files How it works, three passes: 1. Code structure, free and local. Tree-sitter parses your files and pulls out classes, functions, imports and call graphs. No LLM, no tokens, just your actual code mapped deterministically 2. Audio and video, if you have them. Transcribed locally and folded into the graph 3. Docs, papers, images. Here an LLM does semantic analysis, figuring out what each document means and where it fits. Only the meaning gets sent up, never your raw source It saves you money: Normally a question about a big repo makes Claude spawn explore agents that scan file after file, eating your context window and your token budget before you get an answer. With the graph already built, Claude queries the map instead of re-reading the codebase every time. Same answer, a fraction of the tokens. The graph only gets built once, then a hook rebuilds it after each commit for free, so you never pay that scanning cost again. The bigger the repo, the bigger the gap The best parts: it's a skill, so once installed Claude knows when to use it without you memorizing commands. It works on non-code folders too, point it at docs or notes and it can spin up an Obsidian vault How to add it to your Claude: 1. Install Claude Code if you haven't: npm install -g Paul Jankura-ai/claude-code 2. Add the skill: claude skill add safishamsi/graphify 3. Open your project folder and run /graphify . to build the graph 4. Optional, make it automatic: graphify hook install so the graph rebuilds after every commit That's it. Ask Claude about your repo and it reads the map instead of burning tokens on a file hunt Bookmark this

Yarchi

56,568 views • 4 months ago