Expand description
Deciduous - Decision graph tooling for AI-assisted development
Track every decision, query your reasoning, preserve context across sessions.
§Overview
Deciduous provides a persistent decision graph that survives context loss. Every goal, decision, option, action, and outcome is captured and linked, creating a queryable history of your development process.
§Node Types
| Type | Purpose |
|---|---|
goal | High-level objectives |
decision | Choice points with options |
option | Approaches considered |
action | What was implemented |
outcome | What happened |
observation | Technical insights |
§Quick Start
use deciduous::Database;
let db = Database::new("deciduous.db").unwrap();
// Add a goal
let goal_id = db.add_node("goal", "Implement feature X", None, Some(90), None).unwrap();
// Add an action linked to it
let action_id = db.add_node("action", "Writing the code", None, Some(85), None).unwrap();
db.add_edge(goal_id, action_id, "leads_to", None).unwrap();
// Query the graph
let graph = db.get_graph().unwrap();
println!("Nodes: {}, Edges: {}", graph.nodes.len(), graph.edges.len());Re-exports§
pub use config::Config;pub use db::build_metadata_json;pub use db::get_current_git_branch;pub use db::get_current_git_commit;pub use db::resolve_git_commit;pub use db::CheckboxState;pub use db::CommandLog;pub use db::Database;pub use db::DbRecord;pub use db::DbSummary;pub use db::DecisionContext;pub use db::DecisionEdge;pub use db::DecisionGraph;pub use db::DecisionNode;pub use db::DecisionSession;pub use db::DeleteSummary;pub use db::GitHubIssueCache;pub use db::NodeDocument;pub use db::NodeTheme;pub use db::RoadmapConflict;pub use db::RoadmapItem;pub use db::RoadmapSyncState;pub use db::Theme;pub use db::CURRENT_SCHEMA;pub use events::Checkpoint;pub use events::Event;pub use events::MaterializedState;pub use export::filter_graph_by_ids;pub use export::filter_graph_from_roots;pub use export::generate_pr_writeup;pub use export::graph_to_dot;pub use export::parse_node_range;pub use export::parse_root_ids;pub use export::DotConfig;pub use export::NodeSpec;pub use export::WriteupConfig;pub use hooks::hooks_status;pub use hooks::install_hooks;pub use hooks::integration_status;pub use hooks::uninstall_hooks;pub use narratives::PivotChain;pub use opencode::install_opencode;pub use opencode::opencode_status;pub use opencode::uninstall_opencode;pub use opencode::update_opencode;pub use pulse::PulseReport;pub use records::edge_id;pub use records::merge_record_files;pub use records::merge_record_files_with_notes;pub use records::merge_record_values;pub use records::reconcile;pub use records::split_conflict_markers;pub use records::ConflictRepair;pub use records::EdgeRecord;pub use records::GraphDoc;pub use records::LegacyImport;pub use records::NodeRecord;pub use records::ReadError;pub use records::RecordStore;pub use records::StoreCounts;pub use records::SyncReport;pub use records::TagRecord;pub use records::ThemeRecord;pub use records::DOC_VERSION;pub use records::STORE_FILE_NAME;
Modules§
- api
- Multi-graph HTTP API daemon (
deciduous serve --api). - archaeology
- Archaeology - retroactive graph building with atomic operations
- board
- The agent message board: how agents working at the same time coordinate.
- changelog
- Embedded changelog for version update notifications
- config
- Configuration file support for deciduous
- db
- SQLite database with Diesel ORM
- demo_
swarm deciduous demo-swarm: a multi-agent demonstration. One Opus lead and four Sonnet workers build one Tetris together in iTerm2 or Ghostty panes, sharing one decision graph, and every pane is recorded for a later replay.- events
- Legacy event-log reader (pre-0.17 multi-user sync).
- export
- Export utilities for decision graphs
- github
- GitHub CLI (
gh) Integration - hooks
- Claude Code hooks management
- init
- Project initialization for deciduous
- local_
server - The pieces of “a server on this machine” that are decisions rather than
side effects: which database, which way to run the server, what the
settings file says, and what the service definitions contain.
server.rsdoes the downloading, installing and starting; everything here is pure so it can be tested without a service manager or a database. - mcp
- MCP (Model Context Protocol) server for deciduous.
- narratives
- Narratives - evolution story management for the decision graph
- opencode
- OpenCode integration
- oplog
- The local log of writes on their way to the shared server.
- pulse
- Pulse - current state health report for the decision graph
- records
- The shared graph file: one JSON document, tracked in git.
- remote
- Talking to a shared deciduous server.
- roadmap
- ROADMAP.md Parser and Sync Engine
- schema
- serve
- HTTP server for decision graph viewer
- server
- The shared graph server every project writes to, set up by
initand checked byupdate. - watch
- Streaming a workspace’s writes as they happen: the client half of the
server’s
GET /eventsWebSocket.