Skip to content
Open
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
4 changes: 2 additions & 2 deletions components/console/McpConnectPanel.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -270,7 +270,7 @@ function HarnessRow({
>
{connected ? (
<p className="mt-1 text-[12.5px] leading-[1.5] text-fg-muted">
Ask {harness.name} to generate something — Livepeer Agent answers.
Ask {harness.name} to generate something — Livepeer answers.
</p>
) : (
<>
Expand Down Expand Up @@ -318,7 +318,7 @@ export default function McpConnectPanel() {
variant="default"
className="mt-7 mb-3 flex items-end justify-between gap-3"
title="Agent runtimes"
description="Add Livepeer Agent to the runtimes you use — copy the line for yours and paste it in."
description="Add Livepeer to the runtimes you use — copy the line for yours and paste it in."
action={
<span className="font-mono text-[11px] tabular-nums text-fg-faint">
{loading
Expand Down
18 changes: 9 additions & 9 deletions components/livepeer-ui/agent-scroller-page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -95,29 +95,29 @@ const nonShowcaseCapabilities = new Set([
const storyContent = [
{
id: "studio",
title: "Livepeer Agent turns any harness into your dream production studio",
body: "Brings image, video, audio, 3D, editing, rendering, and production tools into your agent’s workflows with Livepeer Agent.",
title: "Livepeer turns any harness into your dream production studio",
body: "Brings image, video, audio, 3D, editing, rendering, and production tools into your agent’s workflows with Livepeer.",
theme: "base",
layout: "hero",
},
{
id: "routing",
title: "The right model for every request",
body: "Livepeer Agent understands the work you’re asking for and routes it to the model best suited to handle it.",
body: "Livepeer understands the work you’re asking for and routes it to the model best suited to handle it.",
theme: "inverse",
layout: "split",
},
{
id: "pricing",
title: "Pay for the work, not a subscription",
body: "Livepeer Agent shows the real price of every render before it runs. Keep a balance in USD and pay only for the compute you use—no credits, plans, or hidden conversion.",
body: "Livepeer shows the real price of every render before it runs. Keep a balance in USD and pay only for the compute you use—no credits, plans, or hidden conversion.",
theme: "base",
layout: "split",
},
{
id: "workflow",
title: "Run any part of your workflow",
body: "Send one step or an entire production through Livepeer Agent while keeping the files, applications, and processes you already use.",
body: "Send one step or an entire production through Livepeer while keeping the files, applications, and processes you already use.",
theme: "inverse",
layout: "split",
},
Expand Down Expand Up @@ -409,7 +409,7 @@ function CapabilityFamilyLogoAnimation({
ref={orbitRef}
className="relative h-[16rem] w-full max-w-4xl overflow-hidden [transform-style:preserve-3d] sm:h-[21rem]"
style={{ perspective: ORBIT_PERSPECTIVE }}
aria-label="Model and tool families available through Livepeer Agent"
aria-label="Model and tool families available through Livepeer"
>
{logos.map((logo) => (
<div
Expand Down Expand Up @@ -491,7 +491,7 @@ function FooterScene({
<div className="mx-auto flex w-full max-w-screen-2xl flex-col items-center gap-10 text-center">
<LivepeerSymbol className="h-16 w-auto" />
<h2 className="max-w-6xl font-display text-display-sm text-balance sm:text-display-lg">
Livepeer Agent. Keep creating.
Livepeer. Keep creating.
</h2>
<JoinWaitlistControl defaultExpanded />
</div>
Expand Down Expand Up @@ -573,7 +573,7 @@ function DesktopAgentScrollerPage({
},
{
id: "footer",
title: "Livepeer Agent. Keep creating.",
title: "Livepeer. Keep creating.",
theme: "base",
layout: "footer",
media: [],
Expand Down Expand Up @@ -1311,7 +1311,7 @@ function MobileAgentScrollerPage({
<div className="mx-auto flex max-w-xl flex-col items-center gap-10 text-center">
<LivepeerSymbol className="h-16 w-auto" />
<h2 className="font-display text-display-sm text-balance">
Livepeer Agent. Keep creating.
Livepeer. Keep creating.
</h2>
<JoinWaitlistControl defaultExpanded smoothTheme />
</div>
Expand Down
8 changes: 4 additions & 4 deletions components/livepeer-ui/frozen-content.ts
Original file line number Diff line number Diff line change
Expand Up @@ -110,29 +110,29 @@ export const featuredMedia = {
id: "routing-capabilities",
kind: "video" as const,
src: "/media-2026-08-08-141651/capabilities.mp4",
alt: "Livepeer Agent capabilities video",
alt: "Livepeer capabilities video",
},
pricing: {
id: "pricing-usage",
kind: "image" as const,
src: "/media-2026-08-08-145138/usage.png",
alt: "Livepeer Agent usage and balance screen",
alt: "Livepeer usage and balance screen",
fit: "portrait" as const,
accentFrame: true,
},
workflow: {
id: "workflow-demo",
kind: "image" as const,
src: "/media-2026-08-08-174438/demosc.png",
alt: "Livepeer Agent workflow demo with three production images and reusable prompts",
alt: "Livepeer workflow demo with three production images and reusable prompts",
fit: "portrait" as const,
accentFrame: true,
},
compatible: {
id: "compatible-claude-code",
kind: "video" as const,
src: "/media-2026-08-08-145310/claudecode.mp4",
alt: "Livepeer Agent running with Claude Code",
alt: "Livepeer running with Claude Code",
coverBottomEdge: true,
},
} as const;
Expand Down
8 changes: 4 additions & 4 deletions components/livepeer-ui/waitlist-header-auth.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -637,7 +637,7 @@ function FixedWaitlistSignIn({
submitting={state.status === "submitting"}
>
<DialogHeader className="sr-only">
<DialogTitle>Sign in to Livepeer Agent</DialogTitle>
<DialogTitle>Sign in to Livepeer</DialogTitle>
<DialogDescription>
Enter the email you used to join the waitlist.
</DialogDescription>
Expand All @@ -647,7 +647,7 @@ function FixedWaitlistSignIn({
) : (
<>
<h2 className="font-display text-display-sm text-balance sm:text-display-md">
Sign in to Livepeer Agent
Sign in to Livepeer
</h2>
<form
id={formId}
Expand Down Expand Up @@ -747,7 +747,7 @@ function WaitlistJoinDialog({
render={<button type="button" />}
className="flex h-8 shrink-0 items-center text-[10px] leading-none font-semibold underline-offset-4 hover:underline"
>
Livepeer Agent Early Access
Livepeer Early Access
</DialogTrigger>
<DialogContent
showCloseButton={false}
Expand All @@ -762,7 +762,7 @@ function WaitlistJoinDialog({
<DialogHeader className="sr-only">
<DialogTitle>Sign up for early access</DialogTitle>
<DialogDescription>
Enter your email to join the Livepeer Agent waitlist.
Enter your email to join the Livepeer waitlist.
</DialogDescription>
</DialogHeader>
{state.status === "verification-pending" ? (
Expand Down
2 changes: 1 addition & 1 deletion lib/console/activity-media.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import { mapSignedTicketToActivityRow } from "./signed-ticket-activity";
const ticket = {
time: "2026-09-04T22:17:00.000Z",
clientId: "app_test",
appName: "Livepeer Agent",
appName: "Livepeer",
externalUserId: "eu_test",
gatewayRequestId: "job_abc",
pipeline: "fixed",
Expand Down
6 changes: 3 additions & 3 deletions lib/console/capability-modality.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,7 @@ test("signed-ticket rows with price-unit pipelines surface modality, not f", ()
const row = mapSignedTicketToActivityRow({
time: "2026-09-04T22:17:00.000Z",
clientId: "app_test",
appName: "Livepeer Agent",
appName: "Livepeer",
externalUserId: "eu_test",
gatewayRequestId: "1469f5d0",
pipeline: "fixed",
Expand All @@ -169,15 +169,15 @@ test("signed-ticket rows with price-unit pipelines surface modality, not f", ()
});
assert.equal(row.modality, "t2i");
assert.equal(row.pipeline, "text-to-image");
assert.equal(row.signerLabel, "Livepeer Agent");
assert.equal(row.signerLabel, "Livepeer");
assert.equal(row.costDisplay, "$0.0010");
});

test("signed-ticket rows without a media modality are realtime live jobs", () => {
const row = mapSignedTicketToActivityRow({
time: "2026-09-04T22:17:00.000Z",
clientId: "app_test",
appName: "Livepeer Agent",
appName: "Livepeer",
externalUserId: "eu_test",
gatewayRequestId: "persist-1",
pipeline: "hour",
Expand Down
2 changes: 1 addition & 1 deletion lib/console/dev-mock.ts
Original file line number Diff line number Diff line change
Expand Up @@ -983,7 +983,7 @@ function buildRequests(limit: number, cursor: string | null) {
return {
time: new Date(Date.now() - minutesAgo * 60_000).toISOString(),
clientId: "cli_devmock",
appName: "Livepeer Agent",
appName: "Livepeer",
externalUserId: "eu_devmock",
gatewayRequestId: `req_${(0x100000 + index * 7919).toString(16)}`,
pipeline: cap.pipeline,
Expand Down
11 changes: 5 additions & 6 deletions lib/console/harness-connections.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,9 @@ import { MCP_SERVER_URL } from "@/lib/constants";
*
* Vocabulary: in code these are harnesses (the team's word). In the UI they
* are AGENT RUNTIMES — Adam's call. It is what an MCP host actually is, and
* it collides with nothing: "harness" is jargon a creator won't recognise,
* bare "agent" is the product they connect to (Livepeer Agent), and "app" is
* what this console already calls a capability. The direction in copy is
* always "add Livepeer Agent TO the runtime" — the runtime is the host.
* "harness" is jargon a creator won't recognise, and "app" is what this
* console already calls a capability. The product is Livepeer. The direction in copy is
* always "add Livepeer TO the runtime" — the runtime is the host.
*
* Order is deliberate — Claude first because it's the one most creators
* already have, then Codex, then Hermes.
Expand Down Expand Up @@ -56,7 +55,7 @@ export const HARNESSES: Harness[] = [
name: "Codex",
blurb: "Paste this and let Codex wire it up.",
kind: "prompt",
snippet: `Add the Livepeer Agent MCP server at ${MCP_SERVER_URL} and sign in when the browser opens.`,
snippet: `Add the Livepeer MCP server at ${MCP_SERVER_URL} and sign in when the browser opens.`,
caption: "Paste this into Codex.",
},
{
Expand All @@ -66,7 +65,7 @@ export const HARNESSES: Harness[] = [
name: "Hermes Agent",
blurb: "Paste this into a new session.",
kind: "prompt",
snippet: `Connect to the Livepeer Agent MCP server at ${MCP_SERVER_URL} and sign in when the browser opens.`,
snippet: `Connect to the Livepeer MCP server at ${MCP_SERVER_URL} and sign in when the browser opens.`,
caption: "Paste this into Hermes Agent.",
},
];
Expand Down
2 changes: 1 addition & 1 deletion lib/mcp/mcp-server.ts
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ async function sendRunProgress(
export function buildRawMcpServer(principal: McpPrincipal): McpServer {
const pid = principalId(principal);
const server = new McpServer({
name: "Livepeer Agent MCP",
name: "Livepeer MCP",
version: "0.1.0",
description:
"Raw Livepeer MCP: name a capability, pass its exact inputs, get that capability. No planner.",
Expand Down
2 changes: 1 addition & 1 deletion lib/mcp/oauth.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ export function mcpIdentityBody(req: Request) {
const origin = mcpPublicOrigin(req);
return {
...prmBody(req),
name: "Livepeer Agent MCP",
name: "Livepeer MCP",
profile: "raw",
statement:
"Deterministic passthrough: name a capability, pass its exact inputs, get exactly that capability.",
Expand Down