session-move

session-move is a skill for Claude Code from Marcel-Bich/marcel-bich-claude-marketplace. It costs 141 tokens per session (2,592 once invoked), scanned A, original, MIT.

A controlled workflow for moving Claude Code sessions between configuration profiles, including a dry-run plan, copying and verification, user testing of the resumed sessions, and later cleanup.

In plain words
What is it for?
Use it to transfer sessions between Claude Code profiles, review the planned file changes, verify that sessions resume in the target, and remove the old data only afterward.
Why use it?
It reduces the risk of moving a live or active session incorrectly by checking for running processes and requiring explicit user action for the final cleanup. The profiles are folders that store Claude Code settings and session data.

Skill for Claude Code

Written for Claude Code: ${CLAUDE_PLUGIN_ROOT} variable. Also seen: reads .claude/ paths; mentions subagents; mentions Claude Code.

Runs only inside its plugin — its command needs a path that Claude Code sets for a plugin’s own hooks and for nothing else. Install the plugin, not this.

Part of the credo plugin — 28 skills, 21 commands, 7 hooks shipped together

Good fit Use it to transfer sessions between Claude Code profiles, review the planned file changes, verify that sessions resume in the target, and remove the old data only afterward.

Compare 6 skills from other repositories ↓
Install

Getting it into your agent

This one installs as part of its plugin. Adding the marketplace and installing the plugin brings it with everything else the plugin ships.

Claude Code
/plugin marketplace add Marcel-Bich/marcel-bich-claude-marketplace
Claude Code
/plugin install credo

Made for: Claude Code.

Or install credo, the plugin that ships this one along with the rest of its 28 skills, 21 commands, 7 hooks.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for session-move

README.md
[![agentmods](https://agentmods.dev/badge/skills/marcel-bich/marcel-bich-claude-marketplace/session-move/github.svg)](https://agentmods.dev/skills/marcel-bich/marcel-bich-claude-marketplace/session-move)
Your own site
<a href="https://agentmods.dev/skills/marcel-bich/marcel-bich-claude-marketplace/session-move"><img src="https://agentmods.dev/badge/skills/marcel-bich/marcel-bich-claude-marketplace/session-move/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for session-move

Your own site · 80×15
<a href="https://agentmods.dev/skills/marcel-bich/marcel-bich-claude-marketplace/session-move"><img src="https://agentmods.dev/badge/skills/marcel-bich/marcel-bich-claude-marketplace/session-move.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 141 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,592 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00141 $0.02592
Opus 5.5 $0.00056 $0.01037
Sonnet 5.5 $0.00028 $0.00518
Haiku 4.5 $0.00014 $0.00259

Measured 13d ago against content hash 6ad02204ab76, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

session-move scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 13d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

plugins/credo/skills/session-move/SKILL.md · 146 lines

How it starts

The opening of the file, as written. The whole thing — 146 lines — stays where its author put it; the contents beside it link to each section on GitHub.

session-move - move sessions between Claude Code profiles

Helper: ${CLAUDE_PLUGIN_ROOT}/scripts/credo-session-move.py (Python 3 stdlib). Every subcommand re-plans from scratch; nothing is cached between calls.

Hard rules

  • Class C. Only on the user's explicit invocation. In autonomous mode: do not start it; park the request for the user.
  • Run from an independent, new session. The helper refuses when the current session (CLAUDE_CODE_SESSION_ID) is one of the moved sessions, and when any moved session is live: a Claude process whose argv names the id (e.g. claude --resume <id>), or a pid file sessions/<pid>.json naming the id - in the source, the target or any sibling .claude* profile dir next to them or given with --profile <dir> (repeatable) - whose pid is alive, whatever the process is called (a dead pid is stale). Pid reuse is decided only by the pid file's procStart (equals /proc/<pid>/stat field 22): only a valid procStart that differs from the process start ticks in /proc counts as pid reuse (the pid is now another process). An absent, unreadable, non-positive or non-integer procStart means live. Bridge mirror pid files (credoPeerBridge) count as normal holders; only credoPeerLan proxy descriptors are skipped. Unreadable or invalid pid files produce a WARNING line in the plan; a recognised Claude process is never ignored; no clocks or mtimes are used. Without /proc (e.g. macOS) it falls back to ps -axww (every alive pid from a pid file counts as live); when liveness cannot be determined at all it refuses. Limit: sessions started with another profile location (a different CLAUDE_CONFIG_DIR) and Windows-side sessions are not seen unless their profile dir is passed with --profile; ask the user whether such profiles exist. Ask the user to close the session; never kill it.
  • Inspect, do not assume the setup. Some users share most of the profile through symlinks, others keep fully separate profiles. The helper detects this per item; read its plan, never copy "what worked last time" by hand.
  • Move only. There is no copy-only mode. The source copies go away only through the user-run cleanup script, and only after the resume in the target works AND the user said OK explicitly.
  • The agent never deletes. No rm, mv, unlink, no running of the cleanup script. Load the safety skill if anything near a deletion comes up.
  • Never read .credentials.json or tokens; the move does not need them.

Read the full file on GitHub · 146 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 13d ago First seen · 146 lines · 141 tokens per session scan A 6ad02204ab76

Subscribe to this mod's changes

session-move is a skill published in the GitHub repository Marcel-Bich/marcel-bich-claude-marketplace (12 stars, last pushed yesterday), licensed MIT. It adds 141 tokens to every session and 2,592 once invoked, about $0.0006 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-10-12.