Guide · Agent skill
How to use the Migrate agent skill to import notes into LifeOS
Updated · written with AI from the project's own documentation and checked against our catalogue data
Migrate is an agent skill for LifeOS that takes existing material, such as a CLAUDE.md file, Cursor rules, or Obsidian, Notion and Apple Notes exports, and sorts it into the LifeOS structure. It is written for people who already have a LifeOS setup and want to bring in years of notes or AI instructions without copying everything in blindly. By the end of this guide you will know what the skill does, how to install it, how to trigger it, and how to review what it proposes before anything is written.
Quick start
- 1Install the skill. Download the ZIP and unzip it into ~/.claude/skills/ for personal use or the project's .claude/skills/ folder for one project. Or upload it under Settings → Capabilities → Skills in the Claude apps.
- 2Confirm the requirements. Make sure the Bun runtime is available and that LifeOS is installed at ~/.claude/LIFEOS with MigrateScan.ts and MigrateApprove.ts in LIFEOS/TOOLS.
- 3Start a migration. Ask the agent with /migrate or a request such as import my CLAUDE.md, giving the path to the source or pasting the content.
- 4Dry-run the scan. Run the scanner with --dry-run to see the routing table, average confidence and counts of UNCLEAR and low-confidence chunks without writing anything.
- 5Choose an approval path. Pick fast, category or walk-through approval based on how much you trust the proposal. Bulk commands skip low-confidence, UNCLEAR and identity chunks.
- 6Confirm protected chunks individually. For identity or ideal-state targets, review each chunk and approve it with its own id confirmed. Then check the HTML provenance comments on what was written.
What the Migrate skill makes the agent do
Migrate intakes external content, splits it into chunks, and classifies each chunk against the LifeOS taxonomy. For each chunk it proposes a destination and a confidence score, then commits the chunk only after approval that depends on its confidence tier.
Each committed chunk gets an HTML comment recording its source file, section and timestamp, so you can trace where it came from later. The skill is for routing existing material. It does not interview you to fill gaps; that job belongs to the separate /interview skill.
- Supported inputs: .md, .markdown and .txt files, single files or directories, piped or pasted stdin content, other LifeOS directories, CLAUDE.md, .cursorrules, OpenAI Custom Instructions exports, Obsidian vaults, Notion exports, Apple Notes exports (.txt) and raw journal dumps.
- High-confidence chunks can be approved in bulk. Medium and low-confidence chunks need your confirmation. Identity and ideal-state files require a yes on each individual chunk.
Install the Migrate skill
Download the Migrate skill as a ZIP from the page where you found this guide. Then choose one of two installation routes.
For a personal install, unzip the folder into ~/.claude/skills/. To limit it to one project, unzip it into that project's .claude/skills/ folder. You can also upload the skill in the Claude apps under Settings → Capabilities → Skills.
- Personal install: unzip into ~/.claude/skills/
- Project install: unzip into the project's .claude/skills/ folder
- Claude apps: Settings → Capabilities → Skills, then upload
Check the requirements before you run it
Migrate needs the Bun runtime, because its scripts are invoked with bun. It also needs a local LifeOS installation with the scripts MigrateScan.ts and MigrateApprove.ts located under ~/.claude/LIFEOS, in the LIFEOS/TOOLS folder.
Without a LifeOS installation the skill has nothing to call, and it writes into LifeOS files, so it is not useful on its own.
- Bun runtime available to run bun scripts
- LifeOS installed at ~/.claude/LIFEOS
- LIFEOS/TOOLS/MigrateScan.ts and LIFEOS/TOOLS/MigrateApprove.ts present
Trigger the skill with natural requests
You can invoke Migrate with /migrate or by describing what you want in plain language. The skill's description lists phrases it responds to, so you do not need exact wording.
Give it a source path when you have one. If you are pasting content, say so and the skill will pass it through stdin.
- /migrate
- migrate content from my Obsidian vault
- import my CLAUDE.md
- import Cursor rules
- bring in old notes
- bulk import my Notion export
- import from another LifeOS
Scan, review the routing and approve
The scanner first shows a routing proposal: total chunks, how many chunks go to each target, average confidence, and the counts of UNCLEAR and low-confidence chunks. You can preview this without writing anything using --dry-run.
After the scan you choose how to approve. The fast path commits trusted chunks in bulk, the category path approves specific targets, and the walk-through path lets you decide each chunk yourself. Chunks under 60 percent confidence, UNCLEAR chunks, and identity or ideal-state targets are never committed by bulk commands.
- Fast path: approve trusted chunks at 60 percent confidence or higher
- Category path: approve one target at a time, such as TELOS/GOALS.md
- Walk-through path: review each pending chunk with approve, modify or reject
bun ~/.claude/LIFEOS/TOOLS/MigrateScan.ts --source <path>\nbun ~/.claude/LIFEOS/TOOLS/MigrateScan.ts --source <path> --dry-run\nbun ~/.claude/LIFEOS/TOOLS/MigrateApprove.ts --approve-all\nbun ~/.claude/LIFEOS/TOOLS/MigrateApprove.ts --review\nbun ~/.claude/LIFEOS/TOOLS/MigrateApprove.ts --approve <id>\nbun ~/.claude/LIFEOS/TOOLS/MigrateApprove.ts --modify <id> --target <new_target>\nbun ~/.claude/LIFEOS/TOOLS/MigrateApprove.ts --reject <id>Understand the safety rules and what the scripts can touch
Migrate runs local scripts and writes into your LifeOS files. According to its listing, it does not use the network. The skill is designed so that identity and ideal-state content is never committed in bulk. A chunk going into PRINCIPAL_IDENTITY.md or under IDEAL_STATE/ needs your yes on that exact chunk, passed with a confirmation flag that bulk commands reject.
Rule-style chunks are walked through one by one and routed to a constitutional surface, not to harness feedback memory files. The approval script also refuses a chunk when its text already exists in the target, and reports it as pending.
- Runs scripts: yes (bun scripts in LIFEOS/TOOLS)
- Uses network: no
- Protected targets need a single-item approval with the chunk id confirmed
- Duplicate text in a target is reported and left pending
Tips for a clean migration
Run --dry-run first on any large source so you can see the routing before anything is written. Start with a small folder to learn how the proposals look, then move on to the full archive.
Treat the walk-through path as the default for anything touching goals, beliefs or identity. Fast approval is best kept for material you already trust. After the run, check the HTML comments on committed chunks to confirm the source trail is intact.
- Dry-run large sources before committing
- Test on a small folder first
- Walk through identity-adjacent material yourself
- After the run, run /interview on sparse areas the migration left thin
What people use it for
- Moving a CLAUDE.md file with AI operating rules into a LifeOS setup, with rules routed to constitutional surfaces after review.
- Importing an Obsidian vault of years of notes so that goals, wisdom and knowledge land in the matching LifeOS files.
- Bringing Cursor rules into a LifeOS installation, one chunk at a time, with source provenance recorded.
- Sorting an Apple Notes or Notion export, where most chunks go to knowledge and a few need your decision as UNCLEAR.
- Cleaning up a raw journal dump by routing the parts that match goals or beliefs and leaving the rest pending.
Frequently asked questions
Is the Migrate skill free to use?
The skill's source is published under the MIT licence. Whether any other cost applies depends on the tools you run it with, which the source does not specify. The skill itself needs a local LifeOS installation and the Bun runtime.
What do I need before I can use Migrate?
You need the Bun runtime and a local LifeOS installation with MigrateScan.ts and MigrateApprove.ts in LIFEOS/TOOLS under ~/.claude/LIFEOS. Without LifeOS the scripts it calls are not present.
Where do I put the Migrate skill folder?
Unzip the downloaded ZIP into ~/.claude/skills/ for a personal install, or into a project's .claude/skills/ folder to limit it to that project. You can also upload it in the Claude apps under Settings → Capabilities → Skills.
Does Migrate send my notes to the internet?
According to its listing, Migrate does not use the network, but it does run local scripts that write into your LifeOS files. Review the scripts and the proposed routing before approving.
Can Migrate edit a single file for me?
No. Migrate explicitly excludes single-file edits. For a normal edit, make the change directly, which is simpler and safer.
How is Migrate different from the /interview skill?
Migrate takes content you already have and classifies it into LifeOS destinations. The /interview skill asks you questions to fill gaps, so it is the better choice when you have no source material to import.
New agent skills, repos and AI tools — every week
The best new skills and open-source projects, the fastest-growing repos, and one free prompt. Five minutes to read. Unsubscribe anytime.
Our verdict
Migrate suits new LifeOS users who want to bring years of notes or AI instructions into their structure with a reviewed, traceable import rather than a bulk copy. It is not the right tool for editing a single file, for interviews that fill gaps, or for anyone without a LifeOS installation, and identity content needs careful individual review.
Download the skill