(There does also need to be a way to jump back in the conversation history without reverting the code, there are times that is useful too!)
A common experience with these tools is that if you realize you want to change the direction you're heading, it's better to jump back to that point in the work and redo it than it is to try to redirect the tool from where you are. Here's a great post about it on the Cline blog
https://cline.bot/blog/how-i-learned-to-stop-course-correcti...
Ref: https://github.com/google-gemini/gemini-cli/blob/main/docs/c...
I wouldn't want to have Claude auto-commit everything it does (because I sometimes revert its changes), nor would I want to YOLO it without any git repo... This seems like a nice tool, but for someone who has a very different workflow.
I would love any feedback on what you are missing etc
- The Apple icon is a literal apple and not the Apple logo.
- You've got 2 Mac download buttons that do the same thing right at the top, surely one of those is a mistake.
- "Watch it in action" is positioned poorly and fails to be a header for the video. Too close to the button above it.
- "Automatic version control" is not what a checkpoint is? "Version control" means git to almost everyone.
- Privacy link is a fake placeholder.
- "See It In Action" looks like you meant to add images and just forgot?
- You named this like 5 things. The website title is "Checkpoints for Claude Code", the domain is "Claude Checkpoints", the UI website title is just "Checkpoints" as if its a standalone brand, the contact email link uses "checkpoints-app.com", and finally you call it "Claude Diff" in the App Store description. Oh and the HN submission is a 6th one, "Claude Code Checkpoints".
Cool project though, sorry to be so critical.
how long until we start seeing software products for scrum management and t-shirt size estimation for claude code
introduce waterfall methodology to the LLM!
The shirt sizes now are for manual acceptance testing.
Don't get me wrong, it's definitely improved my workflow and efficiency, but you must be winning at roulette if the model is performing well on anything that can't be googled and implemented witihn a similar amount of time.
unless it's claude, where even simple styling changes seem to become epics just when it wants to spit out an extra few thousands lines of code
It doesn't make sense for NI (natural intelligence) dev, either. Even SCRUM doesn't make much sense. The only Agile thing that really makes sense is Kanban, which is actually known to computer science as dispatch queue.
In the 60s, OS researchers spent time figuring out how to optimally schedule resources for computation. Today, almost nobody uses these techniques. (This is known as "waterfall" in PM parlance.)
It turns out, the cheapest way to schedule computing resources is a simple dispatch queue. Why spend extra time figuring out in what order things need to be done, or how long they will take, if they need to be done anyway? It never made sense and it doesn't matter whether the agent is NI or AI.
(These people dont realise that there a lot of tradeoffs to be made that pop up during implementation)
The noticeable issues are (1) unpredictable scrolling of the terminal window and (2) a super-buggy text box for inputting the prompt.
In particular if I mash the arrow key too fast while moving around and editing the prompt CC and my terminal's idea of where the cursor is get out of sync somehow and it's tricky to get them re-aligned, and I can't actually input text until I do. The vim mode lets me bypass this but it has its own bugs and is missing a ton of features that I expect. Visual selection in particular seems to be missing? Not entirely certain what things I'm used to are stock vim features vs Spacemacs features but I'm pretty sure visual mode is the former. Regardless, only the very basics seem to actually work. "w", "b", "e", "cw/b/e", "dw/b/e", "esc/i".
So for the most part I actually just edit CC prompts in emacs and paste them.
I resort to this workaround because I am very motivated to use Claude Code. For a less-useful piece of software I would probably just give up.
I'm guessing they're using abstraction of some sort, but imo they've done a lot of great features and definitely usable.
That being said- they could just build / use something more like a jupyter notebook and have a wildly more stable and rich experience. Or a classic tui app, but pros and cons.
Right, part of the reason it stands out is that we're conditioned to much more functional text input in claude.ai (or competing web apps like ChatGPT).
I assume part of the motivation for the terminal app concept is that all the tool calls run in a deterministic environment (whatever was the environment of the shell where you launched "claude"). A Jupyter-type approach would really muddle up that whole picture (at least from a user perspective).
Is Ctrl+R usable at all? I've given up on it, the whole screen just starts scrolling madly most of the time. Not that I have to press Ctrl+R to get that bug to happen, it's just the most reliable way to do so.
And I've had the input box stuck not accepting input or not allowing me to delete past a certain point a hundred times. By now I know how to get it unstuck (although I couldn't tell you - my fingers figured it out but my brain doesn't know).
You can extract prompts with mitmproxy/netcat, and AFAIK there isn't much more to it (bash and todo list are all you need in terms of tools), there's already a lot of simpler tools with better ux:
- sst/opencode and charmbracelet/crush -- related "cc clones" with top tier UX; opencode has near feature parity with cc, crush is more barebones
- block/goose -- a lot of multi-model features and extensions (it's practically a framework), but UI is pretty basic
- antinomyhq/forge -- similar to goose, but last week they merged some PRs with agent-agent communication, yet to see how it works out
- openai/codex, gemini-cli -- both somehow don't even have a way to resume a conversation
- avante.nvim with mcphub.nvim -- neovim plugin that emulates cursor to a degree; has a crazy good hack that makes even older models like gpt4.1 "more agentic" -- it keeps reprompting the model with "STFU and write code" until the model calls a "task_completed" tool; gets diagnostics, formatting and anything else neovim can do "for free"
For the sake of completeness, closed-source:
- amp-cli -- absolutely barebones, zero configuration (they even decide what model you're using for you); one problem -- closed source, no BYOK or subscription, pay per token only
- cursor-cli -- atm unusable, can't even set a global context file
- codebuff -- yet to try it myself, but they have some sort of an overengineered setup with 5+ different models (resoner/coder/file picker (!)/fast apply/...), curious to see how it works in practice (I'm assuming this setup is strictly worse than a single sonnet4/gpt5, but much cheaper)
Claude does have a lot of unique/rare (for now) features -- hooks, sub-agents, background jobs, planning mode, per-prompt reasoning effort controls, executable bash in slash commands.
Only half of them are really useful IMHO, but I wouldn't know that if they didn't have them.
If you typically compose prompts in a separate editor and paste them in you aren't likely to even notice. But it's the kind of thing that would drive me up the wall in a piece of software whose primary function was less impressive.
- no large context
- no zipfile uploads
- no multi file downloads
https://x.com/adamwathan/status/1953510802159219096
https://ai-engineering-trend.medium.com/the-mystery-behind-a...
It shows a lack of respect for yourself and your potential readers when you build something like this.
It's kind of a minimalism; it's not pleasing (to me) but it works
> always git commit with a one line message
to my `~/.claude/CLAUDE.md` file. This has in my experience been enough to get atomic commits after every minor change. I'm probably not the target audience for this though.
With jj, every file change is automatically captured (no manual commits needed), and you can create lightweight "sandbox" revisions for each Claude Code task. When things go wrong, `jj undo` instantly reverts to any previous state. The operation log tracks everything, making it virtually impossible to lose work.
The workflow becomes: let Claude Code generate messy experimental code → use `jj squash`/`jj split` to shape clean commits afterward. You get automatic checkpointing plus powerful history manipulation in one tool.
I've been using jj with Claude Code for months and it's transformed how I work with coding agents - no fear of breaking things because everything is instantly reversible. The MCP integration seems like added complexity when jj's native capabilities already handle the core problem.
For anyone interested in the jj + agent workflow, read my post: https://slavakurilyak.com/posts/use-jujutsu-not-git
That said, respect for shipping something that solves a real pain point! The UI looks clean and the diff viewer is nice.
radarsat1•6h ago
I've been wanting to experiment also with getting an agent to go back and rebase history, rewrite commits etc in the context of where the project ended up, to make a more legible history, but I don't know if that's doable, or even all that useful.
mfenniak•6h ago
adobrawy•6h ago
jtickle•6h ago
vlovich123•3h ago
That’s what I do too until I developed a practice to break up into thematic commits as I realize I need them. And if I don’t, then I just git reset to the beginning and use git gui to commit lines and chunks that are relevant for a given piece of work. But with experience, I barely do the break down completely - I generally don’t even bother creating commits until I have a starting sense of what the desired commit history should be.
hoppp•6h ago
Its fine if you just rebase at the end manually, but not good if you don't, your history will be cluttered and as hard to read as the codebase.
Eventually most people who use coding tools will have low knowledge of what is being generated and then they probably never rebase either...
samtheprogram•2h ago
I just commit with a “wip!”-prefaced message whenever the LLM pauses and says it’s finished, including new files. You can squash and cleanup later, or revert back to a state before it screwed up.
Also doubles as a way to cohesively look at the changes it made without all the natural language and recursive error/type fixing it does while working.
I don’t understand why people are making it so complicated. You’re saving a minute per iteration with the LLM, tops, at risk of losing control or introducing hard to find issues. It is the definition of diminishing returns.
mhast•6h ago
You can typically go back and edit git history. But it will require force push and breaking changes. And a few sacrifices to ensure that it doesn't make a mistake because then your repo is potentially broken.
Best way to do that is probably to have it work on branches and then squash merge those.
fluidcruft•6h ago
skapadia•5h ago
winter_blue•5h ago
Often I have a branch with multiple commits on it, with each commit corresponding to a message in a conversation with AI on Cursor trying to get a new feature built.
In the end, I can diff the branch against the main branch, and see the sum total of changes the AI agent has made.
Maybe edit/improve manually on my own afterwards. And then, merge.
fprotthetarball•5h ago
Another problem I inadvertently dodged by using Jujutsu with Claude Code :)
I tend to send a lone "commit" message to Claude when I think I'm in a spot I may want to return to in the future, in case the current path doesn't work out. Then Claude commits it with a decent message. It knows how to use jj well enough for most things. Then it's really easy to jj new back to a previous change and try again.
black_knight•5h ago