From d0144544ff38c62ee92b6f3b6ee3e6aa6aede812 Mon Sep 17 00:00:00 2001 From: Roman Scherer Date: Fri, 17 Oct 2025 14:48:44 +0000 Subject: [PATCH] gnu: Add beads. * gnu/packages/golang-apps.scm (beads): New variable. Change-Id: I0dac902afa2c8937594d99907db311fe42e0d587 Change-Id: I820f455a5c0e3e6980839481d196fe55f0c7fee9 Signed-off-by: Sharlatan Hellseher --- gnu/packages/task-management.scm | 47 ++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/gnu/packages/task-management.scm b/gnu/packages/task-management.scm index f61f7ec99e8..8447a67f8c9 100644 --- a/gnu/packages/task-management.scm +++ b/gnu/packages/task-management.scm @@ -76,6 +76,53 @@ #:use-module (guix build-system python) #:use-module (guix build-system qt)) +(define-public beads + (package + (name "beads") + (version "0.17.7") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/steveyegge/beads") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0adg00mqgl70fxynciswkzka5hyia86h92b1pnqd8achk6c5szbr")))) + (build-system go-build-system) + (arguments + (list + #:install-source? #f + #:import-path "github.com/steveyegge/beads/cmd/bd" + #:unpack-path "github.com/steveyegge/beads" + #:phases + #~(modify-phases %standard-phases + (add-before 'build 'set-home + (lambda _ + (setenv "HOME" "/tmp")))))) + (native-inputs + (list git)) + (propagated-inputs + (list go-github-com-anthropics-anthropic-sdk-go + go-github-com-fatih-color + go-github-com-spf13-cobra + go-github-com-spf13-viper + go-gopkg-in-natefinch-lumberjack-v2 + go-modernc-org-sqlite + go-rsc-io-script)) + (home-page "https://github.com/steveyegge/beads") + (synopsis "Graph-based issue tracker for AI coding agents") + (description + "@command{bd} (Beads) is a lightweight memory system for coding +agents, using a graph-based issue tracker. Four kinds of dependencies +work to chain issues together like beads, making them easy for agents +to follow for long distances and reliably perform complex task streams +in the right order. It uses SQLite for fast local operations and +JSONL files stored in git for distributed synchronization across +machines.") + (license license:expat))) + (define-public clikan (let ((commit "55ab29e68263c6fed2844aef96fbebacda3eba9b") (revision "1"))