Agent skill

Session Crosslink

by entireio in entireio/skills

A skill your agent uses when an agent session ran outside the repo whose commits should record it — e.g.

MITAuto-check passed

Install Session Crosslink

skills CLI
$ npx skills add entireio/skills --skill session-crosslink -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install entireio/skills session-crosslink --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/entireio/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/session-crosslink .claude/skills/session-crosslink && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
session-crosslink
GitHub stars
223
Token cost
~2k tokens
SKILL.md length
1,007 words
Files
1
Skills in repo
12
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when an agent session ran outside the repo whose commits should record it — e.g.

  • Works in 5 steps: Resolve the session id → Discover affected repos → Compute the preview locally → …
  • An agent session ran outside the repo whose commits should record it — e.g
  • SKILL.md covers Response Format, STOP — Read these rules before…, Flow and Failure modes, plus 1 more section
  • Calls git

What it does

Session Crosslink is an agent skill from entireio/skills. Use when an agent session ran outside the repo whose commits should record it — e.g. launched from a higher-level folder, a non-Entire repo, or one repo but editing another — to attach the session to each affected Entire-enabled repo's HEAD commit.

Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

The repository describes itself as: ✨ Cross-agent skills that help coding agents use Entire context from Checkpoints, sessions, and git history to search past work, explain code, and hand off sessions. The licence is MIT.

When your agent uses it

  • An agent session ran outside the repo whose commits should record it — e.g

Example prompts

  • “/session-crosslink”

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Resolve the session id
  2. Discover affected repos
  3. Compute the preview locally
  4. Render the preview table
  5. Execute on confirmation

What it can do on your machine

Read from SKILL.md and the folder at commit fe5266f. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Session Crosslink loads about 2k tokens when it runs. Until then it costs about 67 tokens; SKILL.md has 1,007 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~67
When it runs · the whole SKILL.md, loaded when a task matches
~2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from entireio/skills at commit fe5266f, republished under its MIT licence (© entireio). 1,007 words, ~2,027 tokens.

