Samedi
A learning operating system for the terminal.

What is Samedi?
Samedi is a CLI-native tool for tracking and managing your learning journey across any domainβprogramming, languages, music, or anything else you want to master.
Key Features
- π€ LLM-Powered Curricula: Generate learning plans with Claude, Codex, or any LLM CLI
- β±οΈ Time Tracking: Track sessions with simple
start/stop commands
- π΄ Spaced Repetition: Built-in flashcard system with SM-2 algorithm
- π Progress Dashboard: Beautiful TUI (
samedi ui) to visualize your learning journey
- π Markdown-Based: All plans in git-trackable markdown
- π Cloud Sync: Optional multi-device sync via Cloudflare (Phase 2)
The Philosophy
"Samedi doesn't teach. LLMs do. Samedi orchestrates, tracks, and motivates."
Learn anything with the same workflow:
samedi init "rust async programming" --hours 40
samedi start rust-async chunk-001
# ... learn for 1 hour ...
samedi stop
samedi review # Flashcard review
samedi stats # See your progress
Quick Start
Installation
Homebrew (macOS/Linux):
brew install samedi
Go Install:
go install github.com/pezware/samedi.dev/cmd/samedi@latest
From Source:
git clone https://github.com/pezware/samedi.dev.git
cd samedi.dev
make install
First Use
-
Generate a learning plan:
samedi init "french b1" --hours 50
-
Start learning:
samedi start french-b1 chunk-001
# ... study for an hour ...
samedi stop
-
Review flashcards:
samedi review french-b1
-
Check your progress:
samedi stats
-
Explore the dashboard:
samedi ui
# Tab/Shift+Tab to switch modules, q to quit
Documentation
Full documentation: docs/
Features
Phase 1: Local MVP (Current)
- β
Plan Generation: LLM-powered curriculum design
- β
Session Tracking: Start/stop learning sessions
- β
Flashcards: SM-2 spaced repetition
- β
Stats Dashboard: TUI with progress visualization
- β
Markdown Plans: Human-readable, git-trackable
- β
SQLite Storage: Fast, local, reliable
Phase 2: Cloud Sync (Planned)
- π Multi-Device Sync: Cloudflare Workers + D1
- π± Web Dashboard: Mobile-friendly stats viewer
- βοΈ Cloud Backups: Automatic to Cloudflare R2
- π Email Auth: Magic link authentication
Phase 3: Intelligence (Future)
- π§ Adaptive Learning: LLM-powered insights
- π― Smart Quizzing: Personalized tests
- π
Calendar Integration: iCal export
- π Achievements: Gamification (optional)
Examples
Learning Rust
samedi init "rust async programming" --hours 40
samedi start rust-async chunk-001
# Code along with Claude Code...
samedi stop --note "Built async web server"
samedi cards generate rust-async chunk-001 # Extract flashcards
Learning French
samedi init "french b1" --hours 50
samedi start french-b1 chunk-003
# Study with Duolingo, practice with Codex...
samedi stop
samedi review french-b1 # Review vocab flashcards
Cross-Domain Learning
samedi plan list
# rust-async 100% β
# french-b1 68% in-progress
# music-theory 25% in-progress
samedi stats --all
# Total: 187.5 hours across 3 domains
# Streak: 42 days π₯
Architecture
Tech Stack:
- Language: Go 1.21+
- TUI: Bubble Tea
- CLI: Cobra
- Database: SQLite
- LLM Integration: Configurable (Claude, Codex, llm, etc.)
Project Structure:
samedi/
βββ cmd/samedi/ # Main entry point
βββ internal/ # Core application logic
β βββ cli/ # CLI commands
β βββ tui/ # TUI components
β βββ plan/ # Plan management
β βββ session/ # Session tracking
β βββ flashcard/ # Spaced repetition
β βββ llm/ # LLM integration
βββ docs/ # Documentation
βββ templates/ # LLM prompts
See Architecture Documentation for details.
Contributing
We welcome contributions! Please read:
Quick Development Setup
# Clone and setup
git clone https://github.com/pezware/samedi.dev.git
cd samedi
make install-tools
# Run tests
make test
# Build and run
make build
./bin/samedi
License
MIT License - see LICENSE for details.
Acknowledgments
Built with:
Start your learning journey today:
brew install samedi
samedi init "your next skill"
Happy learning! π