Why use labels?
Labels are useful for:- Context switching: Quickly filter thoughts by work, personal, or project-specific topics
- Organization: Keep related thoughts grouped together
- Focus: View only the thoughts relevant to your current task
- Workflow management: Separate different types of thoughts (ideas, tasks, reminders)
Adding labels to thoughts
Add a thought with a label
Use the The label is attached to the thought and stored in the database alongside the content.
-l or --label flag when adding a new thought:Add thoughts without labels
Labels are optional. You can add thoughts without labels:This thought won’t have a label but will still appear in general list and search results.
Filtering by labels
List thoughts with a specific label
View only thoughts that match a particular label:work label.
- Work thoughts
- Personal thoughts
- All thoughts
Search within a specific label
Combine search keywords with label filtering:work.
When you filter by label, Timo performs an exact match on the label name. The label
work won’t match thoughts labeled Work or work-related.Viewing labels in output
By default, labels are hidden in the output to keep things clean. Use the-s or --show-labels flag to see them:
Real-world label examples
Work organization
Work organization
Separate different work contexts:Later, focus on specific work:
Personal life management
Personal life management
Track different areas of your personal life:Check what errands you need to run:
Project tracking
Project tracking
Manage multiple projects:Focus on one project:
Priority-based workflow
Priority-based workflow
Use labels to indicate priority:Focus on urgent items:
Learning and development
Learning and development
Track learning across different topics:Review what you’re learning:
Label best practices
Keep labels lowercase
Use lowercase for consistency:
work instead of WorkUse hyphens for multi-word labels
Avoid spaces:
code-review instead of code reviewStart broad, then specialize
Begin with general categories, add specific ones as needed
Limit the number of labels
Too many labels can become overwhelming. Start with 5-10 core labels
Technical implementation
Labels are stored as optional string fields in the SQLite database. When you add a thought with a label, it’s saved in thetasks table:
- Without label:
INSERT INTO tasks (content) VALUES (?) - With label:
INSERT INTO tasks (content, label) VALUES (?, ?)
src/sqlite/sqlite_storage.rs:60-73 for search and src/sqlite/sqlite_storage.rs:85-95 for list operations.