https://github.com/divijg19/peony
CLI-first Cognitive holding space for unfinished thoughts
https://github.com/divijg19/peony
bubbletea cli go htmx lipgloss
Last synced: about 1 month ago
JSON representation
CLI-first Cognitive holding space for unfinished thoughts
- Host: GitHub
- URL: https://github.com/divijg19/peony
- Owner: divijg19
- Created: 2025-08-24T05:07:45.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2026-05-31T17:08:25.000Z (about 1 month ago)
- Last Synced: 2026-05-31T19:09:06.802Z (about 1 month ago)
- Topics: bubbletea, cli, go, htmx, lipgloss
- Language: Go
- Homepage:
- Size: 43.4 MB
- Stars: 3
- Watchers: 0
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# πΈ `Peony`
**A calm, CLI-first cognitive holding space for unfinished thoughts.**
> *Not a task manager, notes app or journal.*
Quick install (release binary):
```bash
curl -fsSL https://raw.githubusercontent.com/divijg19/peony/main/install.sh | bash
```
To also add an optional `bloom` shell function that opens Bloom (`peony tui`):
```bash
curl -fsSL https://raw.githubusercontent.com/divijg19/peony/main/install.sh | bash -s -- --alias --shell bash
```
---
## What is `Peony`?
`Peony` is a **local-first, humane CLI application** designed to help you capture, tend, and gently resolve half-formed thoughtsβwithout forcing them into tasks, deadlines, or artificial structure.
Modern tools demand commitment too early:
* task managers ask *βwhen will you do this?β*
* notes apps become noisy dumping grounds
* journals require emotional energy on demand
**`Peony` offers a middle ground**:
a quiet place for thoughts that are *not ready yet*.
---
## Why `Peony`?
Peonies bloom slowly.
They do not rush, yet they are unmistakably full.
`Peony` exists for thoughts that need **time, space, and kindness**.
## Core Philosophy
### Thoughts are seeds, not obligations
A thought may:
* rest
* mature
* transform
* or dissolve entirely
`Peony` respects that process.
### Time-aware, not time-driven
`Peony` never nags.
Thoughts resurface **when they feel ready**, not when a reminder fires.
### Language matters
`Peony` speaks softly.
Commands are verbs, not flags.
There are no streaks, no scores, no guilt loops.
### Private by default
Everything is stored locally.
No accounts. No sync. No analytics.
Your inner life is not a dataset.
---
## What `Peony` Is *Not*
* β Not a productivity dashboard
* β Not a goal tracker
* β Not an AI coach
* β Not collaborative or social
* β Not optimized for speed or scale
`Peony` is optimized for **clarity and care**.
---
## Core Concepts
### Cognitive Units (CUs)
The fundamental object in `Peony`.
A Cognitive Unit(CU) can represent:
* an unresolved decision
* a lingering worry
* an idea in early formation
* a memory fragment
* a question youβre not ready to answer
Each CU has:
* a lifecycle state
* a temporal context
* optional emotional metadata
* a gentle interaction history
---
## Lifecycle of a Thought
1. **Captured** β softly recorded, without classification pressure
2. **Resting** β intentionally left untouched
3. **Tended** β revisited when appropriate
4. **Evolved** β transformed into a task, note, or plan
5. **Released** β consciously let go
6. **Archived** β preserved without demand
Nothing ever βfails.β
---
## CLI-First Experience
`Peony` is designed to be **used from the terminal**, thoughtfully and slowly.
### Example interactions
```bash
peony add
> Whatβs on your mind?
> "Unsure whether to double down on Go or consolidate Python first."
```
```bash
peony tend
π± 2 thoughts feel ready for reflection today.
```
```bash
peony view
πΈ This thought has been resting for 14 days.
πΏ You last touched it late at night.
```
Commands are designed to feel **inviting**, not mechanical.
---
## CLI Commands
* `add` - capture a thought gently
* `tend` - surface thoughts ready for reflection
* `view` - read a thought in context
* `rest` - intentionally defer
* `evolve` - convert into a task / note (external)
* `release` - let go without guilt
* `archive` - long-term memory
* `tui` - open the full-screen terminal garden
## TUI: Bloom
`Bloom` is Peony's keyboard-first terminal garden-inspired interface.
```bash
peony tui
bloom # only if installed with --alias
```
Bloom opens to a calm TUI with focused scopes for Ready, Resting, and All visible thoughts. Archived thoughts stay out of Bloom and remain viewable through the CLI. Bloom keeps a detail pane close by for content, state, readiness, timestamps, and event history. From there you can capture, tend, rest, evolve, archive, search, filter, reload, and permanently release thoughts without leaving the terminal.
---
## WebUI: A Quiet Window
`Peony` includes an **optional, read-only WebUI frontend**- a window into your inner landscape.
### Purpose
* Visualize thought lifecycles
* Observe seasons of thinking
* Reflect without interaction pressure
### Design principles
* No metrics
* No dashboards
* No urgency signals
* Slow transitions
* Soft color palette
The WebUI exists to **help you see**, not manage.
---
## Architecture Overview
```
Peony
βββ Core Engine (Go)
β βββ Thought lifecycle
β βββ Temporal logic
β βββ Language system
β
βββ CLI Interface
β
βββ TUI
β βββ Bubble Tea + Lip Gloss
β
βββ Storage
β βββ SQLite (local-first)
β
βββ Read-only WebUI
βββ GoTH + HTMX
βββ Tailwind (minimal, soft)
```
---
## Tech Stack
### Core
* **Go** β clarity, longevity, low cognitive overhead
* **SQLite** β durable, portable local storage
### TUI
* **Bubble Tea** β calm, state-driven terminal UX
* **Lip Gloss** β intentional visual hierarchy
### WebUI
* **GoTH + HTMX** β minimal, server-driven UI
* **Tailwind CSS** β restrained visual language
---
## Local-First by Design
* No cloud dependency
* No accounts
* No telemetry
* Your data lives with you
`Peony` will still work the same way in ten years.
---
## Intended Users
`Peony` is for people who:
* think deeply
* feel overwhelmed by premature structure
* value reflection over optimization
* prefer calm tools over clever ones
It is especially suited for:
* developers
* researchers
* writers
* designers
* long-horizon thinkers
---
## Project Status
`Peony` is **CLI and TUI complete, and WebUI is yet to be worked upon**.
The focus is on:
* core lifecycle correctness
* language tone
* UX restraint
Feature creep is intentionally resisted.
---
## Roadmap
* [x] v0.1 - Core CLI, lifecycle, local sqlite storage, entry function, add & view commands
* [x] v0.2 - CLI pagination, view and pagination filters, tend command
* [x] v0.3 - Database re-design for temporal context, tend notifications, tend visual and terminal editor implementation, config settings for tend time and editor choice, evolve
* [x] v0.4 - Archive, Release, solidified tend notification consistency
* [x] v0.5 - CLI polish, user feedback iteration
* [x] v0.6 - TUI frontend initialization
* [x] v0.7 - TUI Polish, CI and Docs
* [x] v0.8 - TUI Finalization and Completion
* [ ] v0.9 - Read-only WebUI frontend (Eden integration)
* [ ] v1.0 - Overall polish, interactivity and user feedback iteration
* [ ] Beyond - Eden, Dashboard, Semantic AI integration, Heuristics & Fuzzing
AI integration, if ever added, will be:
* opt-in
* reflective only
* non-prescriptive
---
## License
MIT
You are free to use, modify, and learn from `Peony`β
just as gently as it was designed.
---
πΈ
*Some thoughts donβt need solving.
They need somewhere safe to wait.*