Skip to content

Releases: hmans/beans

v0.3.4

25 Dec 12:34
a3d95eb

Choose a tag to compare

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

20 Dec 15:53

Choose a tag to compare

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 prime prompt 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

  • 63bd573: feat: add channel-based file watcher with typed events (@hmans)

Bug Fixes

Performance

  • f3b56cd: perf: update beancore state incrementally instead of full reload (@hmans)

Released by GoReleaser.

v0.3.2

14 Dec 20:28

Choose a tag to compare

Changelog

Bug Fixes

  • 76dc94a: fix(tui): don't quit on Q when create modal is open (@hmans)

Released by GoReleaser.

v0.3.1

13 Dec 23:11

Choose a tag to compare

Changelog

Bug Fixes

  • 7b07650: fix: remove column headers from TUI list view (@hmans)

Released by GoReleaser.

v0.3.0

13 Dec 16:51

Choose a tag to compare

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

  • Help overlay — Press ? to see all available keyboard shortcuts. (024656d, 95710b8)

CLI

  • New command aliasesbeans c and beans new now work as aliases for beans create. beans u works for beans update. (180c833, e9fbd3b)
  • Archive previewbeans archive now 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, and blocking fields directly in your queries (e.g., get only incomplete children of a milestone). (e7019f6)

Other

  • Prime command finds .beans.yml upward — The beans prime command 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 list or 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 --json output 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


Released by GoReleaser.

v0.2.0

12 Dec 07:57

Choose a tag to compare

Changelog

Features


Released by GoReleaser.

v0.1.32

11 Dec 17:02

Choose a tag to compare

Changelog

⚠️ Breaking Changes

  • 129438e: feat!: remove $EDITOR integration from beans update (@hmans)
  • 64524b4: feat!: rename beans prompt to beans prime (@hmans)

Features

Bug Fixes

Other

  • b3c576b: refactor: simplify create, update, delete commands (@hmans)

Released by GoReleaser.

v0.1.31

09 Dec 11:35

Choose a tag to compare

Changelog

⚠️ Breaking Changes

  • 3c5a3b8: feat!: change module path to github.com/hmans/beans (@hmans)

Bug Fixes

  • 74558d8: fix: reorder statuses to prioritize active work (@hmans)
  • 51228be: fix: roadmap now shows all planned work including orphan items (@hmans)

Released by GoReleaser.

v0.1.30

09 Dec 09:11

Choose a tag to compare

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.

v0.1.29

08 Dec 22:33

Choose a tag to compare

Changelog

⚠️ Breaking Changes

  • 3c13cd0: fix!: return error from beans query on GraphQL errors (@hmans)

Released by GoReleaser.