Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 7 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,13 @@
<!-- hraness:gobstopper-landing:start -->
# Gobstopper

> 🍬 Gobstopper is a tool for saving tokens while preserving context.
> Compaction is the process built into your harness that automatically
> compresses long conversations to fit inside the context window. Gobstopper
> is a replacement for the compaction built into Claude Code and Codex. It
> proxies API requests and compacts more often, which saves tokens. Your
> agent’s full history stays on your machine, and compacted session copies are
> archived in a local vault your agents can search. On Terminal-Bench 2.1,
> Gobstopper used 29% fewer tokens than Claude Code’s built-in compaction and
> solved as many tasks.
> 🍬 Gobstopper saves tokens while preserving context. Compaction is the step
> your harness runs to squeeze a long conversation into the context window.
> Gobstopper replaces the compaction built into Claude Code and Codex. It
> proxies API requests, compacts more often to save tokens, and writes the full
> history to a local database your agents can search. On Terminal-Bench 2.1 it
> used 29% fewer tokens than Claude Code's built-in compaction and solved the
> same number of tasks.
>
> Ask your agent to set it up: https://gobstopper.sh
>
Expand Down
9 changes: 5 additions & 4 deletions site/app/globals.css
Original file line number Diff line number Diff line change
Expand Up @@ -849,12 +849,13 @@ a[href]:where(:hover, :focus-visible) { text-decoration-color: currentColor; }
.founder-note__emoji { font-size: 2rem; line-height: 1; padding-block-start: 0.2rem; }
.founder-note__body { display: grid; gap: 0.9rem; }
.founder-note__body p {
margin: 0; font-size: 1.125rem; line-height: 1.6; text-wrap: pretty; hanging-punctuation: first;
margin: 0; font-family: var(--font-note, "Instrument Serif", "Iowan Old Style", "Palatino Linotype", Palatino, serif);
font-size: 1.375rem; line-height: 1.5; text-wrap: pretty; hanging-punctuation: first;
}
.founder-note__action { font-weight: 550; }
.founder-note__body .founder-note__signature { color: var(--muted); font-size: 0.95rem; }
.founder-note__action { font-weight: 400; }
.founder-note__body .founder-note__signature { color: var(--muted); font-size: 1.25rem; }
.founder-note__signature::before { content: "— "; }
@media (max-width: 40rem) {
.founder-note { grid-template-columns: minmax(0, 1fr); gap: 0.75rem; }
.founder-note__body p { font-size: 1.0625rem; }
.founder-note__body p { font-size: 1.25rem; }
}
2 changes: 1 addition & 1 deletion site/app/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ export default function Home() {
<FounderNote
emoji="🍬"
paragraphs={[
"Gobstopper is a tool for saving tokens while preserving context. Compaction is the process built into your harness that automatically compresses long conversations to fit inside the context window. Gobstopper is a replacement for the compaction built into Claude Code and Codex. It proxies API requests and compacts more often, which saves tokens. Your agent\u2019s full history stays on your machine, and compacted session copies are archived in a local vault your agents can search. On Terminal-Bench 2.1, Gobstopper used 29% fewer tokens than Claude Code\u2019s built-in compaction and solved as many tasks.",
"Gobstopper saves tokens while preserving context. Compaction is the step your harness runs to squeeze a long conversation into the context window. Gobstopper replaces the compaction built into Claude Code and Codex. It proxies API requests, compacts more often to save tokens, and writes the full history to a local database your agents can search. On Terminal-Bench 2.1 it used 29% fewer tokens than Claude Code's built-in compaction and solved the same number of tasks.",
]}
action={{ label: "Ask your agent to set it up:", href: "https://gobstopper.sh" }}
signature="Ben Guo"
Expand Down
4 changes: 2 additions & 2 deletions site/app/readme.generated.ts

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion site/scripts/readme-html.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ test("extracts the landing block between the shared Hraness markers", async () =
expect(source.indexOf(LANDING_END)).toBeGreaterThan(source.indexOf(LANDING_START));
const landing = readmeLanding(source);
expect(landing.title).toBe("Gobstopper");
expect(landing.lead).toStartWith("🍬 Gobstopper is a tool for saving tokens while preserving context.");
expect(landing.lead).toStartWith("🍬 Gobstopper saves tokens while preserving context.");
expect(landing.lead).not.toContain(">");
expect(landing.markdown).toMatch(/cannot ask providers to compact,\s+even when `auto_compact_closed` is enabled/u);
});
Expand Down
Loading