paperclip-api
Use when managing Paperclip AI agent companies - creating tasks, managing agents, approving hires, running heartbeats, or any…
Sync Claude Code session records between two Anthropic accounts in the Claude desktop app on macOS. Use when switching accounts (for example when one hits usage limits) and old sessions disappear from the picker, or to mirror records before/after a switch.
$ npx -y skills add serejaris/personal-corp-os --skill claude-sessions-sync --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/claude-sessions-syncContext preview
The summary Claude sees to decide when to auto-load this skill.
Sync Claude Code session records between two Anthropic accounts in the Claude desktop app on macOS. Use when switching accounts (for example when one hits usage limits) and old sessions disappear from the picker, or to mirror records before/after a switch.
name: claude-sessions-sync description: Sync Claude Code session records between two Anthropic accounts in the Claude desktop app on macOS. Use when switching accounts (for example when one hits usage limits) and old sessions disappear from the picker, or to mirror records before/after a switch.
How it works (verified 2026-10-01…07, Claude Code 2.1.286, macOS):
1. The app must be fully closed: `pgrep -f "/Applications/Claude.app/Contents/MacOS"` is empty; otherwise `osascript -e 'quit app "Claude"'` and wait. Copying while the app is alive can be rolled back by its in-memory list cache (`LSS-cached-sessions`) and record rewrites. 2. Identify both working folders: under each account UUID take the subfolder with the most `local_*.json` records (or the freshest one). 3. Run a bidirectional newest-wins sync of `local_*.json` — the script below. A one-way copy leaves drift: sessions you continued on one side go stale on the other. 4. Merge `archived-sessions.idx`: union the `archived` lists of both folders, write the same file into both. 5. Copy missing `deleted_*` markers in both directions, otherwise deleted sessions resurrect in the picker. 6. Do NOT sync `scheduled-tasks.json` or `backlog/` — each account+org pair keeps its own. 7. Reopen the app, switch the login to the target account, verify the record count in the picker.
import os, json, shutil
SESS = os.path.expanduser("~/Library/Application Support/Claude/claude-code-sessions")
FIRST = f"{SESS}/<account-uuid-1>/<org-uuid-1>"
SECOND = f"{SESS}/<account-uuid-2>/<org-uuid-2>"
def records(d):
return {f: os.path.getmtime(os.path.join(d, f))
for f in os.listdir(d) if f.startswith("local_") and f.endswith(".json")}
f_rec, s_rec = records(FIRST), records(SECOND)
for f, m in s_rec.items():
if f not in f_rec or m > f_rec[f]:
shutil.copy2(os.path.join(SECOND, f), os.path.join(FIRST, f))
for f, m in f_rec.items():
if f not in s_rec or m > s_rec[f]:
shutil.copy2(os.path.join(FIRST, f), os.path.join(SECOND, f))
arch = set()
for d in (FIRST, SECOND):
p = os.path.join(d, "archived-sessions.idx")
if os.path.exists(p):
try: arch |= set(json.load(open(p)).get("archived", []))
except Exception: pass
idx = {"v": 1, "archived": sorted(arch)}
for d in (FIRST, SECOND):
json.dump(idx, open(os.path.join(d, "archived-sessions.idx"), "w"))
for a, b in ((FIRST, SECOND), (SECOND, FIRST)):
for f in os.listdir(a):
if f.startswith("deleted_") and not os.path.exists(os.path.join(b, f)):
shutil.copy2(os.path.join(a, f), os.path.join(b, f))Background write-up: https://sereja.tech/blog/claude-code-sessions-between-accounts/
Manager uses your local Manager Config for repositories and boards; the distributed skill contains no personal workspace logs.
Use when managing Paperclip AI agent companies - creating tasks, managing agents, approving hires, running heartbeats, or any…
Orchestrate iterative visual style searches with branch prompts, decision graphs, feedback loops, and final direction selection.
Audits the agent rules in the current folder (AGENTS.md, nested AGENTS.md files) and the skill descriptions the agent sees at…
Робот агента Personal Corp. Агент делает себе голову робота из набора деталей, хранит её в штабе в stack/avatars.json и кладёт в…
Use when choosing between engines or models for an agent pipeline and the answer must come from measurement on your own data, not…
Use when user asks for Claude Code usage stats, weekly analytics, project activity summary, or wants to see what projects were…