Repository navigation
Releases: crcatala/overshare
Release list
v0.4.2
Changed
- Sessions in throwaway workspaces are marked as scratch instead of each counting as a project of its own: a T3 Code
thread started without a project (…/t3/scratch/<date>-<title>-<hash>, named by its title) and a folder in a
temporary folder (/tmp,/var/tmp, macOS's/var/folders/…/T,$TMPDIR; Claude Code's scratchpads
there are justscratch). A git repository cloned into a temporary folder keeps its name. overshare archivefiles them all in one_scratchfolder, withscratch: truein the frontmatter. The next run
moves files already archived elsewhere into it.
Fixed
overshare archivegave sessions whose ids share a name before their UUID (a pi session started by a tool, such
as<name>-<uuid>) the same short id, so they overwrote one file. The short id now comes from the UUID wherever it
is in the id, and an id without one that is longer than eight characters is hashed. A file an older version wrote
for such sessions (named with the first eight characters, which they shared) is left as it is; delete it by hand.
v0.4.1
Changed
- A session's project is now the repository it ran in, not the last folder of its working directory: a session in
a subfolder or a git worktree is named after the repository (the worktree's main checkout, found through git's
files or, for a removed worktree, from its path: T3 Code, herdr, Claude Code, Codex and<repo>/.worktrees
layouts). Sessions from different subfolders of one repository now share its name. This applies tobrowse
(and its search), shares and the archive;overshare liststill shows the transcript's folder. overshare archiveputs each file in a folder per project (<project>/<date>_<harness>_<project>_<id>.md) and
records a worktree session's worktree in the frontmatter. A file whose name changes when it is rewritten is moved,
not copied. The first run after upgrading rewrites every file once and moves an existing archive into project
folders (with or without frontmatter).
v0.4.0
Added
overshare archivesaves redacted sessions as markdown files on your machine, in
~/.local/share/overshare/archiveby default (configarchive.dir, or-o). Archive one session, or every
session active in the last 30 days with--all(--since 7d,--since 2026-10-01). It runs the same redaction
aspublishbut never uploads. Redacted secrets and suspicious values don't stop a file from being written:
the run lists them for review. A session the final re-scan blocks is held back unless you pass--force.
Files have YAML frontmatter (dates, harness, branch, the session file's path with your home folder hidden,
token usage, finding counts). A file is rewritten only when its session has changed since. The default mode is
minimal: each prompt and the final reply of its turn. Prompts are escaped so they show exactly as typed.
See Archiving.
v0.3.0
Added
- The viewer's token rail has a Skills list with every skill loaded in the session, typed as a
command or loaded by the model. Hover a skill to see each load and who made it, and click one to
jump to it. Skills typed as a command (such as/assess-review-feedback) used to be missing,
because the rail only listed the Skill tool's calls. pi sessions now record skill loads too: a
typed/skill:name, and areadof aSKILL.md. - The session viewer and exported HTML pages show the overshare logo as their browser tab icon. The
landing page adds afavicon.icofallback and an Apple touch icon for iOS home screens. - Redaction also uses the high-confidence rules of
Betterleaks, about 340 provider token formats, next
to the existing detectors. Formats those missed are now caught (Aikido, Canva, Devin, MongoDB Atlas
service accounts, Zuplo and others), and some they found only at medium confidence (Deno, Ramp)
are now high. Only the rules' patterns are used: nothing is sent to a provider to check a value.
Changed
-
Redaction placeholders and report findings are named after the Betterleaks rule when one finds
the token, so[REDACTED:github-v2]becomes[REDACTED:github-pat]andaws-access_keysbecomes
aws-access-token. Shares already published keep their old labels, and the allowlist is
unaffected (it matches values, not rule names). -
Fewer sessions are marked needs review for no reason. Redaction no longer uses the
@sanity-labs/secret-scanlibrary: Betterleaks' rules and overshare's own find secret shapes
alone. That library's generic keyword rules mostly matched things that are not secrets (tool-call
and message ids, code, JSON). The provider formats it was relied on for are still caught, including a
token followed by,,),.or&(Anthropic, OpenAI, Stripe, Groq, Hugging Face, npm, xAI
and others), and a JWT on one line, with a short payload or in pretty-printed JSON, which
overshare's own rules now find. Some placeholders change name with it, such as
[REDACTED:anthropic]becoming[REDACTED:anthropic-key]. -
Opening the viewer with no share in the link shows a start page instead of an error: what
overshare is, a box to open a pasted gist URL or share link, the example session, and how to
share your own. A link whose hash names no share still shows an error, and error pages
link back to the start page.
Fixed
- Redaction catches four kinds of secret it used to miss. A
passwordassignment or an auth header
inside JSON that is itself held in a JSON string ({\"password\":\"…\"}, as in a log line or an
API response a tool printed). A JWT wrapped over several lines. A private key cut off before its
ENDline, as inhead id_rsaor a truncated tool result. And a password that merely starts
with a word liketrue,nullorstring(Trueblue2024), which used to be taken for a
placeholder. A token glued straight onto another one is now redacted too, rather than left for
the final re-scan to block. - Two matches that partly overlap are both redacted in full. Only the longer one used to be, leaving
the rest of the other in the share, too short for any rule (or the final re-scan) to recognise. - Text that merely mentions
[REDACTEDno longer hides a secret written after it, up to the next
], from redaction and from the final re-scan. overshare browsetakes a paste in its search boxes: the session list's/search, the viewer's
message search and the filter in dialogs such as Repo. A paste used to be dropped. Pasted line breaks
and tabs become spaces.- A viewer link with a malformed
%escape after the#shows an error instead of leaving the
viewer stuck on "loading viewer".
v0.2.0
Added
overshare browseshows a shared session's latest link in the preview and the session viewer,
andyprints the whole link in the footer, so it can be copied by hand in terminals without
OSC 52 clipboard support.--include-system-prompt(with--mode full) shares Claude Code's system prompt, redacted like the
rest and shown collapsed above the first turn. Instruction files (CLAUDE.md,AGENTS.md) are still
never shared; docs/redaction.md explains why.- The token rail's charts are easier to read and navigate: hovering a bar shows a card with its
context split into cache read, cache write and uncached input (drawn to scale), its output and
cost, any cache events and, for the turn chart, the prompt, a small chart of the turn's model calls
and its tool calls. Model-call bars in the turn box now go to the step the call produced when
clicked, and their card lists what the call did (thinking, reply, tool calls). - The viewer's loading screen is a short log of what it's doing (fetching from the share's host,
reading the format and size, rendering N turns), with a spinner on the current step and how long
each finished step took. It waits 300ms before showing, so fast loads don't flash it, and a failed
load marks the step that failed above the error.
Removed
- The viewer's
timelineandhybriddesign variants, and the IBM Plex Sans font onlyhybrid
used. Links and saved defaults that name either fall back to the reader's own variant.
Fixed
- Following a link to a different share in the viewer shows the loading screen instead of leaving
the previous session up until the new one renders. A slower earlier load no longer replaces the
newer one when it finishes last. - A share with a malformed tool group (its
callsorcommandsnot a list) no longer stops the
whole session from showing: the transcript shows that turn as a placeholder, as it already did,
and the token rail renders around it. A model-call card shows a step it can't read as
"couldn't be shown" instead of not opening.
Security
overshare serveanddemorefuse requests whoseHostnames a domain other than localhost, an
IP address, the--hostvalue or a name passed to the new--allowed-host, so a web page can't
read the served shares through DNS rebinding.overshare serveno longer serves files beside the viewer directory whose names share its
prefix (e.g.viewer/dist/standalone.htmlvia/s/..%2fstandalone.html).- A Claude Code session rewound to before a longer stretch of work no longer shares the discarded
branch: only the turns on the current branch are exported, in every mode. Before, when the kept
branch held less than half the session's messages, every entry in the file was exported. An
unknown or empty--leafis now an error (Claude Code and pi) instead of exporting the whole file
or, for an empty one, the latest branch.
v0.1.0
Added
- Initial public release of the
overshareCLI (also installed asovs). - Share Claude Code and pi sessions as unlisted links through a secret GitHub gist or a public
Cloudflare R2 bucket, withreport,export,publishanddeletecommands. - Four share modes (
full,brief,minimal,prompts), applied before redaction so omitted
detail is never uploaded. - Layered local redaction: structural drops, exact known values (environment, project
.env
files, opt-in credential stores,--secrets-file), secret patterns, path and email scrubbing,
and a final re-scan of the exact payload that blocks publishing on leftovers. overshare browse, an interactive terminal browser to search, preview and publish local
sessions.- A static, backend-free web viewer with design variants, token and cost rails, cache-miss
detection and subagent usage, plus self-hosting on Cloudflare. - Single-file HTML export (
overshare export -o session.html) that opens offline. overshare demo,serveandfixturesfor trying the viewer on fake sessions without
uploading anything.- Claude Code skill and pi extension integrations (
/share-session).