Install
$ agentstack add skill-buhe-claude-common-skills-magic-note ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Magic Note
Intelligent note-taking and query system supporting tags, feelings, mentions, todos, and relationship visualization between notes.
Database Location
- Config file path:
/Users/guyanhua/.claude/note(This is a text file storing the sqlite database path) - First-time setup:
- Check if
/Users/guyanhua/.claude/noteexists - If it exists, read the sqlite database path from it
- If it doesn't exist, ask user "Please enter SQLite database save path (e.g.,
/Users/guyanhua/.claude/notes.sqlite)" and write that path to the config file
Table Structure
| Field | Type | Description | |-------|------|-------------| | content | TEXT | Note content | | tag | TEXT | Category tag (#tag) | | feel | TEXT | Feeling at the time ($feel) | | who | TEXT | Related person/thing (@who) | | todo | BOOLEAN | Is this a todo item (&) | | time | TIMESTAMP | Record time |
Workflow
1. Save Notes
Trigger words: save, record, write, add note
Syntax:
save/record [content] [#tag] [$feel] [@who] [&todo]
Examples:
save Need to add more stock positions today→ Auto-analyze and extractrecord #stock Market crashed today $pain @guyanhuasave & Buy toilet paper today
Processing steps:
- Check if
/Users/guyanhua/.claude/noteexists
- If it's a text file, read the sqlite path from it
- If it doesn't exist or is empty:
- Ask user: "Please enter SQLite database save path" (provide default suggestion like
/Users/guyanhua/.claude/notes.sqlite) - Write user's chosen path to
/Users/guyanhua/.claude/notefile
- Call
scripts/save_note.pyto save the note - Automatically parse content to extract
tag,feel,who,todo - Important: tag only uses existing tags; feel and who can be freely created
- Return extracted fields (whether explicitly specified or auto-analyzed)
Python script:
python3 scripts/save_note.py "note content"
2. Query Notes
2.1 Review Notes (containing @ or $)
Trigger words: review, need review, notes to review
Example: What notes need review from past 1 day?
Processing: Query notes containing feel or who
Python script:
python3 scripts/query_notes.py --review 1
2.2 Query by Feeling
Trigger words: notes with {feel}, {feel} notes from past X days
Example: Any excited notes from past 1 day
Python script:
python3 scripts/query_notes.py --feel excited --days 1
2.3 Query by Tag
Trigger words: {tag} notes from past X months, {tag} related notes
Example: Stock notes from past month
Python script:
python3 scripts/query_notes.py --tag stock --days 30
3. Relationship Visualization
Trigger words: {tag} from past X months implies need for relationship graph
Processing steps:
- Get all notes for that tag within the specified time range
- Use AI to analyze potential relationships between notes (common keywords, semantic similarity, time correlation, etc.)
- Generate ASCII art graph with notes as nodes, connected if related
ASCII graph example:
Read
Apple's
xx report xx
| | |
| | |
Study Apple stock────ios ecosystem────xx
| | |
| | |
| xx |
| | |
xx──xx──xx
Script Documentation
scripts/note_db.py
Database operation module, providing the following functions:
init_db()- Initialize databaseadd_note(content, tag, feel, who, todo)- Add noteget_existing_tags()- Get list of existing tagsget_notes_by_days(days)- Get notes from N daysget_notes_with_feel_or_mention(days)- Get notes containing feel/whoget_notes_by_feel(feel, days)- Query by feelingget_notes_by_tag(tag, days)- Query by tag
scripts/parse_note.py
Parse note content to extract tag/feel/who/todo:
from parse_note import parse_note
parsed = parse_note("Need to add stock today $excited", existing_tags)
# Returns: {"tag": "stock", "feel": "excited", "who": None, "todo": False, ...}
scripts/save_note.py
Main entry point for saving notes:
python3 scripts/save_note.py "note content"
scripts/query_notes.py
Main entry point for querying notes:
# Review notes (notes with @ or $ from past N days)
python3 scripts/query_notes.py --review 1
# Query by feeling
python3 scripts/query_notes.py --feel excited --days 1
# Query by tag
python3 scripts/query_notes.py --tag stock --days 30
# Query ALL notes from past N days
python3 scripts/query_notes.py --all 30
IMPORTANT: --all N means "query all notes from past N days", NOT "query all notes ever".
--all 1→ past 1 day only--all 30→ past 30 days- Do NOT use
--all 1 --days 30together (the--allparameter already specifies the days)
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: buhe
- Source: buhe/claude-common-skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.