Skip to main content

seshport

crates.io License: MIT Built with Rust Works with GitHub stars

Port your session between coding agents. Type /seshport inside Claude Code or Codex, open the other agent, and resume the exact same conversation — full context included.

By Harshil-Jani · MIT

Demo

seshport demo — porting sessions between Claude Code and Codex

A Codex session's haiku, recited by Claude Code after the port. A Claude Code session's fizzbuzz, recalled by Codex. Real recording, synthetic sessions — nothing staged.

Install

One line — installs the binary and the /seshport slash command for both agents:

curl -fsSL https://raw.githubusercontent.com/Harshil-Jani/seshport/main/install.sh | sh

Or grab just the binary from wherever you live:

npm i -g seshport                        # Node
pip install seshport                     # Python
cargo install seshport                   # Rust
brew install harshil-jani/tap/seshport   # Homebrew

Then copy commands/ into ~/.claude/commands/ and ~/.codex/prompts/ for the /seshport slash command. Prebuilt binaries for mac (arm/x64), linux (arm/x64), and windows are on Releases.

The easy way: /seshport

Never leave your agent. Mid-conversation, just type:

/seshport
  • Inside Claude Code → replies with codex resume <id>
  • Inside Codex → replies with cd <project> && claude --resume <id>

Open the other agent, paste, and continue the exact same conversation. Verified: a codeword planted in a Claude Code session was recalled by Codex after a /seshport round-trip.

CLI usage

The source tool is always auto-detected; name the target (or omit it when only one target is possible).

seshport <session-id> <tool>   # port any session to any tool (claude | codex | grok)
seshport <session-id>          # auto: found in any tool, only one possible target
seshport <path.jsonl> <tool>   # format detected from file content
seshport claude codex          # newest Claude Code session -> Codex
seshport grok claude           # newest Grok Build session -> Claude Code

Each run prints the output path and the exact resume command:

$ seshport codex
/Users/you/.claude/projects/-your-project/1b2c3d4e-....jsonl
resume with:  cd /your/project && claude --resume 1b2c3d4e-...

Want to try without touching your real sessions? The demo transcripts from the GIF are in demo/:

seshport demo/codex-session.jsonl claude          # -> claude --resume <id>
seshport demo/claude-session.jsonl grok           # -> grok --resume <id>
seshport demo/grok-session/chat_history.jsonl codex   # -> codex resume <id>

Architecture

seshport architecture — sessions flow through a neutral Transcript; each agent is one Tool impl

Every agent is one implementation of the Tool trait against a neutral Transcript — so N tools cost 2·N converters instead of N². The diagram is editable: open docs/architecture.excalidraw at excalidraw.com.

How it works

  • User and assistant messages transfer as-is into a neutral Transcript.
  • Tool calls/results are flattened to readable text ([tool call: Bash] ...) — provider-specific API state (tool-call ids, encrypted reasoning) can't be replayed cross-provider, but the resumed agent gets the full story as context.
  • Thinking/reasoning blocks are dropped (provider-internal).
  • Codex output borrows base_instructions from your newest real rollout — ChatGPT-auth Codex rejects sessions without the official instructions.
  • Every import starts with an attribution message noting the source session and this tool.

Add your editor — PRs welcome

Every integration is one Tool impl (five methods) plus a demo fixture — see CONTRIBUTING.md for the step-by-step guide, and PR #1 (Grok Build) for a worked example you can copy.

License

MIT © Harshil Jani

Metadata

Release files for seshport 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for seshport 0.3.0
File
seshport-0.3.0-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
seshport-0.3.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl Python 3 none Linux glibc 2.17+ x86-64 Details
seshport-0.3.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl Python 3 none Linux glibc 2.17+ ARM64 Details
seshport-0.3.0-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl Python 3 none macOS 10.12+ x86-64, macOS 10.12+ universal2 (ARM64, x86-64), macOS 11.0+ ARM64 Details

Total release size: 1.4 MB

Release files / seshport-0.3.0-py3-none-win_amd64.whl

Download URL seshport-0.3.0-py3-none-win_amd64.whl
Size 211.6 kB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
a24d4a151055e72d0a49bc7b9218fc987d48149c01d64fb2cec01cc7a0d09da7
BLAKE2b-256 checksum
How to use checksums
dc9e3d1cac8dc5f239982e5c6c356a7bc728e5cc22928367f9802656c0ba8cdb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 18, 2026.

Transparency log

Release files / seshport-0.3.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL seshport-0.3.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 317.3 kB
Tags Linux glibc 2.17+ x86-64 Python 3
SHA-256 checksum
How to use checksums
c6ea20b3b9777fb4b5b914e3ca1599c0f960ff21b7ec6741bcdec93763df980b
BLAKE2b-256 checksum
How to use checksums
aa50ceb816b6a1bf40e3b254daced60c69adf138d56cfd8d8190b5f9492e673e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 18, 2026.

Transparency log

Release files / seshport-0.3.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL seshport-0.3.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 301.9 kB
Tags Linux glibc 2.17+ ARM64 Python 3
SHA-256 checksum
How to use checksums
2b6333eb3fe79e0678fbdc5d7d1ade20108baeff718edba2322486692fb35a6a
BLAKE2b-256 checksum
How to use checksums
1fda1fc8d5665b09d9952efbd3a37f7097306371df791cfb767aec06fe4644ac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 18, 2026.

Transparency log

Release files / seshport-0.3.0-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl

Download URL seshport-0.3.0-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Size 573.5 kB
Tags Python 3 macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
ff4a43fa2696c9ef41d9f2804727ad4b25d5339e50e9a9ebaec538248991153b
BLAKE2b-256 checksum
How to use checksums
23b5eb9bcfee37f7e1b32c7946266f5dbc6a13b75b329eff13c09b8ba1587286
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 18, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.3.0 This release

4 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page