diff --git a/public/og.png b/public/og.png
index a02d17d..322bb0a 100644
Binary files a/public/og.png and b/public/og.png differ
diff --git a/src/app/(site)/quickstart/page.tsx b/src/app/(site)/quickstart/page.tsx
index 5cbc429..5368be2 100644
--- a/src/app/(site)/quickstart/page.tsx
+++ b/src/app/(site)/quickstart/page.tsx
@@ -7,9 +7,9 @@ import CodeBlock from "@/components/CodeBlock";
const SITE_URL = "https://agentdiff.app";
export const metadata: Metadata = {
- title: "Quickstart — Claude Code spend report and CI gate",
+ title: "Quickstart — Claude Code & Codex spend report, and CI gate",
description:
- "Run the AgentDiff spend report on your Claude Code sessions in one command, or set up the trajectory regression gate for agents you build.",
+ "Run the AgentDiff spend report on your Claude Code and Codex sessions in one command, or set up the trajectory regression gate for agents you build.",
keywords: [
"AgentDiff quickstart",
"Claude Code cost report",
@@ -121,7 +121,7 @@ export default function QuickstartPage() {
Your spend report in one command.
- No API keys, no accounts, nothing uploaded. Start with the Claude Code spend report; if you build your own agents, the CI gate is further down this page.
+ No API keys, no accounts, nothing uploaded. Start with the spend report for Claude Code and Codex; if you build your own agents, the CI gate is further down this page.
{/* Fast Proof Points */}
@@ -152,13 +152,13 @@ export default function QuickstartPage() {
- Claude Code spend report
+ Claude Code & Codex spend report
Run it. Read it. Change one habit.
- AgentDiff reads the session logs Claude Code keeps in ~/.claude/projects and prints where the money went and what was avoidable.
+ AgentDiff reads the session logs Claude Code keeps in ~/.claude/projects and Codex keeps in ~/.codex/sessions, and prints where the money went and what was avoidable.
@@ -168,15 +168,16 @@ export default function QuickstartPage() {
@@ -185,6 +186,7 @@ agentdiff
filename="options"
code={`agentdiff # last 7 days
agentdiff --since 30d # 24h, 7d, 30d, 12w … or all
+agentdiff --agent codex # only Codex (or claude)
agentdiff --project api # filter by project name
agentdiff --top 10 # more findings and sessions
agentdiff --json # machine-readable
diff --git a/src/app/layout.tsx b/src/app/layout.tsx
index 0cd767b..0e4d4f8 100644
--- a/src/app/layout.tsx
+++ b/src/app/layout.tsx
@@ -34,11 +34,12 @@ export const metadata: Metadata = {
template: "%s | AgentDiff",
},
description:
- "One command reads your local Claude Code session logs and shows where the money went and what was avoidable: long context, cache rebuilds, stuck retries. Plus a trajectory regression gate for agents you build.",
+ "One command reads your local Claude Code and Codex session logs and shows where the money went and what was avoidable: long context, cache rebuilds, stuck retries. Plus a trajectory regression gate for agents you build.",
applicationName: "AgentDiff",
keywords: [
"Claude Code cost",
"Claude Code usage",
+ "Codex CLI cost",
"AI coding agent spend",
"token usage report",
"prompt caching",
@@ -78,7 +79,7 @@ export const metadata: Metadata = {
},
openGraph: {
title: "AgentDiff - See what your AI coding agent did, and what it cost",
- description: "A local spend report for Claude Code: where the money went and what was avoidable. One command, nothing uploaded.",
+ description: "A local spend report for Claude Code and Codex: where the money went and what was avoidable. One command, nothing uploaded.",
url: "https://agentdiff.app",
siteName: "AgentDiff",
type: "website",
@@ -88,7 +89,7 @@ export const metadata: Metadata = {
url: "/og.png",
width: 1200,
height: 630,
- alt: "AgentDiff - Trajectory Regression Testing for AI Agents",
+ alt: "AgentDiff: see what your AI coding agent actually did, and what it cost",
type: "image/png",
},
],
@@ -96,7 +97,7 @@ export const metadata: Metadata = {
twitter: {
card: "summary_large_image",
title: "AgentDiff - See what your AI coding agent did, and what it cost",
- description: "A local spend report for Claude Code: where the money went and what was avoidable. One command, nothing uploaded.",
+ description: "A local spend report for Claude Code and Codex: where the money went and what was avoidable. One command, nothing uploaded.",
images: ["/og.png"],
},
appleWebApp: {
@@ -123,7 +124,7 @@ const jsonLd = {
url: "https://agentdiff.app/",
name: "AgentDiff",
description:
- "See what your AI coding agent did, and what it cost. A local spend report for Claude Code sessions, plus a trajectory regression gate for agents you build.",
+ "See what your AI coding agent did, and what it cost. A local spend report for Claude Code and Codex sessions, plus a trajectory regression gate for agents you build.",
publisher: { "@id": "https://agentdiff.app/#organization" },
},
{
@@ -141,13 +142,13 @@ const jsonLd = {
operatingSystem: "Any",
url: "https://agentdiff.app/",
description:
- "AgentDiff reads local Claude Code session logs and reports where spend went and what was avoidable. It also gates agents you build in CI against trajectory regressions.",
+ "AgentDiff reads local Claude Code and Codex session logs and reports where spend went and what was avoidable. It also gates agents you build in CI against trajectory regressions.",
offers: {
"@type": "Offer",
price: "0",
priceCurrency: "USD",
},
- softwareVersion: "0.6.0",
+ softwareVersion: "0.7.0",
},
],
};
diff --git a/src/components/ClosingCTA.tsx b/src/components/ClosingCTA.tsx
index 9cdf243..dbb7762 100644
--- a/src/components/ClosingCTA.tsx
+++ b/src/components/ClosingCTA.tsx
@@ -6,8 +6,8 @@ import { ArrowRight, Check, Copy, Terminal } from "lucide-react";
import { Github } from "@lobehub/icons";
import Reveal from "./Reveal";
-const RUN_COMMAND = "uvx --from agent-trajectory-diff agentdiff";
-const GITHUB_ACTION_SNIPPET = `- uses: kerrshift/agentdiff/.github/actions/agentdiff-check@v0.6.0
+const RUN_COMMAND = "npx @kerrshift/agentdiff";
+const GITHUB_ACTION_SNIPPET = `- uses: kerrshift/agentdiff/.github/actions/agentdiff-check@v0.7.0
with:
baseline: baselines/default.envelope.json
candidate: traces/candidate.json`;
diff --git a/src/components/CopyCommand.tsx b/src/components/CopyCommand.tsx
index 457b841..47dffdd 100644
--- a/src/components/CopyCommand.tsx
+++ b/src/components/CopyCommand.tsx
@@ -3,7 +3,9 @@
import React, { useState } from "react";
import { Copy, Check } from "lucide-react";
-export const RUN_COMMAND = "uvx --from agent-trajectory-diff agentdiff";
+export const RUN_COMMAND = "npx @kerrshift/agentdiff";
+export const UVX_COMMAND = "uvx --from agent-trajectory-diff agentdiff";
+export const PLUGIN_COMMAND = "/plugin install agentdiff --marketplace kerrshift/agentdiff";
export const PIP_COMMAND = "pip install agent-trajectory-diff";
export default function CopyCommand({
@@ -40,7 +42,7 @@ export default function CopyCommand({
dark ? "text-[#E8EAED]" : "text-(--fg)"
}`}
>
- ${" "}
+ {!cmd.startsWith("/") && ${" "}}
{cmd}
+
+
+ Also:
+ {ALSO.map((c) => (
+ {c}
+ ))}
+
+
+
@@ -115,7 +128,7 @@ export default function SpendHowItWorks() {
- Supported today: Claude Code. Next: OpenAI Codex CLI. Planned: Gemini CLI, Cursor.
+ Supported: Claude Code and OpenAI Codex CLI. Planned: Gemini CLI, Cursor.
diff --git a/src/components/SpendTerminal.tsx b/src/components/SpendTerminal.tsx
index 7399156..66d9d24 100644
--- a/src/components/SpendTerminal.tsx
+++ b/src/components/SpendTerminal.tsx
@@ -10,7 +10,7 @@ interface Line {
// A real week from the author's own Claude Code logs (session names changed).
// Keep in sync with the README example in kerrshift/agentdiff.
const LINES: Line[] = [
- { t: "$ uvx --from agent-trajectory-diff agentdiff", c: "text-(--fg) font-semibold" },
+ { t: "$ npx @kerrshift/agentdiff", c: "text-(--fg) font-semibold" },
{ t: "" },
{ t: "AgentDiff · Claude Code · last 7d", c: "text-(--fg) font-semibold" },
{ t: "12 sessions · 7 projects · $314.61", c: "text-(--muted)" },