Copy My Profile
Generate a portable Markdown profile from one AI tool's long-term memory and
re-use it in another. Solves the "I just trained Tool A to know me, now I want
to use Tool B" problem without retraining.
Why this skill
Modern developers use multiple AI tools: Claude Code at home, Cursor at work,
ChatGPT for brainstorming, OpenClaw for backend automation, etc. Each tool
accumulates its own memory of who you are — but none of them talk to each
other. This skill defines a portable Markdown format (like vCard for
contacts, or ICS for calendars) so your "AI profile" can move with you.
- Zero infrastructure: no cloud, no account, no sync server
- Privacy-controlled: you see the full output before copying anywhere
- Standard format: 5 categories that any LLM can parse reliably
Output categories (5 in order)
Detailed format examples and filtering rules live in
references/profile-template.md (read it during step 2-3).
- Instructions — Explicit rules the user wants followed (tone, format,
behavior corrections, ⚠️-marked rules in memory files)
- Identity — Name, education, interests, non-sensitive personal info
- Profession — Role, company, skill domains
- Projects — Projects the user actually built or invested effort in
- Preferences — Broadly-applicable work style and taste preferences
Execution steps
Step 1 — Pick execution path
Choose based on the current runtime environment.
Path A — Memory-search-capable environment (Claude Code, OpenClaw, Codex
CLI, or any agent that exposes a memory_search / file-read tool):
- Run
memory_search for topics like "instructions", "preferences",
"projects"
- Read key files based on the host tool:
- Claude Code:
~/.claude/CLAUDE.md, project CLAUDE.md
- OpenClaw:
USER.md, MEMORY.md, AGENTS.md, memory/*.md
- Codex CLI:
AGENTS.md, ~/.codex/instructions.md
- Cursor: project
.cursorrules, .cursor/rules/*.md
- Cline: project
.clinerules
- Continue:
~/.continue/config.json (system message), workspace
.continue/*.md
- Aider:
CONVENTIONS.md, .aider.conf.yml
- See
references/tools-memory-map.md for the full table.
- Read the most recent N daily memory logs (if the tool keeps them) to
capture recent context
Path B — No memory-search tool (Cline without filesystem, web ChatGPT,
fresh Cursor session, etc.):
- Ask the user to provide files or paste relevant content (see
references/tools-memory-map.md for what to ask for)
- If the user only supplies an old profile, normalize the format and note at
the end: "Based on existing profile, not re-extracted from raw memory"
Degradation strategy (both paths):
- If a key file is missing, continue with what's available and list "missing
sources" at the bottom
- If a category has zero data, output
(no data) — don't skip the category
- If
memory_search returns empty, fall back to Path B
Step 2 — Filter
- Instructions: Only items clearly identifiable as rules in memory files;
don't fabricate. Distinction rules in
profile-template.md
- Identity: Only non-sensitive info the user has actively shared. Privacy
filter rules in
profile-template.md
- Projects: One line per project — function, status, key decisions
- Preserve the user's original phrasing as much as possible
Step 3 — Output format
Write the profile to ./my-profile.md (current directory) and also reply to
the user inline. Format:
- Each line:
[YYYY-MM-DD] - entry content
- Use
[unknown] if the date is unclear
- Within each category, sort by date ascending
- Wrap the entire profile in a single fenced Markdown code block (so the user
can copy-paste in one click)
Step 4 — Closing notes
After the code block, add a brief note covering:
- Whether all relevant info from current memory was included
- Any categories that had no data or used degradation
- Any dimensions or uncertain entries excluded (so the user can decide whether
to add them)
- Import hint: which file to paste this into for the target tool — see
references/import-prompts.md for ready-to-use prompts
Tips for cross-tool transfer
- Pull (export): Run this skill in your source tool → copy
my-profile.md
- Push (import): In the target tool, paste the profile with a prompt from
references/import-prompts.md
- The Markdown is plain text — works through clipboard, email, Notion, GitHub
gist, file transfer, anything
See also
references/profile-template.md — full output format example + filtering
rules + privacy rules
references/tools-memory-map.md — where each AI tool stores its memory
(where to read FROM and where to write TO)
references/import-prompts.md — copy-paste prompts for importing the
profile into each target tool
1---2name: copy-my-profile3description: Extract a standardized cross-tool user profile from any AI agent's long-term memory (USER.md, MEMORY.md, AGENTS.md, CLAUDE.md, .cursorrules, etc.) so you can re-use it in another AI tool without retraining. Output is a portable Markdown document with five categories — instructions, identity, profession, projects, preferences. Works with Claude Code, OpenClaw, Codex CLI, Cursor, Cline, Continue, Aider, or any LLM agent. 适用场景:生成我的画像/导出 profile/ 拷贝到其他 AI 工具/跨工具同步偏好/换 agent 不丢记忆。4---56# Copy My Profile78- **Version**: 1.0.09- **License**: MIT10- **Author**: Evan Song · [github.com/Songhonglei](https://github.com/Songhonglei)11- **Repository**: https://github.com/Songhonglei/better-agent-skills1213Generate a portable Markdown profile from one AI tool's long-term memory and14re-use it in another. Solves the "I just trained Tool A to know me, now I want15to use Tool B" problem without retraining.1617## Why this skill1819Modern developers use multiple AI tools: Claude Code at home, Cursor at work,20ChatGPT for brainstorming, OpenClaw for backend automation, etc. Each tool21accumulates its own memory of who you are — but **none of them talk to each22other**. This skill defines a portable Markdown format (like vCard for23contacts, or ICS for calendars) so your "AI profile" can move with you.2425- Zero infrastructure: no cloud, no account, no sync server26- Privacy-controlled: you see the full output before copying anywhere27- Standard format: 5 categories that any LLM can parse reliably2829## Output categories (5 in order)3031Detailed format examples and filtering rules live in32`references/profile-template.md` (read it during step 2-3).33341. **Instructions** — Explicit rules the user wants followed (tone, format,35 behavior corrections, ⚠️-marked rules in memory files)362. **Identity** — Name, education, interests, non-sensitive personal info373. **Profession** — Role, company, skill domains384. **Projects** — Projects the user actually built or invested effort in395. **Preferences** — Broadly-applicable work style and taste preferences4041## Execution steps4243### Step 1 — Pick execution path4445Choose based on the current runtime environment.4647**Path A — Memory-search-capable environment** (Claude Code, OpenClaw, Codex48CLI, or any agent that exposes a `memory_search` / file-read tool):49501. Run `memory_search` for topics like "instructions", "preferences",51 "projects"522. Read key files based on the host tool:53 - **Claude Code**: `~/.claude/CLAUDE.md`, project `CLAUDE.md`54 - **OpenClaw**: `USER.md`, `MEMORY.md`, `AGENTS.md`, `memory/*.md`55 - **Codex CLI**: `AGENTS.md`, `~/.codex/instructions.md`56 - **Cursor**: project `.cursorrules`, `.cursor/rules/*.md`57 - **Cline**: project `.clinerules`58 - **Continue**: `~/.continue/config.json` (system message), workspace59 `.continue/*.md`60 - **Aider**: `CONVENTIONS.md`, `.aider.conf.yml`61 - See `references/tools-memory-map.md` for the full table.623. Read the most recent N daily memory logs (if the tool keeps them) to63 capture recent context6465**Path B — No memory-search tool** (Cline without filesystem, web ChatGPT,66fresh Cursor session, etc.):67681. Ask the user to provide files or paste relevant content (see69 `references/tools-memory-map.md` for what to ask for)702. If the user only supplies an old profile, normalize the format and note at71 the end: "Based on existing profile, not re-extracted from raw memory"7273**Degradation strategy (both paths):**7475- If a key file is missing, continue with what's available and list "missing76 sources" at the bottom77- If a category has zero data, output `(no data)` — don't skip the category78- If `memory_search` returns empty, fall back to Path B7980### Step 2 — Filter8182- **Instructions**: Only items clearly identifiable as rules in memory files;83 don't fabricate. Distinction rules in `profile-template.md`84- **Identity**: Only non-sensitive info the user has actively shared. Privacy85 filter rules in `profile-template.md`86- **Projects**: One line per project — function, status, key decisions87- Preserve the user's original phrasing as much as possible8889### Step 3 — Output format9091Write the profile to `./my-profile.md` (current directory) and also reply to92the user inline. Format:9394- Each line: `[YYYY-MM-DD] - entry content`95- Use `[unknown]` if the date is unclear96- Within each category, sort by date ascending97- Wrap the entire profile in a single fenced Markdown code block (so the user98 can copy-paste in one click)99100### Step 4 — Closing notes101102After the code block, add a brief note covering:103104- Whether all relevant info from current memory was included105- Any categories that had no data or used degradation106- Any dimensions or uncertain entries excluded (so the user can decide whether107 to add them)108- **Import hint**: which file to paste this into for the target tool — see109 `references/import-prompts.md` for ready-to-use prompts110111## Tips for cross-tool transfer112113- **Pull** (export): Run this skill in your source tool → copy `my-profile.md`114- **Push** (import): In the target tool, paste the profile with a prompt from115 `references/import-prompts.md`116- The Markdown is plain text — works through clipboard, email, Notion, GitHub117 gist, file transfer, anything118119## See also120121- `references/profile-template.md` — full output format example + filtering122 rules + privacy rules123- `references/tools-memory-map.md` — where each AI tool stores its memory124 (where to read FROM and where to write TO)125- `references/import-prompts.md` — copy-paste prompts for importing the126 profile into each target tool