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)" },