Compass is your daily knowledge assistant. Centered on your long-term goals and near-term priorities, it curates new information each day, builds on past research, and deepens understanding through dialogue -- turning daily insights into a lasting personal knowledge base.
- Stay focused on what matters -- Spend more time on long-term goals; capture fleeting ideas quickly without losing momentum
- Structure information as you learn -- Discuss key questions with the assistant; it generates knowledge cards and maps automatically
- Produce output every day -- Write while you think, then review the day's auto-generated sounding and add your own reflections
- Summarize by topic regularly -- Turn scattered notes into a structured personal knowledge system
- Build a long-term knowledge base -- Let accumulated knowledge guide your next focus areas
- Start the assistant: Run
@navigation - Read the sounding: Review today's sounding for new information on your focus topics
- Pick a topic: Tell the assistant what you want to explore
- Explore topics: Use
@insightfor deep discussion on key topics - Capture ideas: Use
@fleetingto record quick thoughts - Save knowledge cards: The assistant will ask if you want to create a card, or use
@cardto save one manually
- Generate the map: Run
@mapto organize today's knowledge connections - Write the course: Run
@courseto generate today's course document, then add your own notes and reflections
- Review cards: Browse past cards in the logbook; use
@harborto archive important ones - Generate analysis: Run
@analysisto produce company or industry reports for the long-term knowledge base
Compass organizes your knowledge across five areas:
- charts: Auto-generated daily information scan and analysis
- logbook: Daily knowledge cards and notes
- harbor: Long-term knowledge base and deep research
- navigation: Daily direction and summary
- template: Output document templates
compass/
├── charts/ # Daily sounding files
│ └── YYYY-MM-DD_sounding.md
├── logbook/ # Daily knowledge cards
│ └── YYYY-MM-DD/
│ ├── insights/ # Key topics; conclusions added as cards during discussion
│ ├── fleeting/ # Quick notes; useful ones become cards
│ └── map.canvas # Auto-generated knowledge map
├── harbor/ # Long-term knowledge base
│ ├── concepts/
│ ├── frameworks/
│ ├── companies/
│ ├── people/
│ └── skills/
├── navigation/ # Daily course documents (add personal notes here)
│ └── YYYY-MM-DD_course.md
└── template/ # Template files
- Copy the config file:
config.example.json→config.json - Set
obsidian_pathto your Obsidian vault path (a local folder)
In Claude Code, navigate to the project directory and run:
python compass.py --statusThe system will automatically:
- Create the folder structure (charts, logbook, harbor, navigation, template)
- Create template files
- Generate a
navigation/YYYY-MM-DD_course.mdfor yesterday's date
Open the generated navigation/YYYY-MM-DD_course.md (e.g. 2026-02-05_course.md) and fill in:
- Task: Your long-term goals
- Focus: Topics and areas you are focused on in the next 1-2 weeks
Why yesterday's date? The
@navigationcommand reads yesterday's course to get your Focus, then generates today's sounding. Once you fill in Task and Focus, you are ready to run@navigation.
@navigation # Generate today's sounding
@insight [topic] # Deep discussion on a topic
@fleeting # Record a quick idea
pip install openai # For OpenAI, DeepSeek
# or
pip install anthropic # For Anthropic ClaudeKeep your api_key in environment variables, not in config.json.
{
"api": {
"enabled": true,
"provider": "anthropic",
"base_url": "https://api.anthropic.com",
"model": "claude-sonnet-4-5-20250929"
}
}Set your API key:
export ANTHROPIC_API_KEY="your-api-key-here"Get a key: https://console.anthropic.com
{
"api": {
"enabled": true,
"provider": "openai",
"base_url": "https://api.openai.com/v1",
"model": "gpt-4-turbo"
}
}Set your API key:
export OPENAI_API_KEY="your-api-key-here"Get a key: https://platform.openai.com/api-keys
{
"api": {
"enabled": true,
"provider": "deepseek",
"base_url": "https://api.deepseek.com/v1",
"model": "deepseek-chat"
}
}Set your API key (DeepSeek uses the OpenAI library and OPENAI_API_KEY):
export OPENAI_API_KEY="your-deepseek-api-key-here"Get a key: https://platform.deepseek.com
- Copy config:
config.example.json→config.json - Set
obsidian_path - Set
api.enabled=true,api.provider,api.model, andbase_url - Install dependencies
- Set the API key environment variable
python compass.py --statuspython compass.py --status # Check status
python compass.py @navigation # Generate today's soundingUse natural language or @ commands:
| Command | Function | Description |
|---|---|---|
@navigation |
Generate today's sounding | Reads yesterday's course, finds new information, writes today's sounding |
@insight |
Deep topic discussion | Explore a focus topic in depth; save conclusions as insight cards |
@fleeting |
Quick idea capture | Record a fleeting thought or piece of information |
@card |
Save a knowledge card | Save discussion conclusions as a knowledge card |
@map |
Generate knowledge map | Map the connections between today's cards |
@harbor |
Archive to long-term base | Archive important content to harbor |
@analysis |
Generate analysis report | Produce a deep analysis from accumulated cards |
@course |
Generate today's course | Summarize the day's work; generate the course document |
Use
@instead of/to avoid conflicts with Claude slash commands.
Three default templates are included. All templates can be edited freely in the template/ folder:
course-template.md-- Daily direction and summarysounding-template.md-- Daily information scancard-template.md-- Knowledge card format
Custom analysis templates for @analysis can be added to harbor/frameworks/.
File format: YYYY-MM-DD_course.md
## Goal
[Your long-term goals]
## Focus
[Topics and areas you are focused on in the next 1-2 weeks]
## Note
[Your personal reflections and preferences from today's discussions]
## Reference
[Files, URLs, or text you want the assistant to reference]
## Today's Summary
[Auto-filled by the system]
## What's Next
[Auto-filled by the system]File format: YYYY-MM-DD_sounding.md
## Focus
[Auto-extracted from the course document]
## News Update
What happened in the past 2 days related to your focus topics
## Analysis Update
How media, institutions, and experts are reacting; possible scenarios; whether you should adjust your actionsFile format: [topic]_YYYY-MM-DD.md
Notes:
- No timestamps, only dates
- If multiple discussions on the same topic occur in one day, the assistant merges them into one file in chronological order
- Python 3.x
- Obsidian (knowledge vault)
- Claude API (AI analysis and search)
MIT License
Issues and pull requests are welcome.