mirror of
https://github.com/hanzoai/datastore.git
synced 2026-10-30 14:48:37 +00:00
Per review feedback: no-argument mode previously fell back to "the newest transcript in the current project, then the newest transcript anywhere under ~/.claude/projects" when `CLAUDE_CODE_SESSION_ID` was unset or stale. Because this skill performs an external, irreversible upload of a private transcript, that fail-open behavior could publish an unrelated session that merely happened to be the most recently modified (e.g. when run from a different checkout or a non-Claude shell). Resolve the current session strictly by its id and fail closed otherwise, requiring an explicit transcript path, session id, or project argument to share any non-current session. Explicit-argument resolution is unchanged. Co-Authored-By: Claude Opus 4.8 <[email protected]>
2.2 KiB
2.2 KiB
name, description, argument-hint, disable-model-invocation, allowed-tools
| name | description | argument-hint | disable-model-invocation | allowed-tools |
|---|---|---|---|---|
| share | Share a Claude Code session to pastila.nl and return a viewer link. Shares the current session by default, or a session specified as a transcript path, a session id, or a project. Use when the user asks to share, publish, or get a link to this conversation or to a session/transcript. | [session: path | session-id | project] | false | Bash |
Share a Claude session
Upload a Claude Code session transcript to pastila.nl (encrypted) and return a
.claude.jsonl link that renders it like the viewer at
https://github.com/ClickHouse/alexeyprompts
Steps
-
Run the bundled helper. It lives in the same directory as this SKILL.md — use its absolute path (here this is
.claude/skills/share/share.py):python3 <skill-dir>/share.py [session]- No argument → shares the current session (identified strictly by
$CLAUDE_CODE_SESSION_ID). If that variable is unset or its transcript cannot be found, the script errors out and asks for an explicit argument rather than guessing — it never falls back to "the newest transcript", so it cannot publish an unrelated session by mistake. [session]→ shares another session, given as one of:- a path to a
.jsonltranscript, - a session id (uuid), or
- a project path or its
~/.claude/projectsdirectory name (shares the newest session in it).
- a path to a
- No argument → shares the current session (identified strictly by
-
Report the URL the script prints to the user.
The script delegates the upload to pastila.py (encryption + INSERT), so that
logic is not duplicated; it then inserts the .claude.jsonl extension before the
# key anchor to produce the viewer link.
Notes
- The link contains the decryption key in its
#fragment — anyone with the link can read the session. Share it only intentionally. - Sessions include tool calls and results (file fragments, command output). Take a quick look before sharing potentially sensitive ones.
pastila.py(the encryption + upload script from the pastila repo) is bundled next toshare.pyin this skill, so the skill is self-contained. It still needs the Python packagesrequestsandcryptographyinstalled.