Teleport init
First-time setup: create private hub repo, scan and export your Claude Code environmentFrom its SKILL.md
npx -y skills add seilk/claude-teleport --skill teleport-initAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 6 stars6 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
3.4 KB, as published. Nobody here has run it
Teleport Init
Set up Teleport for the first time on this machine.
Steps
-
Check prerequisites: Run
node "${CLAUDE_PLUGIN_ROOT}/dist/cli.js" context. Parse the JSON result.- If
auth.ghInstalledis false: show install command based onauth.os(darwin:brew install gh, linux:sudo apt install gh). STOP. - If
auth.authenticatedis false: showgh auth logininstructions. STOP. - Store
auth.usernameandmachine.alias.
- If
-
Confirm machine name: Show the detected
machine.aliasto the user. Ask if they want to keep it or rename. If an argument was provided, use that instead. -
Create hub repo: Run
node "${CLAUDE_PLUGIN_ROOT}/dist/cli.js" hub-init --clone-to /tmp/claude-teleport-hub. Parse result.- If
createdis false: inform user "Hub already exists at <repoUrl>. Using existing." - If
createdis true: inform user "Created private hub at <repoUrl>." - Store
usernameandlocalPathfrom the result for later use.
- If
-
Scan local environment: Run
node "${CLAUDE_PLUGIN_ROOT}/dist/cli.js" scan --claude-dir ~/.claude --output /tmp/teleport-scan.json. Parse the JSON output — it contains asummaryobject with counts per category. -
Present summary: Using the
summaryfrom the scan output, present:Found on this machine: - Plugins: {summary.plugins} - Agents: {summary.agents} - Rules: {summary.rules} - Skills: {summary.skills} - Hooks: {summary.hooks} - Settings keys: {summary.settings} - MCP configs: {summary.mcp} -
Category selection: Use
AskUserQuestionwithmultiSelect: trueto present categories (Plugins, Agents, Rules, Skills, Hooks, Settings — only show categories with items). Then for each selected category, use anotherAskUserQuestionwithmultiSelect: truelisting the individual items, asking "Any items to exclude?"Important: In the snapshot JSON, most categories (
agents,rules,skills,commands,mcp) are arrays ofFileEntryobjects with arelativePathfield. However,settingsis a plain object (key-value pairs, not an array) — useObject.keys()to list its items.pluginsandmarketplacesare arrays of objects with anamefield.hooksis an array of objects withnameandeventfields. -
Secret scan: Run
node "${CLAUDE_PLUGIN_ROOT}/dist/cli.js" secret-scan --snapshot-file /tmp/teleport-scan.json --output /tmp/teleport-secrets.json. Read findings. If any: show each finding with file and line. Confirm exclusion. -
First-push review gate: "This is the first push. Please review the files that will be committed:" Show the file list. Wait for user confirmation.
-
Push to hub: Write selections to
/tmp/teleport-selections.json. Runnode "${CLAUDE_PLUGIN_ROOT}/dist/cli.js" hub-push --hub-path <localPath> --machine <alias> --username <username> --snapshot-file /tmp/teleport-scan.json --selections-file /tmp/teleport-selections.json. This writes configs undermachines/<alias>/in the hub, generatesregistry.yamlon main, and creates an agent-friendlyREADME.md. -
Success: Show "Your Claude Code setup has been teleported to <repoUrl>. Run
/teleport-pullon other machines to apply." -
Cleanup: Remove temp files.