mcpField
S
session-share

session-share

github.com/asheshgoplaniエージェントワークフロー1.2k51 回インストール3 日前に更新
リポジトリ

session-share について

Claude Code のセッションを持ち運び可能なファイルに書き出し、agent-deck に取り込んで別の開発者が続行できるスキルです。機密情報は既定で伏せられ、明示的に共有しない限りファイルはローカルに保管されます。

主な機能

  1. 01現在または指定セッションの書き出し
  2. 02思考ブロックの出力有無を選択
  3. 03キー、トークン、パスの伏せ字化
  4. 04agent-deck へのセッション取り込み
  5. 05プロジェクトと起動方法の指定

活用シーン

  1. 01Claude Code セッションをチームメンバーへ引き継ぐ
  2. 02共有セッションを別のプロジェクトで続行

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/asheshgoplani/agent-deck --skill session-share

インストール後、Claude Code で/session-shareを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

evals/
evals.json
RUNNER.md
scripts/
.gitkeep
export.sh
import.sh
utils.sh
tests/
test_export_895_regression.sh

詳細

セッション共有

ポータブルなファイルのエクスポート/インポートを通じて、開発者間で Claude Code のセッションを共有できます。

バージョン: 1.0 | プライバシー: 共有を選択しない限り、ファイルがクラウドにアップロードされることはありません

スクリプトパスの解決(重要)

このスキルには、scripts/ サブディレクトリにヘルパースクリプトが含まれています。Claude Code がこのスキルを読み込むと、次のような行が表示されます。

Base directory for this skill: /path/to/.../skills/session-share

すべてのスクリプト参照を解決するには、このベースディレクトリのパスを必ず使用してください。 SKILL_DIR として保存します。

# Set SKILL_DIR to the base directory shown when this skill was loaded
SKILL_DIR="/path/shown/in/base-directory-line"

# Then run scripts as:
$SKILL_DIR/scripts/export.sh
$SKILL_DIR/scripts/import.sh ~/Downloads/session-file.json

クイックスタート

# Export current session
$SKILL_DIR/scripts/export.sh
# Output: ~/session-shares/session-2024-01-20-my-feature.json

# Share the file via Slack, email, AirDrop, etc.

# Other developer imports
$SKILL_DIR/scripts/import.sh ~/Downloads/session-2024-01-20-my-feature.json
# Session appears in agent-deck, ready to continue

コマンド

セッションをエクスポートする

現在の Claude セッションをポータブルなファイルにエクスポートします。

$SKILL_DIR/scripts/export.sh [options]

オプション:

オプション説明
--session <id>特定のセッションをエクスポートします(デフォルト:現在のセッション)
--output <path>出力先のパスを指定します
--include-thinkingClaude の思考ブロックを含めます
--no-sanitize機密データをマスキングしません

例:

# Export current session
$SKILL_DIR/scripts/export.sh

# Export to specific location
$SKILL_DIR/scripts/export.sh --output /tmp/handoff.json

# Export specific session with thinking blocks
$SKILL_DIR/scripts/export.sh --session abc123 --include-thinking

エクスポートされるもの:

  • すべての会話メッセージ(ユーザーとアシスタント)
  • ツールの呼び出しと結果
  • 追跡されたファイルの変更
  • セッションのメタデータ

デフォルトでマスキングされるもの:

  • API キーとトークン
  • 絶対パス(相対パスに変換)
  • 思考ブロック(Claude の内部推論)
セッションをインポートする

共有されたセッションファイルをインポートして、agent-deck のセッションを作成します。

$SKILL_DIR/scripts/import.sh <file-path> [options]

オプション:

オプション説明
--title <name>セッションのタイトルを上書きします
--project <path>特定のプロジェクトにインポートします
--no-startセッションを自動的に開始しません

例:

# Import and start
$SKILL_DIR/scripts/import.sh ~/Downloads/session-feature.json