Download SKILL.mdSave it as .claude/skills/session-crosslink/SKILL.md (or your agent's skills folder).
name
session-crosslink
description
Use when an agent session ran outside the repo whose commits should record it — e.g. launched from a higher-level folder, a non-Entire repo, or one repo but editing another — to attach the session to each affected Entire-enabled repo's HEAD commit.

Response Format

Begin the first response to this skill invocation with the line:

Entire Session Crosslink:

followed by a blank line, then the content. Apply the header to the first response of the invocation only — not on follow-up turns and not on error / early-exit responses (no session resolved, no affected repos found).

STOP — Read these rules before doing ANYTHING

  1. Do NOT ask clarifying questions until the resolver/discovery steps have run. The session id and candidate repo list usually resolve from entire session current --json plus what the user said. Only ask if both come back empty.
  2. Do NOT run entire session attach without showing the preview table first. The whole point of this skill is preview-then-confirm. attach amends the target repo's HEAD; previewing wrong means amending the wrong commit.
  3. Always cd into the target repo before running entire session attach. The CLI resolves the repo from cwd. Use one cd … && entire session attach … per call so each invocation hits the right repo.

Required CLI: entire 0.6.2+. No special flags needed — this skill works against the shipped CLI via cwd-scoped entire session attach.

Flow

Step 1: Resolve the session id

Try each strategy in order until one returns a session id.

Strategy A: Entire-enabled cwd.

bash
entire session current --json

If the output is valid JSON and has a non-empty session_id, read session_id and agent and continue with those values. If the JSON parses but session_id is missing or empty, treat Strategy A as failed and fall through to B — don't proceed to attach with no session id.

Strategy B: Entire-enabled sibling repo. If the user named a repo that has Entire enabled (e.g. the foo repo), cd there and re-try entire session current --json. The session state lives wherever the session was tracked.

Strategy C: Runtime-specific transcript directory. If neither A nor B works, the session was never recorded by Entire and you must read it from the agent runtime:

  • Claude Code: transcripts live at ~/.claude/projects/<encoded-cwd>/<session-id>.jsonl. Encoded cwd is the launch directory with / → -. The most recent .jsonl file under the project directory matching the agent's launch cwd is this session. Read the basename minus .jsonl as session_id. Set agent to claude-code.
  • Codex: check $CODEX_HOME/sessions/ or ~/.codex/sessions/. Set agent to codex.
  • Other runtimes: ask the user for the session id.

Record agent so Step 4 can pass --agent <name> to attach.

If all strategies fail: print "Could not resolve a session id — pass one explicitly or run from an Entire-enabled directory" and stop.

Step 2: Discover affected repos

Build a candidate set, union from these sources, then de-duplicate by path:

  1. From the user's message: any repo paths or aliases the user named explicitly (e.g. "the foo repo and the bar api"). Resolve aliases via the user's CLAUDE.md or treat as filesystem paths.

  2. From sibling repos under the launch directory (only if launch dir is NOT Entire-enabled): list immediate subdirectories that have their own .git and a .entire/settings.json.

  3. From the agent's edit history in this session: any repo whose files were edited during the session — derive from the agent's own context. If unsure, ask the user.

For each candidate, run entire status --json (with cwd inside that repo) and decide:

  • "enabled": true → keep.
  • "enabled": false with a settings-parse error (unknown field "...") → keep. Status fails noisily on misconfigured local settings even when attach would succeed.
  • "enabled": false with no error → drop. Repo opted out of Entire.

If the candidate set is empty, ask the user which repos to crosslink.

Show full SKILL.md (428 more words)Show less
Step 3: Compute the preview locally

For each candidate, inspect git and the session store to compute the action — same logic entire session attach uses internally, but without amending anything:

bash
# Get HEAD hash and message
HEAD_HASH=$(git -C <repo> rev-parse HEAD)
HEAD_MSG=$(git -C <repo> log -1 --format=%B HEAD)

# Existing Entire-Checkpoint trailer on HEAD, if any
EXISTING_TRAILER=$(printf '%s\n' "$HEAD_MSG" | grep -E '^Entire-Checkpoint:' | tail -1 | awk '{print $2}')

# Is the session already tracked in this repo's store?
STATE_FILE=<repo>/.git/entire-sessions/<session-id>.json

Decide the action per repo:

  • Both STATE_FILE exists AND its last_checkpoint_id field is non-empty → would_skip_existing_in_state. Attach is a no-op; report that.
  • HEAD has an EXISTING_TRAILER → would_link_existing_in_head. Attach reuses that checkpoint id and adds this session to it.
  • Neither → would_add_trailer. Attach generates a fresh checkpoint id and amends HEAD with it.

For would_link_existing_in_head rows, the checkpoint id is EXISTING_TRAILER. For would_add_trailer rows, the checkpoint id can't be known ahead of time — attach generates one at write time. Show "new" in the table.

If HEAD has no commits in the repo (git rev-parse fails), record an error row: error: no commits yet.

Step 4: Render the preview table

Show the user a compact table:

repo                              HEAD commit   action                          checkpoint
foo                               a1b2c3d       would_add_trailer               (new)
bar                               e4f5g6h       would_link_existing_in_head     ckpt-7d6c
baz                               —             error: no commits yet           —

Then ask: "Attach session <id> to the would_* rows? Error rows and would_skip_existing_in_state rows will be skipped."

Step 5: Execute on confirmation

For each row the user confirmed where action is would_add_trailer or would_link_existing_in_head:

bash
cd <repo> && entire session attach <session-id> --agent <agent> --force

Skip would_skip_existing_in_state rows (re-attach there is a no-op) and error: rows.

Capture exit status per repo. Report a final summary:

attached:
  foo    ckpt-9f8e  (new trailer on a1b2c3d)
  bar    ckpt-7d6c  (added to existing checkpoint on e4f5g6h)
skipped:
  baz    (no commits yet)
  qux    (already linked: ckpt-c97b)

Remind the user: attach amends HEAD, so each touched repo's local branch has diverged from its remote. If those branches have open PRs, force-push (git push --force-with-lease) to update them.

Failure modes

  • Session id not resolvable: stop with a one-line message — see Step 1.
  • No candidate repos: ask the user which repos to crosslink.
  • All candidates report would_skip_existing_in_state: tell the user the session is already linked everywhere; no work to do.
  • A repo's attach fails mid-run after others succeeded: do not retry automatically. Report which repos succeeded vs failed and surface the failing repo's stderr. The succeeded amends are idempotent — re-running the skill is safe.
  • HEAD has no commits in a candidate: skip that row with error: no commits yet. Tell the user to make at least one commit there first.
  • entire session attach fails with Entire is disabled: the target repo opted out. Tell the user; don't retry.

Why this skill exists

Entire tracks agent sessions per repo via state stored under each repo's git common dir. When an agent runs from a higher-level folder, a sibling repo, or a non-Entire-enabled parent, none of the child repos see the session. This skill resolves the session id from the agent runtime (which always has it), discovers affected repos, previews each, then runs entire session attach per repo on confirmation — without amending the wrong commit or asking the user to babysit per-repo cds.

© entireio, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/session-crosslink of entireio/skills.

Open the folder on GitHubat commit fe5266f

Compare with similar skills

Session Crosslink next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Session Crosslink compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Session Crosslink this skillentireio/skills223—~2kAutomated safety check: PassMIT
Commitsickn33/agentic-awesome-skills47k2 repos~1.3kAutomated safety check: PassMIT
Commitdavila7/claude-code-templates32k3 repos~730Automated safety check: PassMIT
Commitwindmill-labs/windmill18k—~447Automated safety check: PassCustom licence
Commitccusage/ccusage19k—~722Automated safety check: PassCustom licence
CommitsJetBrains/intellij-community21k—~589Automated safety check: PassCustom licence

Similar skills

  • Commit

    sickn33/agentic-awesome-skills

    ALWAYS use this skill when committing code changes — never commit directly without it.

    47k GitHub starsUsed in 2 repos~1.3k tokens
    DevelopmentAuto-check passed
  • Commit

    davila7/claude-code-templates

    Create commit messages following Sentry conventions. An agent skill from davila7/claude-code-templates.

    32k GitHub starsUsed in 3 repos~730 tokens
    DevelopmentAuto-check passed
  • Commit

    windmill-labs/windmill

    Create a git commit with conventional commit format. An agent skill from windmill-labs/windmill.

    18k GitHub stars~447 tokensUpdated today
    DevelopmentAuto-check passed
  • Commit

    ccusage/ccusage

    Creates atomic Conventional Commits. An agent skill from ccusage/ccusage.

    19k GitHub stars~722 tokensUpdated today
    DevelopmentAuto-check passed
  • Commits

    JetBrains/intellij-community

    Official

    Create, amend, or rename IntelliJ commits and write commit messages.

    21k GitHub stars~589 tokensUpdated today
    DevelopmentAuto-check passed
  • Commit

    antiwork/gumroad

    Stage and commit changes with a clear, concise commit message.

    9.8k GitHub stars~503 tokensUpdated today
    DevelopmentAuto-check passed

More from entireio/skills

All 12 skills in this repo
  • Review

    entireio/skills

    Review code changes on the current branch using checkpoint transcript context to understand developer intent before auditing the diff.

    223 GitHub stars~1.9k tokensUpdated 9 days ago
    Auto-check passed
  • Address Findings

    entireio/skills

    Address the review findings posted on an Entire trail: fetch the trail's open findings, fix the code, and resolve them on the trail.

    223 GitHub stars~1.6k tokensUpdated 9 days ago
    Auto-check passed
  • Recall

    entireio/skills

    A skill your agent uses when the user describes a task and wants to know whether something similar has been done before, then turn the closest prior session into a task playbook.

    223 GitHub stars~1.6k tokensUpdated 9 days ago
    Auto-check passed
  • Replay

    entireio/skills

    A skill your agent uses when the user wants to step through a feature's checkpoints chronologically, pausing at each step to ask questions.

    223 GitHub stars~1.7k tokensUpdated 9 days ago
    Auto-check passed
  • Search

    entireio/skills

    A skill your agent uses when the user asks to research, investigate, look into, dig into, or search for anything — a topic, feature, bug, decision, or "what do we know about X".

    223 GitHub stars~2.1k tokensUpdated 9 days ago
    Auto-check passed
  • Session To Skill

    entireio/skills

    A skill your agent uses when the user wants to turn one or more Entire-tracked sessions, checkpoints, or repeated agent workflows into a reusable agent skill.

    223 GitHub stars~2.2k tokensUpdated 9 days ago
    Auto-check passed

Questions about Session Crosslink

What does Session Crosslink do?

A skill your agent uses when an agent session ran outside the repo whose commits should record it — e.g. Session Crosslink is an agent skill from entireio/skills.g.

When should I use Session Crosslink?

Session Crosslink fits situations like: an agent session ran outside the repo whose commits should record it — e.g.

How do I install Session Crosslink in Claude Code?

Run `npx skills add entireio/skills --skill session-crosslink -a claude-code`. Or copy the skill folder (skills/session-crosslink in entireio/skills) into .claude/skills/session-crosslink in your project. Claude Code loads it when a task matches its description.

How do I install Session Crosslink in Codex?

Run `npx skills add entireio/skills --skill session-crosslink -a codex`. Or copy the skill folder (skills/session-crosslink in entireio/skills) into .agents/skills/session-crosslink in your project. Codex loads it when a task matches its description.

Can I use Session Crosslink in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add entireio/skills --skill session-crosslink -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/session-crosslink, .gemini/skills/session-crosslink, .github/skills/session-crosslink and .opencode/skills/session-crosslink in your project.

What does Session Crosslink need to run?

Going by SKILL.md and its folder, Session Crosslink needs the command-line tools its instructions call (git).

Does Session Crosslink access the network?

SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Session Crosslink safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Session Crosslink use?

Session Crosslink is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Session Crosslink use?

About 2k tokens (SKILL.md is roughly 8.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Session Crosslink?

Skills that share tags, products or a category with Session Crosslink: Commit (sickn33/agentic-awesome-skills, 47k stars), Commit (davila7/claude-code-templates, 32k stars), Commit (windmill-labs/windmill, 18k stars) and Commit (ccusage/ccusage, 19k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Session Crosslink?

entireio (a GitHub organization) maintains it in entireio/skills, which has 223 GitHub stars. The repository holds 12 skills in this directory. The repository was last updated on September 29, 2026.

Source: entireio/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.