claudeai-sync
Skill6 starsChanged 2 months agoMITView on GitHub
Pull new and changed claude.ai web conversations into an Obsidian vault, extract artifacts as first-class notes, concept-link them, and refresh the RAG index and dashboard. Idempotent: curated notes are never overwritten. Triggers: "/claudeai-sync", "pull claude.ai", "grab new claude.ai chats".
In this repository100 other files it gives its agents.
- AGENTS.mdAGENTS.md
- 03Skill
- 1Skill
- agendaSkill
- alfa-search-recall-deepresearchSkill
- alpha-judgeSkill
- alpha-reviewSkill
- archSkill
- askSkill
- bibleSkill
- brainSkill
- busSkill
- canon-revisionSkill
- ccSkill
- chatgpt-syncSkill
- chat-searchSkill
- chatSkill
- coachSkill
- codex-mirrorSkill
- codex-reviewSkill
- cofounderSkill
- cofounder-watchSkill
- commentsSkill
- community-alphaSkill
- content-mineSkill
- crm-syncSkill
- declinedSkill
- dedupSkill
- defuddleSkill
- dr-fanoutSkill
- episodeSkill
- faaa-syncSkill
- faSkill
- fb-postSkill
- fb-replySkill
- fb-watchSkill
- findSkill
- fireflies-syncSkill
- five-hardSkill
- fleetSkill
- follower-onboardSkill
- geminiSkill
- gitbook-importSkill
- gmailSkill
- granola-syncSkill
- handoffSkill
- health-syncSkill
- inboxSkill
- intakeSkill
- intentionSkill
- introSkill
- issue-matchSkill
- journeySkill
- last30daysSkill
- local-chatgpt-token-healSkill
- mcpSkill
- migrateSkill
- mine-channelSkill
- n8nSkill
- notebooklmSkill
- The first 60 shown.
The file
We split this skill into the rules it gives an agent
1 rule. About 0 are common, 0 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 43
If _new_artifacts.txt is not empty:
≈ “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
claudeai-sync — pull what's new from claude.ai into the vault
Account owner.work@example.com (Claude Max). claude.ai chats do NOT live on disk — they are pulled live through the logged-in session (Claude-in-Chrome). Semi-automatic: PULL (step 1) is done by me while the session is open; everything after that is deterministic and idempotent.
Scripts: $IMPORTS_ROOT/claude-ai/ · originals → $OBSIDIAN_ROOT/_originals/claude-ai-export/ · live layer → 01-Conversations/Claude-AI/.
⚠️ The main landmine
The API exposes artifacts ONLY with rendering_mode=messages. raw/default silently return 0 artifacts. Always use messages + verify the artifact counter.
⚠️ Anti-recents (hunting for one specific chat by hand)
When looking for ONE specific chat by hand (not a full PULL) — NEVER conclude "the chat isn't there" from a glance at the recents list: (1) use the built-in "Search chats…" with keywords; (2) check Projects/archive/pinned; (3) confirm the active ACCOUNT by the email in the profile menu. More reliable still — the full API listing chat_conversations?limit=1000 (the PULL step) instead of reading /recents with your eyes. Canon: memory [[web-ui-search-not-recents]] (incident 2026-07-23).
Steps
1. PULL (in-session, ~30 sec)
- Claude-in-Chrome →
navigate https://claude.ai/recents. javascript_tool(same-origin authed fetch), org =<YOUR_ORG_UUID>(roles chat+claude_max; a second org on the account is API-only, returns 403, ignore it):- the list:
/api/organizations/{ORG}/chat_conversations?limit=1000&offset=0 - each chat:
/api/organizations/{ORG}/chat_conversations/{uuid}?tree=True&rendering_mode=messages→ cache intowindow.__convs - projects:
/api/organizations/{ORG}/projects+/{uuid}(descr + prompt_template) +/{uuid}/docs(content inline) - Blob-download it as ONE file
claude-ai-export-YYYY-MM-DD.json(schemaclaude-ai-export/v1: {conversations, projects, filesManifest}).- ⚠️
conversationsMUST be an OBJECT{uuid: conv}, NOT a list — the converterclaudeai_export_to_vault.py:120callsconvs.items()(a list →AttributeError: 'list' object has no attribute 'items').filesManifestis a list of{conv, msg, kind, meta}. Underrendering_mode=messagesartifacts arrive as<antArtifact …>INSIDE text items (NOT astool_useblocks) — that is normal, the converter parses them.
- ⚠️
- the list:
- Move it out of Downloads into
raw\+ archive into_originals\claude-ai-export\(sha256). The full JS lives in the session journal of 2026-06-12 / memory [[claude-ai-export-to-vault]]. - (A delta pull is optional — the converter is idempotent by uuid; a full pull only adds what's new.)
2. SYNC (deterministic)
python $IMPORTS_ROOT/claude-ai/claudeai_sync.pyConverts into a temporary staging area → copies into the live layer only the NEW notes (existing ones, including linked ones, are left untouched) → refreshes the MOC + dashboard → writes the paths of new artifacts into _new_artifacts.txt. Prints new_conversations / new_artifacts / new_projects.
3. CONCEPT-LINK the new artifacts (MANDATORY — concept-creation-rules.md §1)
If _new_artifacts.txt is not empty:
- Workflow
claudeai-artifact-curation(sonnet, one agent per artifact; ⚠️ above ~40 you hit a server-side rate limit, finish withresume) → concept proposals. python apply_curation.py --result <workflow .output>— validates slugs against the real06-Concepts/09-Bridges, writes links idempotently (a<!-- curation -->block +related_concepts/summary/value_score/tags).- Recurring themes with no concept → create new concepts (threshold §1 ≥3), show them to the operator, then re-run apply (the new ones get picked up). One-offs — don't breed concepts for those.
4. RAG + commit
python $IMPORTS_ROOT/brain_embed_update.py # or wait for the nightly run at 04:00
python $IMPORTS_ROOT/vault_backup.py(claudeai_sync.py --reindex --commit does step 4 in one call; reindex rc=3 = the lock is busy, the nightly task will catch up.)
5. PING
A short summary to the operator (Telegram Saved Messages works fine): "claude.ai: +N chats, +M artifacts, linked."
Notes
- Idempotent: a repeat run with no new data = "nothing new", and existing links are never lost.
- Provenance: artifacts get
origin: claude-ai, authored_by: claude(NOT #anton-original); project instructions getorigin: anton. - Binaries (images/docs, 524 of them in the manifest) — the operator asked NOT to pull those (2026-06-12).
- Auto mode: the nightly Windows task
Claude-AI Sync Dailyruns the back half over any fresh export; the PULL stays in-session. Full headless ("it downloads itself") = moving to a dedicated Chrome profile + Playwright + a deterministic RAG linker — deferred (the operator chose the safe semi-automatic path).
<!--kit-footer-->Like this skill? It is one of 100 in second-brain-starter-kit: the second brain we built for ourselves and run every day at Palo Alto AI Research Lab. Install the whole set with npx skills add tonydzi/second-brain-starter-kit. Everything is open source and free, so take what you need.
Flagships worth a look on their own: secondop-panel (a second opinion from a panel of external models), claude-memory-tidy (stop your agent's memory from rotting), telegram-mcp-kit (your own Telegram over MCP in about 15 minutes).
Author: Anton Dziatkovskii, Palo Alto AI Research Lab. Telegram @tonydzi - WhatsApp +1 341 222 9178 - X @Tony_Stef_
Engineers: want to test-drive this setup? Message me. I hand out free starter seeds to engineers who test and report back, and custom skill requests are welcome.
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.