# Import with custom title
$SKILL_DIR/scripts/import.sh session.json --title "Feature Work from Alice"

# Import without starting
$SKILL_DIR/scripts/import.sh session.json --no-start

ワークフロー:セッションの共有

開発者 A(エクスポート側)
  1. 機能の開発のため、agent-deck のセッションで作業します
  2. 開発者 B に引き継ぐ必要があります
  3. 次を実行します:$SKILL_DIR/scripts/export.sh
  4. ファイルを取得します:~/session-shares/session-2024-01-20-feature.json
  5. Slack の DM、メール、または AirDrop でファイルを開発者 B に送信します
開発者 B(インポート側)
  1. セッションファイルを受け取ります
  2. 次を実行します:$SKILL_DIR/scripts/import.sh ~/Downloads/session-2024-01-20-feature.json
  3. セッションが agent-deck に「Imported: feature」として表示されます
  4. セッションを開始すると、Claude が開発者 A の作業内容を完全に把握しています
  5. 開発者 A が中断したところから続けます

エクスポートファイル形式

{
  "version": "1.0",
  "exported_at": "2024-01-20T15:30:00Z",
  "exported_by": "alice",
  "session": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "title": "Feature Implementation",
    "original_project": "/Users/alice/my-project"
  },
  "context": {
    "summary": "Last few user messages for quick context",
    "modified_files": ["src/auth.ts", "src/middleware.ts"]
  },
  "messages": [ /* JSONL records as JSON array */ ],
  "stats": {
    "total_messages": 150,
    "user_messages": 45,
    "assistant_messages": 105
  }
}

セキュリティとプライバシー

デフォルトでマスキングされる内容
データの種類マスキング
API キー[REDACTED] に置換
トークン[REDACTED] に置換
ホームパス~ に変換
パス内のユーザー名$USER に変換
思考ブロック完全に削除
ベストプラクティス
  1. 共有する前に確認する - エクスポートファイルを開き、機密データが含まれていないか確認します
  2. 直接転送を利用する - Slack の DM、メール、AirDrop はクラウドリンクよりプライバシーが保護されます
  3. インポート後に削除する - インポートが正常に完了したら、ファイルを削除します
  4. --include-thinking は必要な場合にのみ使用する - 思考ブロックには機密性の高い推論が含まれている可能性があります

トラブルシューティング

問題解決方法
「Could not detect current Claude session」Claude がアクティブな agent-deck セッション内にいることを確認してください
「Session file not found」セッションがまだ保存されていない可能性があります。先にメッセージを送信してください
インポート先のプロジェクトが違う--project /correct/path を使用して、インポート先を指定してください
ファイルサイズが大きいデフォルト設定を使用してください(思考ブロックが除外されます)

技術的な詳細

セッションの保存場所

Claude はセッションを ~/.claude/projects/<encoded-path>/<session-id>.jsonl に保存します

パスのエンコード:/Users/alice/project は -Users-alice-project になります

インポートの仕組み
  1. エクスポートした JSON ファイルを読み込みます
  2. ディレクトリを作成します:~/.claude/projects/<encoded-current-project>/
  3. メッセージを JSONL として書き込みます:<session-id>.jsonl
  4. このパスを参照する agent-deck セッションを作成します
  5. claude-session-id を設定し、再起動時に --resume が使用されるようにします
依存関係
  • jq - JSON 処理(インストール:brew install jq)
  • agent-deck - セッション管理
  • claude - Claude Code CLI

後方互換性

このスキルのスクリプトで使用するのは、agent-deck add/基本的なセッション作成とclaude --resumeのみで、いずれもv1.16.11よりずっと前から安定しています。このスキルのどの部分も、最近追加されたCLI機能(セッション送信の配信判定、コンテキストインスペクター、ヘルスチェック、リモートのデッドレター)には依存していません。既存の.jsonlトランスクリプトを指定してClaudeセッションを作成できるバージョンのdeckであれば、変更なしで動作します。

コメント