cf-sessionlisted
Install: claude install-skill dinhanhthi/coding-friend
# /cf-session
> **CLI Requirement:** NONE — Works without `coding-friend-cli`. See [CLI requirements](../../../docs/cli-requirements.md) for the full matrix.
Save the current Claude Code session to `docs/sessions/` so it can be restored on another machine.
Label: **$ARGUMENTS**
## Workflow
### Step 0: Custom Guide
Run: `bash "${CLAUDE_PLUGIN_ROOT}/lib/load-custom-guide.sh" cf-session`
If output is not empty, integrate returned sections: `## Before` → before first step, `## Rules` → apply throughout, `## After` → after final step.
### Step 1: Resolve Sessions Folder
Output goes to `{docsDir}/sessions/` (default: `docs/sessions/`). Check `.coding-friend/config.json` for custom `docsDir` if it exists.
- Use `MAIN_REPO_ROOT` from the SessionStart bootstrap context (injected via session-init.sh). If absent, fall back to running `pwd` for `$CWD` and use `$CWD` as `MAIN_REPO_ROOT`.
- Read config from `CF_CONFIG_FILE` (= `$MAIN_REPO_ROOT/.coding-friend/config.json`) — do NOT search sub-folders
- Use `CF_DOCS_ROOT` as the docs base dir (= `$MAIN_REPO_ROOT/{docsDir}` where `docsDir` comes from config, default `docs`)
- Always resolve the sessions path as an **absolute path**: `{CF_DOCS_ROOT}/sessions/`
Create the folder if it doesn't exist:
```bash
mkdir -p "{CF_DOCS_ROOT}/sessions"
```
### Step 2: Detect Active Session
Run the detection script. It outputs two lines: the full JSONL path and the session ID.
```bash
CF_SESSION_SCRIPTS="${CLAUDE_PLUGIN_ROOT}/skills/cf-sessi