Complete command reference for mystuff-cli.
mystuff --version # Show version and exit
mystuff --help # Show help messageInitialize the mystuff directory structure.
mystuff init [OPTIONS]Options:
--dir, -d TEXT: Directory path for mystuff data (default:~/.mystuffor$MYSTUFF_HOME)--force, -f: Force creation even if directory exists
Examples:
mystuff init # Create ~/.mystuff
mystuff init --dir /custom/path # Create custom directory
mystuff init --force # Overwrite existing directory
export MYSTUFF_HOME=/custom && mystuff init # Use environment variableManage links with JSONL storage.
Add a new link to your collection.
mystuff link add [OPTIONS]Options:
--url TEXT: URL of the link (required)--title TEXT: Title of the link (auto-generated if not provided)--description TEXT: Description of the link--tag TEXT: Tags for categorization (can be used multiple times)--import-github-stars TEXT: Import starred repositories from a GitHub user
Examples:
mystuff link add --url "https://python.org"
mystuff link add --url "https://github.com/example/repo" --title "Example Repo" --description "Cool project" --tag "dev" --tag "python"
mystuff link add --import-github-stars "torvalds"List all links.
mystuff link list [OPTIONS]Options:
--tag TEXT: Filter by tag--interactive: Use fzf for interactive browsing (requires fzf)
Search links by title, description, or URL.
mystuff link search [OPTIONS] QUERYEdit an existing link.
mystuff link edit [OPTIONS]Options:
--url TEXT: URL of the link to edit (uses fzf selection if not provided)--title TEXT: New title--description TEXT: New description--tag TEXT: Add tags
Delete a link.
mystuff link delete [OPTIONS]Options:
--url TEXT: URL of the link to delete (uses fzf selection if not provided)
Manage meeting notes with Markdown files.
Add a new meeting note.
mystuff meeting add [OPTIONS]Options:
--title TEXT: Title of the meeting (required)--date TEXT: Date in YYYY-MM-DD format (defaults to today)--participants TEXT: Comma-separated list of participants--body TEXT: Meeting content or agenda--template TEXT: Path to template file for pre-filling--tag TEXT: Tags for categorization (can be used multiple times)--no-edit: Don't prompt to edit after creation
Examples:
mystuff meeting add --title "Team Standup"
mystuff meeting add --title "Project Review" --date "2025-07-23" --participants "Alice,Bob" --tag "planning"
mystuff meeting add --title "Weekly Planning" --template ./meeting-template.md --no-editList all meeting notes.
mystuff meeting list [OPTIONS]Options:
--tag TEXT: Filter by tag--date TEXT: Filter by date (YYYY-MM-DD)--interactive: Use fzf for interactive browsing
Search meeting notes.
mystuff meeting search [OPTIONS] QUERYEdit a meeting note.
mystuff meeting edit [OPTIONS]Options:
--title TEXT: Title of meeting to edit (uses fzf if not provided)--date TEXT: Date of meeting to edit
Delete a meeting note.
mystuff meeting delete [OPTIONS]Options:
--title TEXT: Title of meeting to delete (uses fzf if not provided)--date TEXT: Date of meeting to delete
Manage daily journal entries.
Add a new journal entry.
mystuff journal add [OPTIONS]Options:
--date TEXT: Date in YYYY-MM-DD format (defaults to today)--body TEXT: Journal entry content--tag TEXT: Tags for categorization (can be used multiple times)--no-edit: Don't prompt to edit after creation
Examples:
mystuff journal add # Today's entry
mystuff journal add --date "2025-07-23" # Specific date
mystuff journal add --body "Great day!" --no-edit # Quick entryList all journal entries.
mystuff journal list [OPTIONS]Options:
--no-interactive: Disable interactive features--date-range TEXT: Filter by date range (YYYY-MM-DD:YYYY-MM-DD)
Search journal entries.
mystuff journal search [OPTIONS] QUERYOptions:
--no-interactive: Disable interactive features--date-range TEXT: Search within date range
Edit a journal entry.
mystuff journal edit [OPTIONS]Options:
--date TEXT: Date of entry to edit (defaults to today)
Manage topical notes with backlinks.
Create a new wiki note.
mystuff wiki new [OPTIONS] TITLEOptions:
--tag TEXT: Tags for categorization (can be used multiple times)--alias TEXT: Aliases for the note (can be used multiple times)--body TEXT: Content for the wiki note--no-edit: Don't open editor after creation
Examples:
mystuff wiki new "Python Tips"
mystuff wiki new "API Design" --tag "programming" --tag "design" --alias "REST API"
mystuff wiki new "Quick Note" --body "Short content" --no-editView a wiki note.
mystuff wiki view [OPTIONS] [TITLE]Options:
- Uses fzf selection if title not provided
Edit a wiki note.
mystuff wiki edit [OPTIONS] [TITLE]Options:
- Uses fzf selection if title not provided
List all wiki notes.
mystuff wiki list [OPTIONS]Options:
--no-interactive: Disable interactive features
Search wiki notes.
mystuff wiki search [OPTIONS] QUERYOptions:
--no-interactive: Disable interactive features
Delete a wiki note.
mystuff wiki delete [OPTIONS] [TITLE]Options:
- Uses fzf selection if title not provided
Manage self-evaluation entries.
Add a new evaluation entry.
mystuff eval add [OPTIONS]Options:
--category TEXT: Evaluation category (required, e.g., 'productivity', 'health')--score INTEGER: Numeric score 1-10 (required)--date TEXT: Date in YYYY-MM-DD format (defaults to today)--comments TEXT: Optional comments
Examples:
mystuff eval add --category "productivity" --score 8 --comments "Great focus today"
mystuff eval add --category "health" --score 7 --date "2025-07-22"List all evaluations.
mystuff eval list [OPTIONS]Options:
--no-interactive: Disable interactive features--category TEXT: Filter by category--date-range TEXT: Filter by date range
Generate evaluation reports.
mystuff eval report [OPTIONS]Options:
--category TEXT: Generate report for specific category--date-range TEXT: Generate report for date range
Edit an evaluation entry.
mystuff eval edit [OPTIONS]Options:
--category TEXT: Category of evaluation to edit--date TEXT: Date of evaluation to edit
Delete an evaluation entry.
mystuff eval delete [OPTIONS]Options:
--category TEXT: Category of evaluation to delete--date TEXT: Date of evaluation to delete
Manage arbitrary named lists.
Create a new list.
mystuff list create [OPTIONS]Options:
--name TEXT: Name of the list (required)--description TEXT: Description of the list
Examples:
mystuff list create --name "reading-list" --description "Books to read"
mystuff list create --name "todo"View a list.
mystuff list view [OPTIONS]Options:
--name TEXT: Name of list to view (uses fzf if not provided)
Edit a list (add/remove/check items).
mystuff list edit [OPTIONS]Options:
--name TEXT: Name of list to edit (uses fzf if not provided)--item TEXT: Add an item to the list
List all available lists.
mystuff list listSearch lists by name or content.
mystuff list search [OPTIONS] QUERYDelete a list.
mystuff list delete [OPTIONS]Options:
--name TEXT: Name of list to delete (uses fzf if not provided)
Export a list to CSV/YAML.
mystuff list export [OPTIONS]Options:
--name TEXT: Name of list to export (uses fzf if not provided)--format TEXT: Export format (csv, yaml)--output TEXT: Output file path
Import a list from CSV/YAML.
mystuff list import [OPTIONS]Options:
--file TEXT: Path to file to import (required)--name TEXT: Name for the imported list (required)
Manage track-based learning content and progress.
Track layout:
learning/
lessons/
README.md
<track_id>/
TRACK.md
001.md
002.md
Track metadata is loaded from each TRACK.md. Lesson metadata is loaded from
the frontmatter of each 001.md, 002.md, and so on. The catalog groups
content by classification, so the default navigation is
classification -> track -> lesson.
List visible classifications and tracks, or lessons inside a specific track.
mystuff learn list [OPTIONS]Options:
--track TEXT: List lessons inside a specific track--classification TEXT: Filter to a specific classification slug--completed, -c: Show only completed tracks or lessons--pending, -p: Show only pending tracks or lessons--difficulty, -d TEXT: Filter by lesson difficulty--tree, -t: Render the catalog as a tree--include-drafts: Include draft tracks--include-private: Include private lessons
Start or resume a track, lesson path, or lesson id.
mystuff learn start [OPTIONS] [LESSON]Examples:
mystuff learn start foundations
mystuff learn start foundations/001
mystuff learn start 438When you pass a track id, mystuff learn start resumes that track from the
first pending lesson.
Open the current lesson in your editor or published website.
mystuff learn current [--web]Complete the current lesson and move to the next pending lesson in the same track.
mystuff learn next [--web]Show track and lesson progress statistics.
mystuff learn stats [--include-drafts] [--include-private]Execute custom sync commands from configuration.
Execute all sync commands defined in config.yaml.
mystuff sync run [OPTIONS]Options:
--dry-run: Show commands without executing them--verbose: Show detailed output during execution--continue-on-error: Continue executing even if one command fails
Examples:
mystuff sync run # Execute all sync commands
mystuff sync run --dry-run # Preview without executing
mystuff sync run --verbose # Detailed output
mystuff sync run --continue-on-error # Don't stop on errors
mystuff sync run --dry-run --verbose # Combined flagsList all sync commands defined in config.yaml.
mystuff sync list-commandsAfter running mystuff init, your directory will contain:
~/.mystuff/
├── links.jsonl # Link storage
├── meetings/ # Meeting notes (Markdown)
├── journal/ # Journal entries (Markdown)
├── wiki/ # Wiki notes (Markdown)
├── eval/ # Evaluation entries (YAML)
├── lists/ # Lists (YAML)
├── learning/
│ ├── lessons/ # Tracks and lesson markdown
│ └── metadata.yaml # Learning progress (schema v2)
└── config.yaml # Configuration file
Basic configuration structure:
data_directory: "/home/user/.mystuff"
editor: "vim"
pager: "less"
settings:
default_tags: []
date_format: "%Y-%m-%d"
time_format: "%H:%M:%S"
sync:
commands:
- echo "Sync data"
generate:
web:
output: "~/mystuff_web"
url: "https://example.com/mystuff"MYSTUFF_HOME: Override default data directory (~/.mystuff)EDITOR: Text editor for editing notes (fallback: vim)PAGER: Pager for viewing content (fallback: less)
Many commands support interactive selection when fzf is installed:
- List browsing: Use
--interactiveflag with list commands - Smart selection: Edit/delete commands use fzf when IDs not provided
- Preview support: See content previews in selection interface
Install fzf:
# macOS
brew install fzf
# Ubuntu/Debian
apt install fzf
# See: https://github.com/junegunn/fzf#installation# Morning review
mystuff journal add --body "Today's goals: ..."
# During the day
mystuff link add --url "https://interesting-article.com"
mystuff meeting add --title "Client Call" --participants "Alice,Bob"
# Evening sync
mystuff sync run# Collect information
mystuff link add --import-github-stars "torvalds"
mystuff wiki new "Linux Kernel" --tag "research"
# Organize
mystuff list create --name "research-papers"
mystuff list edit --name "research-papers" --item "Advanced Scheduling"
# Review
mystuff eval add --category "research" --score 9 --comments "Made good progress"# Meeting preparation
mystuff meeting add --title "Sprint Planning" --template ./sprint-template.md
# Knowledge sharing
mystuff wiki new "Team Conventions" --tag "team" --tag "process"
# Follow-ups
mystuff list create --name "action-items"
mystuff journal add --body "Discussed new API design with team"