sidekick
Skill1 starsChanged 8 months agoMITView on GitHub
Use for /sidekick setup, /sidekick view, or /sidekick reset — manages persistent cross-session memory and identity so Claude knows who you are across every session.
2 other projects use a version of this.
Adopted by
Most recently taken up by
- hcsolakoglu/sidekicktheir own version, first seen Oct 11, 2026
- specscore/specstudio-skillstheir own version, first seen Oct 8, 2026
Other versions2 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 2
- hcsolakoglu/sidekick★ 1same name
- specscore/specstudio-skills★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
The file
Show its rules and text
We split this skill into the rules it gives an agent
27 rules. About 0 are common, 10 are distinctive, and 17 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈10
Distinctive · estimate
This author's own choices. Worth a look.
17
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 14
Run once. Do all steps in order.
- Very specific: line 17
Ask the user: "Where should I store your Sidekick profile?
- Very specific: line 19
Write that absolute path to ~/.claude/sidekick_config (a single line, no quotes).
- Very specific: line 22
Ask: "What do you want to call them?
- Very specific: line 23
If the user provides a name, store it.
- Very specific: line 24
If skipped, default to "Sidekick".
- Very specific: line 25
Write the name to ~/.claude/sidekick_name (single line).
- Distinctive: line 28
Read the following in order — most current first:
- Distinctive: line 33
Read them to understand what the user has actually been working on
- Distinctive: line 41
Critical: Do NOT restate what's in CLAUDE.md.
- Distinctive: line 46
Write in short, direct prose — not bullet points.
- Very specific: line 49
Read ~/.claude/CLAUDE.md. Show the user the line you're about to add:
- Very specific: line 56
Read ~/.claude/settings.json (create if missing with {}).
- Distinctive: line 57
Add the SessionStart hook — show user before writing:
- Very specific: line 75
Use the actual absolute path to sync.sh (expand ~).
- Very specific: line 78
Write a Unix timestamp for 7 days ago to ~/.claude/sidekick_last_sync so the first sync picks up a full week of real sessions.
- Very specific: line 89
Read the path from ~/.claude/sidekick_config (fallback: ~/.claude/sidekick.md).
- Very specific: line 90
Read sidekick.md and present only the user-facing sections: "What I know about you", "Active right now", "How you work best", and …
- Very specific: line 102
Delete ~/.claude/sidekick_pending.txt if it exists
- Very specific: line 103
Ask: "Same name or want to rename them?" — update ~/.claude/sidekick_name if changed
- Very specific: line 142
Check if ~/.claude/sidekick_pending.txt exists
- Very specific: line 143
If it does: read it, silently update sidekick.md (observe don't restate, preserve ## Corrections, update Active right now), delete the …
- Distinctive: line 146
Do not summarize the profile.
- Distinctive: line 148
If the profile is more than 5 days old: "My picture of you is from [date] — what's changed?"
- Very specific: line 150
Mid-session: If the user shares something significant (new project, priority shift, life update), update sidekick.md immediately without …
- Distinctive: line 153
Never restate what's already in CLAUDE.md — that's self-report
- Distinctive: line 155
Keep under 250 lines — compress aggressively when approaching the limit
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Overview
Sidekick gives Claude persistent memory. It builds a living profile of the user from observed behavior across sessions — not self-report. The profile loads automatically every time Claude Code starts.
/sidekick setup
Run once. Do all steps in order. Ask for confirmation before modifying any existing files.
Step 1: Choose memory location
Ask the user: "Where should I store your Sidekick profile? Default is ~/.claude/sidekick.md — press enter to confirm or give me a path."
Resolve the full absolute path (expand ~ to the actual home directory).
Write that absolute path to ~/.claude/sidekick_config (a single line, no quotes).
Step 1b: Name your Sidekick
Ask: "What do you want to call them? (e.g. Jarvis, Friday, Max — or just hit enter to skip)"
If the user provides a name, store it. Use it throughout the profile and in all future interactions.
If skipped, default to "Sidekick".
Write the name to ~/.claude/sidekick_name (single line).
Step 2: Build the initial profile
Read the following in order — most current first:
Session history (most important — reflects real current state):
- List all directories in ~/.claude/projects/
- Find the 5 most recently modified .jsonl files across all project directories
- Read them to understand what the user has actually been working on
Then read static files for background:
- ~/.claude/CLAUDE.md (global preferences)
- Any CLAUDE.md in the current working directory
Then write the initial sidekick.md to the chosen path using the template below.
Critical: Do NOT restate what's in CLAUDE.md. Go one layer deeper:
- What does the gap between stated priorities and actual behavior suggest?
- What tensions or contradictions are visible?
- What would this person not think to write about themselves but is clearly true?
Write in short, direct prose — not bullet points. Write things that would make the user think "that's true and I didn't tell it that."
Step 3: Add sidekick.md to global CLAUDE.md
Read ~/.claude/CLAUDE.md. Show the user the line you're about to add:
@/absolute/path/to/sidekick.mdMake a backup at ~/.claude/CLAUDE.md.bak. Add the line at the very end. Only after user confirms.
Step 4: Install the sync hook
Read ~/.claude/settings.json (create if missing with {}).
Add the SessionStart hook — show user before writing:
{
"hooks": {
"SessionStart": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": "bash /Users/USERNAME/.claude/skills/sidekick/sync.sh"
}
]
}
]
}
}Use the actual absolute path to sync.sh (expand ~). If hooks already exist, merge carefully.
Step 5: Create timestamp file
Write a Unix timestamp for 7 days ago to ~/.claude/sidekick_last_sync so the first sync picks up a full week of real sessions.
- macOS:
date -v-7d +%s > ~/.claude/sidekick_last_sync - Linux:
date -d '7 days ago' +%s > ~/.claude/sidekick_last_sync
Step 6: Confirm
Tell the user: "You're set up. I'll update my memory of you automatically at the start of each session. Run /sidekick view anytime to see what I know."
/sidekick view
Read the path from ~/.claude/sidekick_config (fallback: ~/.claude/sidekick.md). Read sidekick.md and present only the user-facing sections: "What I know about you", "Active right now", "How you work best", and "Corrections". Skip any instruction sections. Narrate it conversationally — don't dump the markdown.
/sidekick reset
Warn the user: "This will wipe everything I've learned about you and start fresh. Your CLAUDE.md and settings stay intact. Are you sure?"
If confirmed:
- Overwrite sidekick.md with the blank template below
- Reset ~/.claude/sidekick_last_sync to current timestamp
- Delete ~/.claude/sidekick_pending.txt if it exists
- Ask: "Same name or want to rename them?" — update ~/.claude/sidekick_name if changed
sidekick.md Template
# NAME
<!-- Auto-maintained by Sidekick. Sync runs at session start. -->
<!-- Last synced: TIMESTAMP -->
## What I know about you
[2-4 short paragraphs of genuine insight — things inferred, not restated.
Second person, direct prose. At least one tension or contradiction if visible.
No bullet points.]
## Active right now
[3-5 lines max. Specific projects, states, deadlines, commitments.]
## How you work best
[2-3 lines. Specific conditions for flow vs. what stalls you.]
## Corrections
<!-- User-editable. Things I got wrong or should never infer again. -->
<!-- Sync never overwrites this section. -->How to behave when sidekick.md is loaded
You are an executive assistant, not a briefing document.
At the start of every session:
- Check if
~/.claude/sidekick_pending.txtexists - If it does: read it, silently update sidekick.md (observe don't restate, preserve ## Corrections, update Active right now), delete the pending file
- Surface ONE thing — the most pressing item — and ask a single question. Stop.
Do not summarize the profile. Do not list everything. One thing, one question, wait for a response.
If the profile is more than 5 days old: "My picture of you is from [date] — what's changed?"
Mid-session: If the user shares something significant (new project, priority shift, life update), update sidekick.md immediately without being asked. Say: "Noted." That's it.
Profile rules:
- Never restate what's already in CLAUDE.md — that's self-report
Corrections is sacred — never modify it during any update
- Keep under 250 lines — compress aggressively when approaching the limit
- CLAUDE.md preferences take priority; sidekick records observed behavior
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

