Releases: hmans/beans
v0.3.4
This release brings quality-of-life improvements that make beans easier to use, especially when you're deep in an agentic workflow. The standout changes are the ability to quickly copy bean IDs in the TUI and the flexibility to use short IDs everywhere.
Highlights
Copy bean IDs with a single keystroke — Press y in the TUI to copy the current bean's ID to your clipboard. This makes it trivial to reference beans in commit messages, documentation, or when working with the CLI. (#26)
Short IDs work everywhere — You can now use just the ID portion (e.g., abc1) instead of the full beans-abc1 format when querying via GraphQL. This reduces typing and makes commands more pleasant to work with. (93b6df0)
Other Improvements
Documentation
- Clarified completion rules: beans with unchecked todo items should NOT be marked as completed. This is particularly important for agentic workflows where the agent needs clear guidance on when work is actually done. (#27)
Changelog
Features
- a3d95eb: feat(tui): add 'y' shortcut to copy bean-id (#26) (@sotte)
- 1eb1f04: feat: add bean for agent-specific beans prime output (@hmans)
- 93b6df0: feat: support short IDs (without prefix) in GraphQL queries (@hmans)
Released by GoReleaser.
v0.3.3
This release focuses on performance improvements to the file watching system, making beans more responsive when you're actively editing beans alongside the TUI. We've also added support for OpenCode integration.
Highlights
Smarter file watching — The file watcher has been completely rearchitected. Instead of reloading all beans whenever any file changes, beans now processes only the affected files and updates the search index incrementally. This means faster response times, especially in projects with many beans. (f3b56cd)
Channel-based event subscriptions — The new watcher uses a fan-out pattern where multiple subscribers (like the TUI) each get their own event channel with typed events (Created, Updated, Deleted). Slow subscribers no longer block others, and the API is cleaner with Subscribe() returning an event channel and unsubscribe function. (63bd573)
OpenCode integration — Added a beans-prime.ts plugin for OpenCode users. Drop it into .opencode/plugin/ in your project (or ~/.opencode/plugin/ globally) to give your AI assistant beans context at session start. (2eabadd)
Other Improvements
- Refined the
beans primeprompt for clearer agent instructions (bf9a4ec)
Bug Fixes
- Edge cases in the watcher are now handled gracefully: rapid updates to the same file coalesce properly, create+delete sequences are processed correctly, and invalid files are skipped without breaking the watcher
Changelog
Features
Bug Fixes
Performance
Released by GoReleaser.
v0.3.2
v0.3.1
v0.3.0
Release.0.3.0.Trailer.720p.mp4
This release brings major improvements to the TUI experience, making it faster and more intuitive to work with beans directly from your terminal. You can now manage almost every aspect of a bean without leaving the TUI; statuses, types, priorities, parents, and blocking relationships all have dedicated keyboard shortcuts.
More CLI commands are now using GraphQL internally, with the GraphQL schema gaining new filtering and mutation abilities that your agent can leverage for highly efficient interactions.
We've also added a full-text search index to allow for fuzzy search capabilities, making it easier for both yourself and your agent to find the right data quickly.
Breaking Changes
It's still early days for Beans, so this release unfortunately includes some breaking changes.
Simplified bean linking — The way beans link to each other has been fundamentally reworked. The old links field is gone, replaced by explicit parent and blocking fields. This makes relationships clearer and easier to work with. If you have existing beans using the old format, you'll need to migrate them manually (or ask your agent to do it; it'll usually do a good job with this). (#17)
Renamed 'backlog' status to 'draft' — The backlog status is now called draft, better reflecting its purpose as a holding area for beans that need refinement before they're ready to work on. Update any scripts or workflows that reference the old status name. (3673945)
Renamed beans query to beans graphql — The command for running GraphQL queries has been renamed to better describe what it does. (ddb1754)
Highlights
TUI picker modals for everything: Press s to change status, t for type, P for priority, p for parent, and b for blocks. Each opens a focused picker modal that lets you make changes instantly. No more context switching to the command line for simple updates. (ad3382e, 8910c67, 95710b8, 2bfe0fe, 9565a9c)
Multi-select mass editing — Select multiple beans with Space, then apply changes to all of them at once. Perfect for triaging a batch of bugs or moving several tasks to in-progress. (8fd3d29)
Create and edit beans from the TUI — Press c to create a new bean (defaults to draft status), or e to open the current bean in your editor. Changes are automatically detected when you save and close. (5c6f192, 10c805d)
Responsive terminal width handling — Both beans list and the TUI now adapt intelligently to your terminal width, showing more tags and information when space is available, and gracefully degrading on narrow terminals without crashing. (769fba8, 9e32a11)
Other Improvements
TUI
CLI
- New command aliases —
beans candbeans newnow work as aliases forbeans create.beans uworks forbeans update. (180c833, e9fbd3b) - Archive preview —
beans archivenow shows you which beans will be archived before asking for confirmation. (43990e6) - ID comments in front matter — Beans now include their ID as a comment in the YAML front matter, making it easier to reference them. (5607a1d)
GraphQL
- Filter parameters on relationship fields — You can now filter
children,blockedBy, andblockingfields directly in your queries (e.g., get only incomplete children of a milestone). (e7019f6)
Other
- Prime command finds .beans.yml upward — The
beans primecommand now searches parent directories for.beans.yml, making it work correctly from subdirectories. (6f8de83) - Unified CLI and TUI rendering — Bean rows now render consistently whether you're using
beans listor the TUI. (207e43e)
Bug Fixes
- Fixed TUI crash when window width is very narrow. (9e32a11)
- Fixed glamour style detection causing startup delays. (ac15669)
- Fixed blocking picker showing an extra empty row. (cea0a19, 8a0daf4)
- Fixed tree continuation lines not rendering properly in list views. (b402b62)
- Fixed tags not showing when space was available in TUI. (0c5357f)
- Simplified
beans show --jsonoutput to be more useful. (89c02ac)
Full Changelog
⚠️ Breaking Changes
- 3673945: feat!: rename 'backlog' status to 'draft' (@hmans)
- 142631e: feat!: simplify bean linking with explicit parent and blocks fields (#17) (@hmans)
- ddb1754: feat(cli)!: rename 'beans query' to 'beans graphql' (@hmans)
Features
- 43990e6: feat(archive): show bean list before confirmation prompt (@hmans)
- 180c833: feat(cli): add 'c' and 'new' aliases for 'beans create' (@hmans)
- e9fbd3b: feat(cli): add 'u' alias for 'beans update' (@hmans)
- 9565a9c: feat(tui): add 'b' shortcut to manage blocking relationships (@hmans)
- 7dd9fba: feat(tui): add 'c' shortcut to create new beans (@hmans)
- 10c805d: feat(tui): add 'e' shortcut to edit bean in external editor (@hmans)
- 2bfe0fe: feat(tui): add parent picker modal for changing bean parents (@hmans)
- 95710b8: feat(tui): add priority picker and help overlay (@hmans)
- ad3382e: feat(tui): add status picker modal with 's' shortcut (@hmans)
- 8910c67: feat(tui): add type picker modal with 't' shortcut (@hmans)
- 24f2bd9: feat(tui): show bean title in picker modals and consolidate modal code (@hmans)
- fe58dba: feat(tui): swap tags and title column order in list view (@hmans)
- 5c6f192: feat: TUI 'c' shortcut opens editor and defaults to draft status (@hmans)
- cb73e3a: feat: TUI updates updated_at when bean is saved in editor (@hmans)
- d34acbe: feat: add /generate-release-notes command (@hmans)
- 5607a1d: feat: add ID comment to bean front matter (@hmans)
- e7019f6: feat: add filter parameter to GraphQL relationship fields (@hmans)
- 8fd3d29: feat: add multi-select mass editing in TUI (@hmans)
- 769fba8: feat: make beans list responsive to terminal width (@hmans)
Bug Fixes
- 8a0daf4: fix(tui): fix blocking picker extra row and height issues (@hmans)
- f695195: fix(tui): improve blocking picker UX with batched changes (@hmans)
- cea0a19: fix(tui): prevent extra row appearing in blocking picker on toggle (@hmans)
- dc02402: fix(tui): refresh beans list when closing picker modals (@hmans)
- ac15669: fix(tui): use fixed glamour style to avoid slow terminal detection (@hmans)
- b402b62: fix: add proper tree continuation lines in list and TUI views (@hmans)
- b7aad89: fix: improve responsive tags display and add column headers (@hmans)
- 9e32a11: fix: prevent TUI crash when window width is very narrow (@hmans)
- 6f8de83: fix: prime command now searches upward for .beans.yml (@hmans)
- 0c5357f: fix: show more tags in TUI when space is available (@hmans)
- 89c02ac: fix: simplify beans show --json output (@hmans)
Other
- 024656d: refactor(tui): simplify help overlay (@hmans)
- 207e43e: refactor: unify CLI and TUI bean row rendering (@hmans)
Released by GoReleaser.
v0.2.0
v0.1.32
Changelog
⚠️ Breaking Changes
- 129438e: feat!: remove $EDITOR integration from beans update (@hmans)
- 64524b4: feat!: rename
beans prompttobeans prime(@hmans)
Features
- c823e32: feat: add GraphQL mutations for bean CRUD operations (@hmans)
- bf738c4: feat: add full-text search using Bleve (#10) (@hmans)
- 5f7a6a6: feat: migrate show and roadmap commands to use GraphQL (@hmans)
Bug Fixes
Other
Released by GoReleaser.
v0.1.31
v0.1.30
Changelog
⚠️ Breaking Changes
- f828f6d: feat!: enforce single parent constraint for beans (@hmans)
- 9214ff1: fix!: make GraphQL Bean fields non-nullable with defaults (@hmans)
Other
- bddca98: refactor: use GraphQL resolver pattern in TUI package (@hmans)
- 21d82bf: refactor: use text/template for prompt command (@hmans)
Released by GoReleaser.