A lightweight productivity system combining todo.txt task management with daily markdown journaling, designed for AI-assisted workflows.
git clone https://github.com/QuiteClose/daisy.git
cd daisy./daisy.sh installThis will:
- Create a
~/bin/daisysymlink - Add
DAISY_ROOTandDAISY_HOMEto your shell rc file (.zshenv,.bashrc, etc.) - Interactively select a default home (or create one)
Then reload your shell: source ~/.zshenv (or open a new terminal).
cd /path/to/your/project
daisy init workThis creates:
daisy/symlink to the shared daisy repo.daisy/directory with symlinks to the work home's tasks, journal, and projects.cursor/rules/daisy.mdso agents automatically discover daisy.daisy/anddaisyentries in.gitignore
With the cursor rule installed, just say:
Daisy, start a new day
The agent will:
- Read
.daisy/AGENTS.mdautomatically - Archive yesterday's work
- Create fresh
today.mdwith prioritized tasks
Already set up? Quick reference for daily use.
Just address Daisy by name in any initialized workspace:
Daisy, start a new day
Daisy, done [task]
Daisy, log [message]
Daisy, what are my tasks?
daisy status # Quick workspace summary
daisy healthcheck # System validation
daisy log Did thing A # Add log entry (no quoting needed)
daisy done "task pattern" # Mark task complete
daisy new-day # Start a new day
daisy new-week # Start a new week
daisy build work # Rebuild AGENTS.md after editing prompts
daisy init work # Initialize Daisy in a new workspace
daisy init personal # Switch workspace to a different home
daisy clean # Remove Daisy from the current workspace
daisy install # Set up ~/bin/daisy and shell environmentFor API integrations (GitHub, etc.) when MCP servers are unavailable:
-
Copy the template to your workspace:
cp $DAISY_ROOT/daisy/templates/env.sh.template .env.sh -
Edit
.env.shand fill in your tokens -
Verify configuration:
daisy healthcheck
Note: MCP servers handle authentication automatically. .env.sh is only needed as a fallback.
daisy/ # Repository root ($DAISY_ROOT)
├── AGENTS.md # System architecture & internal specs (auto-applied by Cursor)
├── daisy.sh # CLI entry point (symlink to ~/bin/daisy)
├── daisy/ # Distributable system files
│ ├── scripts/
│ │ ├── daisy-init.sh # Initialize daisy in a workspace
│ │ ├── build-prompt.sh # Generate home/{home}/AGENTS.md
│ │ ├── healthcheck.sh # System validation
│ │ ├── check-secrets.sh # Verify .env.sh configuration
│ │ ├── commit.sh # Auto-commit helper
│ │ ├── common.sh # Shared functions (resolve_home, require_env)
│ │ ├── new-day.sh # Start new day
│ │ ├── new-week.sh # Start new week
│ │ ├── done.sh # Mark task complete
│ │ ├── log.sh # Add log entry
│ │ └── create-home.sh # Create new home from template
│ ├── templates/
│ │ ├── cursor-rule.md # Cursor rule for workspace integration
│ │ ├── project.md # Template for project files
│ │ ├── journal-day.md # Template for daily entries
│ │ ├── journal-week.md # Template for weekly entries
│ │ ├── env.sh.template # Environment variables template
│ │ └── home/ # Template for new homes
│ └── docs/ # Detailed reference documentation
│ ├── task-format.md # Task format regex and conversion rules
│ ├── task-sync.md # Bidirectional sync rules
│ ├── templates.md # Template placeholder specs
│ ├── workflows.md # Status, add task, change priority algorithms
│ ├── logging.md # Logging design and archival rules
│ ├── projects.md # Project management architecture
│ ├── home-management.md # Per-workspace home resolution
│ ├── examples.md # Interaction walkthroughs
│ ├── todotxt.md # Todo.txt format specification
│ └── test-cases.md # Validation test cases
├── home/ # Your homes (created via `daisy init --new`)
│ ├── work/ # Example: work context
│ │ ├── AGENTS.md # Generated prompt (git-ignored)
│ │ ├── include.txt # List of prompts to load
│ │ ├── journal/
│ │ ├── tasks/
│ │ └── projects/
│ └── personal/ # Example: personal context
│ ├── AGENTS.md
│ ├── include.txt
│ ├── journal/
│ ├── tasks/
│ └── projects/
└── prompts/
├── daisy.md # Core workflow instructions for AI
├── agents-md.md # Guide for writing AGENTS.md files
├── github.md # GitHub integration
└── retrospective.md # Reflection guide
workspace/
├── daisy/ → $DAISY_ROOT (shared repo)
├── .daisy/
│ ├── home # "work" (plain text)
│ ├── AGENTS.md → daisy/home/work/AGENTS.md
│ ├── tasks/ → daisy/home/work/tasks/
│ ├── today.md → daisy/home/work/journal/today.md
│ ├── journal.md → daisy/home/work/journal/journal.md
│ └── projects/ → daisy/home/work/projects/
├── .cursor/rules/
│ └── daisy.md → daisy/templates/cursor-rule.md
Different workspaces can use different homes concurrently.
Homes isolate task/journal/project data for different contexts (e.g., work vs personal).
Create a new home and initialize it in a workspace:
cd /path/to/project
daisy init --new sideprojectsSwitch an existing workspace to a different home:
daisy init personalEach workspace independently tracks its own home via .daisy/home. No global state to manage.
(A) 2026-01-16 High priority task +Project @context
(B) 2026-01-16 Medium priority task +PROJ-5678
2026-01-16 Inbox task (needs prioritization)
(C) 2026-01-16 Normal task @github
(D) 2026-01-16 Someday task +backlog
Priority levels:
(A)- Now (do today)(B)- Next (this week)(C)- Soon (default for most tasks)(D)- Someday (backlog)- No priority - Inbox (needs triage)
See daisy/docs/todotxt.md for complete format specification.
- Plain text - Git-friendly, searchable, future-proof
- AI-native - Designed for conversational AI assistance
- Flexible - Adapt to your workflow, not vice versa
- Reflective - Daily retrospectives drive continuous improvement
- Multi-context - Multiple homes, multiple workspaces, zero interference
- AI Workflow Guide - User-focused workflows and commands
- Admin Guide - Internal architecture and specifications
- Detailed Examples - Interaction walkthroughs
- Todo.txt Specification - Format reference