Show HN: Recalc – Spreadsheet where cells can be Claude Code or Codex terminals
Posted by sshah03 1 day ago
I built this because it was useful for me when building evals/benchmarks, and I decided to put it up for free for others. The goal was quite simple, make it easy to use a lead claude code / codex session in a panel on the side, while allowing every cell to also be a terminal session running claude/codex, and make it possible to continue a session in an actual terminal window if I needed to. They can all talk to each other using cells on the grid, named cells, or the MCP server that effectively glues the app together. I also found it useful for managing context within related but disparate sessions.
My real benchmark runs with recalc are internal to my startup, so to demonstrate some of the functionality I built a small FDA Bench with the tool (obtain and put together dossier's of FDA submissions, and see if a harnessed Claude could have accurately predicted pass/fail): https://github.com/sshah03/recalc#a-model-benchmark
It is still very much a work in progress, but given the versatility of spreadsheet apps, wanted to see how others see themselves using it and what doesn't exist that would be useful to them. Currently runs locally on macs, linux as well but that's less tested, and Windows hasn't been tested at all so that'll come in the future.
Comments
Comment by quiet_ledger44 23 minutes ago
Comment by tuoxie2004 1 hour ago
Comment by giannischatz 4 hours ago
If a cell's agent output lives at A3 and someone inserts a row above, is the agent now watching A4? The naive answer is yes, but then re-running the agent might produce different output than what's displayed in the referenced range elsewhere. Spreadsheet users are very used to this working magically for formulas — if agents break the invariant, it'll feel broken even when nothing technically is.
How are you handling that?
Comment by sshah03 2 hours ago
However, in the other cases, references get rewritten the same way everywhere (whether it's a formula, or an agent's watch list), so {A3} becomes {A4} etc... everywhere with the same process. Also in that case, it doesn't get marked for needing to be "re-run" because it checks value itself is unchanged, even if the cell being referred to changed.
I've tested it quite a bit. Given all of the moving parts in a spreadsheet app there's still the possibility that given enough usage someone encounters some combination of moves where this fails, but I think if that does happen it should be a fixable bug.
I also provide a backup solution with "Named cells", basically off sheet cells that can be used for constants and such and referenced by name instead of by cell, if needed.
Comment by compiler-guy 1 hour ago
The named cell can have a trivial `=SheetName!a3`. Those will be automatically updated with insert and delete just like any other formula.
They can be referenced directly for reading, and for writing you can do a quick parse and find the original.
Comment by sshah03 49 minutes ago
I'll play around with this, thanks for the idea!