# ACP: The Universal Remote Control for AI Agents — Alex Hancock, Block

Alex Hancock, Block

[Talk page](https://ai.engineer/talks/YkNulwcc5jk-acp-universal-remote-control-ai-agents) · [Video](https://www.youtube.com/watch?v=YkNulwcc5jk)

## ACP: The Universal Remote Control for AI Agents

Alex Hancock explains how the Agent Client Protocol lets different applications drive the same harness, and how remote transports could make clients, harnesses, tools, and models independently placeable.

![Selected presentation frame from ACP: The Universal Remote Control for AI Agents — Alex Hancock, Block at 508 seconds](https://ai.engineer/api/talk-essay-media/0a04a48130868cad2a0a0bbbb2261b6b66f467e11ffb363b6c6a368f369fa33d)

ACP: The Universal Remote Control for AI Agents

### A good harness can still trap you in one application

[0:12](https://www.youtube.com/watch?v=YkNulwcc5jk&t=12s)

An agent harness may offer useful capabilities while leaving you only one application that can control it. Alex Hancock, a software engineer at Block, encounters this problem through his work on Goose, an open-source harness that began inside Block and was donated to the Linux Foundation. He also maintains the Rust SDK for the Model Context Protocol, or MCP. His opening joke about not implementing MCP tasks—blaming his own laziness—sets a practical tone: standards need people to implement them before they help users.

![Selected presentation frame from ACP: The Universal Remote Control for AI Agents — Alex Hancock, Block at 178 seconds](https://ai.engineer/api/talk-essay-media/a1f8cc1ba89996e2045cea964941d781a69b65f71591926475126e961bffbecd)

A good harness can still trap you in one application

The problem is the bespoke interface between an application and its harness. When each harness expects its own way of receiving instructions and returning updates, client software must accommodate those differences. In the worst case Hancock describes, exactly one client can drive a particular harness. His web analogy makes the cost familiar: imagine needing a different browser for every website. The choice of underlying service would also dictate the interface you use.

MCP supplies a useful precedent on the other side of the agent. It gives agents a shared way to call tools, read resources, and act in external systems. Hancock locates its greatest strength in adoption: many servers become useful to many agents because they share the protocol. The missing counterpart is a shared way for client software to assign work to an agent and receive updates about that work.

### One editor implementation, many harnesses

[3:12](https://www.youtube.com/watch?v=YkNulwcc5jk&t=192s)

The Agent Client Protocol, or ACP, emerged from the Zed and JetBrains teams. Their immediate need was straightforward: build one high-quality agent client inside an editor, then use that implementation with different harnesses. Sending tasks, receiving results, and showing which files an agent edits should not require a separate client implementation for every harness. [3:12](https://www.youtube.com/watch?v=YkNulwcc5jk&t=192s)

![Selected presentation frame from ACP: The Universal Remote Control for AI Agents — Alex Hancock, Block at 216 seconds](https://ai.engineer/api/talk-essay-media/c6bf9e69b9e913e345e9e660a08d166342a0247db1f6468dad28ecfab568a653)

One editor implementation, many harnesses

Goose's team saw room to use the same interface beyond editors. ACP has relatively few editor-specific features, so the application controlling an agent could take another form. The architectural decision is to keep the client-to-harness conversation general enough that a terminal, desktop application, or other client can express work and display progress without becoming an editor.

### Sessions carry work, progress, and permission requests

[4:12](https://www.youtube.com/watch?v=YkNulwcc5jk&t=252s)

An ACP interaction starts with a connection between a client and a harness, with capabilities associated with that connection. The client can then create sessions and send user messages within them. Those messages may originate from a person typing into an application or from client software acting on its own. Sessions give the subsequent replies and updates a place in the interaction.

![Selected presentation frame from ACP: The Universal Remote Control for AI Agents — Alex Hancock, Block at 276 seconds](https://ai.engineer/api/talk-essay-media/c47e16370e52d540476bda39ca8581f072c847f6c9b09bafa1d047383e286c2a)

Sessions carry work, progress, and permission requests

The return path carries several kinds of information:

- **Content:** The agent can respond with text, images, or audio.
- **Tool activity:** A tool-call notification identifies the tool and supplies metadata about the call, allowing the client to show what the agent is doing as work proceeds.
- **Permission requests:** The harness can send a request that the client presents to the user as a decision about whether a tool call should proceed.

This gives the client more to render than a final answer. It can make ongoing work visible and bring a user into a decision when permission is needed.

ACP uses JSON-RPC messages and permits custom methods with an underscore prefix. That extension convention lets projects add behavior beyond the shared protocol. Hancock's proposed path to standardization begins with actual use: if different client and harness projects develop similar extensions, those recurring needs can become candidates for the protocol itself.

The tradeoff is between a common implementation and room to experiment. A custom method creates space for a project-specific feature; moving a useful pattern into the shared protocol makes it available through a common interface. Extensions therefore supply evidence for future design decisions, while the base protocol supplies the interoperability that clients can already build around.

### The same HTML project, through Zed and a terminal

[6:12](https://www.youtube.com/watch?v=YkNulwcc5jk&t=372s)

The first demonstration follows one small task through two interfaces. In Zed, Hancock asks Goose to explain a project containing a single HTML file. Zed sends the request through Goose's ACP interface. Goose returns text and tool-call information describing what it read and did, then identifies the single-file project and explains it. The client displays both the activity and the resulting explanation. [6:12](https://www.youtube.com/watch?v=YkNulwcc5jk&t=372s)

Next, a terminal-based client from Poolside AI receives the same request in the same project. It connects to the same agent, displays text and a tool call, and streams a summary. The observable change is the application presenting the interaction: an editor gives way to a terminal, while Goose continues to handle the work through one harness-side ACP implementation.

Both clients communicate locally over standard I/O. The demonstration makes the separation concrete: the client sends the task and renders the updates; Goose performs the agent work and emits those updates through its common interface. Changing clients preserves that division of responsibility, so the terminal does not need to become a second implementation of Goose's agent loop.

### Remote transport makes four components movable

[7:13](https://www.youtube.com/watch?v=YkNulwcc5jk&t=433s)

Local standard I/O connects applications on one machine, but cloud-hosted harnesses need a network path. When Goose's team joined the ACP work, the protocol lacked remote support. They specified an HTTP transport with a WebSocket upgrade. At the time of the recording, this transport was just landing; the design kept the messages and protocol semantics the same while changing how they traveled. [7:13](https://www.youtube.com/watch?v=YkNulwcc5jk&t=433s)

![Selected presentation frame from ACP: The Universal Remote Control for AI Agents — Alex Hancock, Block at 546 seconds](https://ai.engineer/api/talk-essay-media/48377395a193e0a3851b093b39497e6a4eda3bb87bace2416dfc483e68e5ee40)

Remote transport makes four components movable

Where does each protocol sit, and which component must move with which? The topology below answers that question. Goose's model of the stack has four parts: a client, a harness implementing the tool-calling loop, the tools, and the model. ACP joins the client to the harness. MCP commonly joins the harness to tools. Model endpoints supply another network connection. The harness sits at the junction of these relationships; the tools and model are separate participants rather than steps downstream of the client interface.

Once each connection can cross a network, placement becomes a choice for each component. All four could run on the same machine. The harness could run elsewhere while the client stays local. Alternatively, only the tools or only the model could be remote. The transport work matters because a common message format alone does not provide these deployment choices: the connections also need a way to reach another machine.

A final demonstration uses a client Hancock built the previous night to ask Goose to write a poem. This client reaches the same process over the network, although both still run on his machine. It demonstrates the network transport rather than a cloud deployment. A container or cloud-hosted harness is the proposed next placement; the attraction is that the messages and client library remain the same when switching between local and remote communication.

Three connections around the harness
Remote transports let the client, harness, tools, and model occupy different machines while preserving their roles.
- Client — User-facing application or headless software that sends work and receives updates.
- Harness — Runs the tool-calling loop; Goose supplies the ACP interface in the demonstrations.
- Tools — External actions and data, commonly reached through MCP.
- Model — May be local or accessed through a remote model endpoint.
- Client → Harness (ACP: sessions and user messages)
- Harness → Client (ACP: content, tool updates, permission requests)
- Harness → Tools (MCP, including remote tool calling)
- Harness → Model (Model endpoint)

### Let clients compete on the experience

[9:13](https://www.youtube.com/watch?v=YkNulwcc5jk&t=553s)

The closing invitation is to build clients or add ACP support to harnesses. Hancock describes an emerging range of editors, desktop applications, mobile applications, and terminal clients. His suggested uses extend that variety:

- **Personal clients:** An interface tailored to how one person wants to orchestrate agents.
- **Business clients:** Applications organized around a particular domain or company's needs.
- **White-label clients:** A customized interface that works with multiple harnesses through the common protocol.

![Selected presentation frame from ACP: The Universal Remote Control for AI Agents — Alex Hancock, Block at 582 seconds](https://ai.engineer/api/talk-essay-media/aeb8a3da2c590756cd2347e1c890ff4c37ce54d8d1c8286f600d1467c4319b58)

Let clients compete on the experience

The intended incentive follows from being able to switch. If a client fails to meet a user's needs, interoperability gives that user another place to go while retaining access to compatible harnesses. Client developers then have a reason to compete on interaction quality. Hancock expects this market to improve the experience of using AI; that remains a forecast dependent on adoption and useful alternatives, rather than an outcome established by the demonstrations.

## Key takeaways

- ACP supplies the client-to-harness interface for assigning work and receiving updates; MCP supplies connectivity from agents to external tools and data.
- Sessions can carry user messages, multimodal replies, tool-call notifications, and permission requests, giving clients information to display during work.
- Zed and Poolside AI's terminal client drive the same Goose agent through one harness-side ACP implementation, demonstrating a change of interface without replacing the agent.
- Remote ACP, remote MCP, and model endpoints make the placement of clients, harnesses, tools, and models independently configurable.
- Underscore-prefixed custom methods allow experimentation; repeated patterns across projects can inform additions to the shared protocol.

## Resources

- [Durable, resumable HTTP transport proposal](https://github.com/alexhancock/agent-client-protocol/blob/8b917fd5c7f0d6b0116cb8689322e93c0df44725/docs/rfds/durable-resumable-http-transport.mdx) — A subsequent proposal linked by Hancock for reconnecting and resuming ACP connections to cloud-hosted agents. It extends the remote-transport topic beyond the recording's same-machine network demonstration.

## Related talks

- [Building an ACP-Compatible Agent Live — Bennet Fenner, Zed](https://ai.engineer/talks/HsxQICTLF84-building-acp-compatible-agent-live) — A practical next recording for moving from ACP's client–harness separation to building a compatible agent.
- [Scaling Agents on Kubernetes with acpx and ACP](https://ai.engineer/talks/VaS2h-dY1-4-scaling-agents-on-kubernetes-acpx-acp) — Continues the deployment question raised by making the harness remotely reachable.

## Slides

### About the speaker

Alex Hancock works on Goose, an open-source harness that began at Block, and on MCP’s Rust SDK.

[0:33](https://www.youtube.com/watch?v=YkNulwcc5jk&t=33s) [A black slide lists Block, Goose, and MCP and ACP under the heading “me.”](https://assets.ai.engineer/sites/aiecode2025/sha256/f4f2208eca4ca81e81bfc013a7efe1475f2a16fbc8f1d7c3152a5eb5036af2b6.webp)

me

block since way back

goose

MCP & ACP

Interface text:
Chrome  File  Edit  View  History  Bookmarks  Profiles  Tab  Window  Help
Wed Jul 1 3:46 PM
remote - the universal remote
index.html
Ask Gemini
File  /Users/alexhancock/Talks/2026-07-01%20-%20AI%20Engineer%20SF/AIE/index.html
Work

### Harness interfaces

Harness interfaces are often bespoke, sometimes leaving only one client to control a harness. Hancock compares this to needing a different browser for each website; the diagram shows a disconnected client and harness.

[1:21](https://www.youtube.com/watch?v=YkNulwcc5jk&t=81s) [A slide compares bespoke client-to-harness interfaces to needing one browser per website, beside a disconnected browser and harness diagram.](https://assets.ai.engineer/sites/aiecode2025/sha256/17ba40f5783bf7f89a8b7f6a9c3f286bcf93d214157760bd713a11d1b4a6cdeb.webp)

harness interfaces

bespoke

often 1-to-1 client to harness

web: one browser per website

we can do better!

Interface text:
Chrome  File  Edit  View  History  Bookmarks  Profiles  Tab  Window  Help
remote - the universal remote
index.html
Ask Gemini
File  /Users/alexhancock/Talks/2026-07-01%20-%20AI%20Engineer%20SF/AIE/index.html
Work
Wed Jul 1 3:47 PM

### Standards create ecosystems and markets

Hancock argues that MCP lets agents call tools and access data, while client software still needs a standard for assigning tasks and receiving updates. A hub-and-spoke diagram illustrates an ecosystem around a shared standard.

[2:19](https://www.youtube.com/watch?v=YkNulwcc5jk&t=139s) [A slide says MCP lets agents do things and asks how to tell an agent what to do, beside a hub-and-spoke diagram.](https://assets.ai.engineer/sites/aiecode2025/sha256/9eeaecc2fe19dd366cd07bf3d291bbbe85e2cfa908a143068a1a5199ab286f38.webp)

standards create ecosystems & markets

mcp: agent does things

???: tell agent what to do

Interface text:
Chrome  File  Edit  View  History  Bookmarks  Profiles  Tab  Window  Help
Wed Jul 1 3:48 PM
remote - the universal remote
index.html
Ask Gemini
File  /Users/alexhancock/Talks/2026-07-01%20-%20AI%20Engineer%20SF/AIE/index.html
Work

### The standard we need

Zed and JetBrains proposed ACP so a client can control multiple agent harnesses. The diagram links three windows to a central agent; Hancock sees potential for clients beyond editors.

[3:14](https://www.youtube.com/watch?v=YkNulwcc5jk&t=194s) [A slide introduces ACP and lists editor companies, control of multiple agents, and broader utility; a diagram connects three client windows to an agent.](https://assets.ai.engineer/sites/aiecode2025/sha256/021f2a098d74c2324aa1c0f7696728bcef88324317587e589c282b40ca3f7da1.webp)

the standard we need

ACP: agent client protocol

– editor companies
– control multiple agents
– broader utility

Interface text:
Chrome  File  Edit  View  History  Bookmarks  Profiles  Tab  Window  Help
Wed Jul 1 3:49 PM
remote · the universal remote
index.html
Ask Gemini
File  /Users/alexhancock/Talks/2026-07-01%20-%20AI%20Engineer%20SF/AIE/index.html
Work

### ACP

ACP connects a client to an agent, establishes a session, and sends user messages for the agent to answer. It uses JSON-RPC and supports custom methods.

[4:27](https://www.youtube.com/watch?v=YkNulwcc5jk&t=267s) [A slide lists ACP sessions, user messages, agent responses, JSON-RPC, and extensibility, alongside a client-agent sequence diagram.](https://assets.ai.engineer/sites/aiecode2025/sha256/44871bb957e42ae399cdd8ecae3bd730d094e0e9493dfe7cb8e051eac5356bdb.webp)

acp

create sessions
send user messages
(text/image/audio)
agent responds
JSON-RPC
extensible

Diagram:
PROTOCOL
A SESSION
acp
client
agent
initialize
capabilities handshake
session/new
open a session
session/prompt
user message
processing...
JSON-RPC
stdio / http / ws

Interface text:
Chrome  File  Edit  View  History  Bookmarks  Profiles  Tab  Window  Help
remote · the universal remote
index.html
Ask Gemini
File  /Users/alexhancock/Talks/2026-07-01%20-%20AI%20Engineer%20SF/AIE/index.html
Work
Wed Jul 1 3:50 PM

### Zed project summary

In Zed, Goose reads the project’s HTML file and returns a summary alongside the source. The demo uses Goose’s ACP interface to send text and tool-call information back to Zed.

[6:36](https://www.youtube.com/watch?v=YkNulwcc5jk&t=396s) [Zed shows an agent's summary of a sailing history website beside its HTML source.](https://assets.ai.engineer/sites/aiecode2025/sha256/93fd1a064d5989ece251653f66a27f533f2f1a720446ef66cfac84d1b9149ee5.webp)

Project information request

reading index html file

This is a single-page website celebrating the sailing history of Rhode Island — a polished, self-contained marketing/educational landing page.

Overview
• Structure: A single index.html file (~1K lines) with everything inline — no build tools, frameworks, or dependencies beyond a Google Fonts import (Playfair Display + Source Sans Pro).
• Theme: Nautical/maritime aesthetic with a navy-and-gold color palette, ocean gradients, and emoji-based iconography.

Content sections
1. Hero — Animated compass and drifting waves, headline “The Sailing Heritage of Rhode Island.”
2. Intro (“Where America Learned to Sail”) — History narrative plus stat cards (400+ miles of coastline, 1663 Royal Charter, 53 years hosting the Cup, 100+ yacht clubs).
3. Timeline — 9 milestones from the pre-1600s Narragansett navigators through the Gaspee Affair (1772), America’s Cup era, the 1983 loss to Australia II, and today.
4. Landmarks — 6 cards: [illegible]

index.html
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Sailing History of Rhode Island</title>
  <style>
    @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wg[illegible]

    * { margin: 0; padding: 0; box-sizing: border-box; }

    :root {
      --navy: #1a2744;
      --deep-blue: #1e3a5f;
      --ocean: #2e6b8a;
      --sky: #5ba4cf;
      --sand: #f5efe6;
      --cream: #faf8f4;
      --gold: #c9a84c;
      --rope: #8b7355;
      --white: #ffffff;
      --text: #2c2c2c;
    }

    html { scroll-behavior: smooth; }

    body {
      font-family: 'Source Sans Pro', sans-serif;

Interface text:
Zed  File  Edit  Selection  View  Go  Run  Window  Help
ri-sailing-history
Restart to Update  Sign In
Message goose — @ to include context
Databricks  auto  Claude Opus 4.8  high

### Terminal client demonstration

The Pool terminal client connects to the same goose agent over local standard I/O, then lists the project directory and reads index.html.

[6:54](https://www.youtube.com/watch?v=YkNulwcc5jk&t=414s) [A terminal client inspects a project and reads its HTML file.](https://assets.ai.engineer/sites/aiecode2025/sha256/000d65510b807e71e1f21aad7e0214b877d124cc0fe89f53bea5aa3184aea75f.webp)

pool v1.0.7

shift+tab  Cycle mode
ctrl+m     Select model
ctrl+t     Toggle tool grouping
ctrl+g     Open prompt in editor
?          Show all keyboard shortcuts
/          Show available slash commands

Connected to agent server: goose v1.39.0

> Tell me about this project

I'll take a look at this project for you.

displaying project directory structure
└ index.html [1K]

read · /Users/alexhancock/Development/ri-sailing-history/index.html

Working… (6s · Press esc to interrupt)

Interface text:
Ghostty  File  Edit  View  Window  Help
pool — ri-sailing-history
~/Development/ri-sailing-history
./target/release/goose serve
~/Development/goose
auto
~/Development/ri-sailing-history
Claude Opus 4.8
Wed Jul 1 3:52 PM

### Remote HTTP and WebSocket demo

HTTP transport with a WebSocket upgrade lets the client and harness communicate remotely while preserving protocol messages and semantics. The harness runs the tool-calling loop and connects to the model and tools.

[7:16](https://www.youtube.com/watch?v=YkNulwcc5jk&t=436s) [A diagram connects a client, harness, model and tools.](https://assets.ai.engineer/sites/aiecode2025/sha256/5f8dc9a3944f9554f74396e496d1430b98b3499212ddf5cbe07744c004e32957.webp)

remote
(http/ws) demo

client
harness (loop)
model
tools

Interface text:
Chrome  File  Edit  View  History  Bookmarks  Profiles  Tab  Window  Help
remote - the universal remote
index.html
File  /Users/alexhancock/Talks/2026-07-01%20-%20AI%20Engineer%20SF/AIE/index.html
Ask Gemini
Work
Wed Jul 1 3:53 PM

### Remote client demonstration

A browser client sends “Write a poem” to Goose over a WebSocket. Goose begins responding while the client shows a thinking status; the agent process is running on the same machine.

[8:45](https://www.youtube.com/watch?v=YkNulwcc5jk&t=525s) [A browser client streams a poem from a remote Goose agent.](https://assets.ai.engineer/sites/aiecode2025/sha256/6647abc2c90cfd8df40a664aac03347bb911b1f3fb1229e3bc3a3980ac181206.webp)

the universal remote for ai
agent client protocol · direct to a remote goose
thinking

REMOTE  ws://127.0.0.1:3284/acp  connect

YOU  Write a poem

GOOSE  Here's a poem for you:

The Quiet Hour

The evening folds its amber light
across the rooftops, soft and slow,
while somewhere far, a first star breaks
the

send a message to goose...
send

Interface text:
Chrome  File  Edit  View  History  Bookmarks  Profiles  Tab  Window  Help
Wed Jul 1 3:54 PM
remote - the universal remote
index.html
Ask Gemini
File  /Users/alexhancock/Development/pocs/acp-static-client/index.html
Work

### The ecosystem today

The slide counts 74 clients and 35 agent servers. Hancock envisions tailored clients for individuals and businesses, with avoiding lock-in among the use cases.

[9:19](https://www.youtube.com/watch?v=YkNulwcc5jk&t=559s) [A slide lists 74 clients, 35 agents, client types and use cases beside a QR code.](https://assets.ai.engineer/sites/aiecode2025/sha256/2ba8d07e3fe636e8b8821b47963710ebeb02e98e6aa35288ea7a7bcb96a06432.webp)

the ecosystem today

74 clients

35 agents (servers)

clients: editors, CLIs, mobile & more

use-cases: tailored frontends, avoid lock-in, client quality++

Interface text:
Chrome  File  Edit  View  History  Bookmarks  Profiles  Tab  Window  Help
remote - the universal remote
index.html
Ask Gemini
File  /Users/alexhancock/Talks/2026-07-01%20-%20AI%20Engineer%20SF/AIE/index.html
Work
Wed Jul 1 3:55 PM

### AI Engineer World's Fair

[10:48](https://www.youtube.com/watch?v=YkNulwcc5jk&t=648s) [AI Engineer World's Fair logo in white on a black background.](https://assets.ai.engineer/sites/aiecode2025/sha256/16f325e3c6547a51ee83af7429887981bd681a6a8af5061419dd15b9ce8d146d.webp)

AI Engineer
World’s Fair

HTTPS://AI.ENGINEER

## Full transcript

[0:01](https://www.youtube.com/watch?v=YkNulwcc5jk&t=1s) [music]

[0:12](https://www.youtube.com/watch?v=YkNulwcc5jk&t=12s) >> Hey everybody.

[0:13](https://www.youtube.com/watch?v=YkNulwcc5jk&t=13s) Um

[0:14](https://www.youtube.com/watch?v=YkNulwcc5jk&t=14s) my name's Alex Hancock. Today I'm going

[0:16](https://www.youtube.com/watch?v=YkNulwcc5jk&t=16s) to talk about a universal remote control

[0:18](https://www.youtube.com/watch?v=YkNulwcc5jk&t=18s) for AI.

[0:19](https://www.youtube.com/watch?v=YkNulwcc5jk&t=19s) And before I start, I just want to say

[0:20](https://www.youtube.com/watch?v=YkNulwcc5jk&t=20s) the previous speaker said that MCP

[0:21](https://www.youtube.com/watch?v=YkNulwcc5jk&t=21s) client maintainers haven't implemented

[0:23](https://www.youtube.com/watch?v=YkNulwcc5jk&t=23s) support for tasks because they're smart.

[0:25](https://www.youtube.com/watch?v=YkNulwcc5jk&t=25s) I'm an MCP client maintainer. I can tell

[0:27](https://www.youtube.com/watch?v=YkNulwcc5jk&t=27s) you it's just because I'm lazy. I

[0:29](https://www.youtube.com/watch?v=YkNulwcc5jk&t=29s) haven't done it.

[0:30](https://www.youtube.com/watch?v=YkNulwcc5jk&t=30s) Um

[0:32](https://www.youtube.com/watch?v=YkNulwcc5jk&t=32s) Okay. So, a little bit about me before

[0:34](https://www.youtube.com/watch?v=YkNulwcc5jk&t=34s) we start. I am a software engineer at

[0:36](https://www.youtube.com/watch?v=YkNulwcc5jk&t=36s) Block, which is the parent company of

[0:38](https://www.youtube.com/watch?v=YkNulwcc5jk&t=38s) Cash App and Square and Title. We have a

[0:41](https://www.youtube.com/watch?v=YkNulwcc5jk&t=41s) few different things going on now. Um

[0:43](https://www.youtube.com/watch?v=YkNulwcc5jk&t=43s) and I've worked there for a long time. I

[0:44](https://www.youtube.com/watch?v=YkNulwcc5jk&t=44s) worked on Square product stuff and Cash

[0:46](https://www.youtube.com/watch?v=YkNulwcc5jk&t=46s) App stuff, but I've been doing open

[0:47](https://www.youtube.com/watch?v=YkNulwcc5jk&t=47s) source AI for the last couple years.

[0:49](https://www.youtube.com/watch?v=YkNulwcc5jk&t=49s) Specifically, I work on this open source

[0:51](https://www.youtube.com/watch?v=YkNulwcc5jk&t=51s) harness project called Goose, which

[0:54](https://www.youtube.com/watch?v=YkNulwcc5jk&t=54s) started as an internal project at Block.

[0:57](https://www.youtube.com/watch?v=YkNulwcc5jk&t=57s) Yeah, some Goose fans out there. And

[0:59](https://www.youtube.com/watch?v=YkNulwcc5jk&t=59s) then uh yeah, we open sourced it and we

[1:01](https://www.youtube.com/watch?v=YkNulwcc5jk&t=61s) donated it to the Linux Foundation. So,

[1:03](https://www.youtube.com/watch?v=YkNulwcc5jk&t=63s) now the IP is there, but we still lots

[1:05](https://www.youtube.com/watch?v=YkNulwcc5jk&t=65s) of us from Block still work on it.

[1:07](https://www.youtube.com/watch?v=YkNulwcc5jk&t=67s) Um I'm also a maintainer of MCP, the

[1:10](https://www.youtube.com/watch?v=YkNulwcc5jk&t=70s) Model Context Protocol. I work on the

[1:12](https://www.youtube.com/watch?v=YkNulwcc5jk&t=72s) Rust SDK for that project. And more

[1:15](https://www.youtube.com/watch?v=YkNulwcc5jk&t=75s) recently, I've also started some work on

[1:18](https://www.youtube.com/watch?v=YkNulwcc5jk&t=78s) ACP, the Agent Client Protocol, which is

[1:20](https://www.youtube.com/watch?v=YkNulwcc5jk&t=80s) what I'm going to talk about today.

[1:23](https://www.youtube.com/watch?v=YkNulwcc5jk&t=83s) So, I think I think we have an issue

[1:25](https://www.youtube.com/watch?v=YkNulwcc5jk&t=85s) with harnesses that I want to I want to

[1:27](https://www.youtube.com/watch?v=YkNulwcc5jk&t=87s) try to put to you all today,

[1:29](https://www.youtube.com/watch?v=YkNulwcc5jk&t=89s) uh propose to you all today as a problem

[1:31](https://www.youtube.com/watch?v=YkNulwcc5jk&t=91s) and then and then recommend a a

[1:33](https://www.youtube.com/watch?v=YkNulwcc5jk&t=93s) solution.

[1:34](https://www.youtube.com/watch?v=YkNulwcc5jk&t=94s) So, what I've been noticing recently

[1:37](https://www.youtube.com/watch?v=YkNulwcc5jk&t=97s) is that we've got lots of great

[1:38](https://www.youtube.com/watch?v=YkNulwcc5jk&t=98s) harnesses out there, right? There are

[1:40](https://www.youtube.com/watch?v=YkNulwcc5jk&t=100s) ones from the labs, there are one from

[1:42](https://www.youtube.com/watch?v=YkNulwcc5jk&t=102s) ones from different companies, there's

[1:43](https://www.youtube.com/watch?v=YkNulwcc5jk&t=103s) lots of open standards-based ones.

[1:45](https://www.youtube.com/watch?v=YkNulwcc5jk&t=105s) Um but I noticed that the interface to

[1:47](https://www.youtube.com/watch?v=YkNulwcc5jk&t=107s) them

[1:48](https://www.youtube.com/watch?v=YkNulwcc5jk&t=108s) is often custom or bespoke. And in in

[1:51](https://www.youtube.com/watch?v=YkNulwcc5jk&t=111s) the worst case, it's like you might have

[1:53](https://www.youtube.com/watch?v=YkNulwcc5jk&t=113s) some harnesses where there's literally

[1:54](https://www.youtube.com/watch?v=YkNulwcc5jk&t=114s) only one client application you can use

[1:56](https://www.youtube.com/watch?v=YkNulwcc5jk&t=116s) to control that harness, right? And I

[2:00](https://www.youtube.com/watch?v=YkNulwcc5jk&t=120s) think this has a couple issues with it,

[2:01](https://www.youtube.com/watch?v=YkNulwcc5jk&t=121s) but the analogy that I'll make with the

[2:03](https://www.youtube.com/watch?v=YkNulwcc5jk&t=123s) web is it would be like if you had to

[2:06](https://www.youtube.com/watch?v=YkNulwcc5jk&t=126s) use one browser or a

[2:08](https://www.youtube.com/watch?v=YkNulwcc5jk&t=128s) one given protocol to connect to a to

[2:11](https://www.youtube.com/watch?v=YkNulwcc5jk&t=131s) every website, right? That just wouldn't

[2:12](https://www.youtube.com/watch?v=YkNulwcc5jk&t=132s) work. You wouldn't have something like

[2:14](https://www.youtube.com/watch?v=YkNulwcc5jk&t=134s) the open web if if that were the reality

[2:17](https://www.youtube.com/watch?v=YkNulwcc5jk&t=137s) with browsers. And so I think we can do

[2:19](https://www.youtube.com/watch?v=YkNulwcc5jk&t=139s) better.

[2:20](https://www.youtube.com/watch?v=YkNulwcc5jk&t=140s) And the thing about standards by finding

[2:22](https://www.youtube.com/watch?v=YkNulwcc5jk&t=142s) a standard and the thing about standards

[2:24](https://www.youtube.com/watch?v=YkNulwcc5jk&t=144s) is that they create ecosystems and

[2:26](https://www.youtube.com/watch?v=YkNulwcc5jk&t=146s) markets.

[2:27](https://www.youtube.com/watch?v=YkNulwcc5jk&t=147s) And I would argue that in the agentic AI

[2:30](https://www.youtube.com/watch?v=YkNulwcc5jk&t=150s) space, we have a good standard for the

[2:33](https://www.youtube.com/watch?v=YkNulwcc5jk&t=153s) agent going out and doing things, right?

[2:36](https://www.youtube.com/watch?v=YkNulwcc5jk&t=156s) Calling tools, taking actions in other

[2:38](https://www.youtube.com/watch?v=YkNulwcc5jk&t=158s) systems, reading resources, reading

[2:40](https://www.youtube.com/watch?v=YkNulwcc5jk&t=160s) data. We've all benefited as a community

[2:42](https://www.youtube.com/watch?v=YkNulwcc5jk&t=162s) from having MCP.

[2:44](https://www.youtube.com/watch?v=YkNulwcc5jk&t=164s) Right? And the most powerful thing about

[2:46](https://www.youtube.com/watch?v=YkNulwcc5jk&t=166s) MCP is not anything about MCP itself,

[2:50](https://www.youtube.com/watch?v=YkNulwcc5jk&t=170s) but it's that everyone uses MCP.

[2:52](https://www.youtube.com/watch?v=YkNulwcc5jk&t=172s) And that's why we have, you know,

[2:53](https://www.youtube.com/watch?v=YkNulwcc5jk&t=173s) thousands or tens of thousands of

[2:55](https://www.youtube.com/watch?v=YkNulwcc5jk&t=175s) servers around the world and all the

[2:57](https://www.youtube.com/watch?v=YkNulwcc5jk&t=177s) agents can connect to them and go and do

[2:59](https://www.youtube.com/watch?v=YkNulwcc5jk&t=179s) things in those other systems.

[3:02](https://www.youtube.com/watch?v=YkNulwcc5jk&t=182s) I would say that we don't yet have a

[3:04](https://www.youtube.com/watch?v=YkNulwcc5jk&t=184s) good solution or a standard for client

[3:08](https://www.youtube.com/watch?v=YkNulwcc5jk&t=188s) software to tell agents what to do.

[3:11](https://www.youtube.com/watch?v=YkNulwcc5jk&t=191s) Giving it tasks, telling it what to work

[3:13](https://www.youtube.com/watch?v=YkNulwcc5jk&t=193s) on and getting updates.

[3:15](https://www.youtube.com/watch?v=YkNulwcc5jk&t=195s) And so

[3:17](https://www.youtube.com/watch?v=YkNulwcc5jk&t=197s) I'm going to put forward an option today

[3:19](https://www.youtube.com/watch?v=YkNulwcc5jk&t=199s) that I think is a good option that that

[3:21](https://www.youtube.com/watch?v=YkNulwcc5jk&t=201s) we on our team have been working on and

[3:23](https://www.youtube.com/watch?v=YkNulwcc5jk&t=203s) we think is a good a good solution in

[3:25](https://www.youtube.com/watch?v=YkNulwcc5jk&t=205s) the open standards space.

[3:27](https://www.youtube.com/watch?v=YkNulwcc5jk&t=207s) And this is ACP, so agent client

[3:29](https://www.youtube.com/watch?v=YkNulwcc5jk&t=209s) protocol

[3:30](https://www.youtube.com/watch?v=YkNulwcc5jk&t=210s) is the name of this project and it came

[3:32](https://www.youtube.com/watch?v=YkNulwcc5jk&t=212s) from the editor companies. It came from

[3:34](https://www.youtube.com/watch?v=YkNulwcc5jk&t=214s) like if you've used the Zed text editor

[3:37](https://www.youtube.com/watch?v=YkNulwcc5jk&t=217s) or you've used any of JetBrains

[3:39](https://www.youtube.com/watch?v=YkNulwcc5jk&t=219s) products, the Zed folks and the

[3:40](https://www.youtube.com/watch?v=YkNulwcc5jk&t=220s) JetBrains JetBrains folks teamed up and

[3:43](https://www.youtube.com/watch?v=YkNulwcc5jk&t=223s) proposed a standard for

[3:45](https://www.youtube.com/watch?v=YkNulwcc5jk&t=225s) um clients to be able to control

[3:47](https://www.youtube.com/watch?v=YkNulwcc5jk&t=227s) harnesses. And it makes sense if you put

[3:48](https://www.youtube.com/watch?v=YkNulwcc5jk&t=228s) yourself in their shoes, right? What

[3:49](https://www.youtube.com/watch?v=YkNulwcc5jk&t=229s) they wanted to be able to do is write a

[3:52](https://www.youtube.com/watch?v=YkNulwcc5jk&t=232s) single high quality client

[3:53](https://www.youtube.com/watch?v=YkNulwcc5jk&t=233s) implementation in an editor, maybe in

[3:55](https://www.youtube.com/watch?v=YkNulwcc5jk&t=235s) Zed or in IntelliJ or something like

[3:57](https://www.youtube.com/watch?v=YkNulwcc5jk&t=237s) that, and be able to control any harness

[4:00](https://www.youtube.com/watch?v=YkNulwcc5jk&t=240s) by with that single client

[4:02](https://www.youtube.com/watch?v=YkNulwcc5jk&t=242s) implementation, sending tasks, getting

[4:04](https://www.youtube.com/watch?v=YkNulwcc5jk&t=244s) results back,

[4:06](https://www.youtube.com/watch?v=YkNulwcc5jk&t=246s) seeing what files are being edited, etc.

[4:08](https://www.youtube.com/watch?v=YkNulwcc5jk&t=248s) It makes a ton of sense if you put

[4:09](https://www.youtube.com/watch?v=YkNulwcc5jk&t=249s) yourself in their shoes, right? But we

[4:11](https://www.youtube.com/watch?v=YkNulwcc5jk&t=251s) saw this on the Goose team, and we think

[4:14](https://www.youtube.com/watch?v=YkNulwcc5jk&t=254s) that there is a much broader utility

[4:16](https://www.youtube.com/watch?v=YkNulwcc5jk&t=256s) than just editors, right? So it's a

[4:19](https://www.youtube.com/watch?v=YkNulwcc5jk&t=259s) it's it's relatively neutral and it

[4:20](https://www.youtube.com/watch?v=YkNulwcc5jk&t=260s) doesn't have many editor specific

[4:22](https://www.youtube.com/watch?v=YkNulwcc5jk&t=262s) features. And so we think that this can

[4:23](https://www.youtube.com/watch?v=YkNulwcc5jk&t=263s) can go to a be spread to a wider range

[4:27](https://www.youtube.com/watch?v=YkNulwcc5jk&t=267s) of client software.

[4:28](https://www.youtube.com/watch?v=YkNulwcc5jk&t=268s) To go into a little bit more depth about

[4:31](https://www.youtube.com/watch?v=YkNulwcc5jk&t=271s) ACP's design and and what you can do

[4:32](https://www.youtube.com/watch?v=YkNulwcc5jk&t=272s) with it,

[4:34](https://www.youtube.com/watch?v=YkNulwcc5jk&t=274s) it lets you establish connections

[4:36](https://www.youtube.com/watch?v=YkNulwcc5jk&t=276s) between clients and agent harnesses that

[4:39](https://www.youtube.com/watch?v=YkNulwcc5jk&t=279s) have a given

[4:40](https://www.youtube.com/watch?v=YkNulwcc5jk&t=280s) a set of capabilities associated with

[4:42](https://www.youtube.com/watch?v=YkNulwcc5jk&t=282s) the the connection, and then you can

[4:45](https://www.youtube.com/watch?v=YkNulwcc5jk&t=285s) make sessions. Within sessions, you can

[4:47](https://www.youtube.com/watch?v=YkNulwcc5jk&t=287s) send user messages, the things that a

[4:49](https://www.youtube.com/watch?v=YkNulwcc5jk&t=289s) user is maybe typing into the app or

[4:51](https://www.youtube.com/watch?v=YkNulwcc5jk&t=291s) that the client software wants to send.

[4:53](https://www.youtube.com/watch?v=YkNulwcc5jk&t=293s) The agent can then respond to those with

[4:56](https://www.youtube.com/watch?v=YkNulwcc5jk&t=296s) text,

[4:57](https://www.youtube.com/watch?v=YkNulwcc5jk&t=297s) uh more images or audio, text, etc., or

[5:00](https://www.youtube.com/watch?v=YkNulwcc5jk&t=300s) updates about what's going on. So like,

[5:02](https://www.youtube.com/watch?v=YkNulwcc5jk&t=302s) if a tool is called, it can send a tool

[5:04](https://www.youtube.com/watch?v=YkNulwcc5jk&t=304s) call notification and explain what tool

[5:06](https://www.youtube.com/watch?v=YkNulwcc5jk&t=306s) was called and what the metadata was.

[5:08](https://www.youtube.com/watch?v=YkNulwcc5jk&t=308s) Um and it can also send things like

[5:10](https://www.youtube.com/watch?v=YkNulwcc5jk&t=310s) permission requests, so that if the

[5:12](https://www.youtube.com/watch?v=YkNulwcc5jk&t=312s) client software needs to show the user,

[5:14](https://www.youtube.com/watch?v=YkNulwcc5jk&t=314s) you know, "Should I do this tool call?

[5:16](https://www.youtube.com/watch?v=YkNulwcc5jk&t=316s) Yes or no?" It can go over this uh

[5:19](https://www.youtube.com/watch?v=YkNulwcc5jk&t=319s) this protocol. And it's it's pretty

[5:21](https://www.youtube.com/watch?v=YkNulwcc5jk&t=321s) simple in its design. Uh it uses JSON

[5:24](https://www.youtube.com/watch?v=YkNulwcc5jk&t=324s) RPC messages, and the thing we like

[5:26](https://www.youtube.com/watch?v=YkNulwcc5jk&t=326s) about it most is that it's extensible as

[5:28](https://www.youtube.com/watch?v=YkNulwcc5jk&t=328s) well, so you're not limited to just

[5:29](https://www.youtube.com/watch?v=YkNulwcc5jk&t=329s) what's in the vanilla protocol. You can

[5:32](https://www.youtube.com/watch?v=YkNulwcc5jk&t=332s) add custom methods. So the

[5:34](https://www.youtube.com/watch?v=YkNulwcc5jk&t=334s) the convention is you put an underscore,

[5:37](https://www.youtube.com/watch?v=YkNulwcc5jk&t=337s) and then you start to put your custom

[5:38](https://www.youtube.com/watch?v=YkNulwcc5jk&t=338s) methods. And the thing I like about this

[5:40](https://www.youtube.com/watch?v=YkNulwcc5jk&t=340s) is that if enough harness projects or

[5:42](https://www.youtube.com/watch?v=YkNulwcc5jk&t=342s) client projects adopt this,

[5:44](https://www.youtube.com/watch?v=YkNulwcc5jk&t=344s) we can start to see what we're all doing

[5:45](https://www.youtube.com/watch?v=YkNulwcc5jk&t=345s) that's the same,

[5:47](https://www.youtube.com/watch?v=YkNulwcc5jk&t=347s) right? Like if the Codex team has some

[5:49](https://www.youtube.com/watch?v=YkNulwcc5jk&t=349s) custom methods, the Goose team has some

[5:50](https://www.youtube.com/watch?v=YkNulwcc5jk&t=350s) custom methods,

[5:52](https://www.youtube.com/watch?v=YkNulwcc5jk&t=352s) uh the client team has some custom

[5:53](https://www.youtube.com/watch?v=YkNulwcc5jk&t=353s) methods, whoever, we can see what

[5:55](https://www.youtube.com/watch?v=YkNulwcc5jk&t=355s) emerges in the in the ecosystem and what

[5:58](https://www.youtube.com/watch?v=YkNulwcc5jk&t=358s) makes sense to get on a standards track

[6:00](https://www.youtube.com/watch?v=YkNulwcc5jk&t=360s) and bring into the protocol itself so

[6:02](https://www.youtube.com/watch?v=YkNulwcc5jk&t=362s) that this is sort of shaped by usage and

[6:04](https://www.youtube.com/watch?v=YkNulwcc5jk&t=364s) shaped by the community.

[6:06](https://www.youtube.com/watch?v=YkNulwcc5jk&t=366s) Um I'm going to do a demo

[6:08](https://www.youtube.com/watch?v=YkNulwcc5jk&t=368s) of a standard IO version of this. So,

[6:12](https://www.youtube.com/watch?v=YkNulwcc5jk&t=372s) I'm going to open Zed and I just have a

[6:14](https://www.youtube.com/watch?v=YkNulwcc5jk&t=374s) really simple project here

[6:17](https://www.youtube.com/watch?v=YkNulwcc5jk&t=377s) where I'll say, "Tell me about this

[6:19](https://www.youtube.com/watch?v=YkNulwcc5jk&t=379s) project." And so, this is a single HTML

[6:21](https://www.youtube.com/watch?v=YkNulwcc5jk&t=381s) file.

[6:22](https://www.youtube.com/watch?v=YkNulwcc5jk&t=382s) So, you can see I was able to type my

[6:24](https://www.youtube.com/watch?v=YkNulwcc5jk&t=384s) query into Zed and this is the agent in

[6:26](https://www.youtube.com/watch?v=YkNulwcc5jk&t=386s) play here is Goose, so it's using

[6:28](https://www.youtube.com/watch?v=YkNulwcc5jk&t=388s) Goose's ACP interface.

[6:30](https://www.youtube.com/watch?v=YkNulwcc5jk&t=390s) And it's you can see it's like sending

[6:31](https://www.youtube.com/watch?v=YkNulwcc5jk&t=391s) text back, it's sending tool call

[6:33](https://www.youtube.com/watch?v=YkNulwcc5jk&t=393s) information back

[6:35](https://www.youtube.com/watch?v=YkNulwcc5jk&t=395s) um about what it read and what it did

[6:37](https://www.youtube.com/watch?v=YkNulwcc5jk&t=397s) and then it found, you know, that it's a

[6:38](https://www.youtube.com/watch?v=YkNulwcc5jk&t=398s) single HTML file and then explained it.

[6:41](https://www.youtube.com/watch?v=YkNulwcc5jk&t=401s) And I'll do another

[6:42](https://www.youtube.com/watch?v=YkNulwcc5jk&t=402s) I'll do another one. This is one from a

[6:44](https://www.youtube.com/watch?v=YkNulwcc5jk&t=404s) company called Poolside AI.

[6:47](https://www.youtube.com/watch?v=YkNulwcc5jk&t=407s) Uh

[6:48](https://www.youtube.com/watch?v=YkNulwcc5jk&t=408s) I'll say, "Tell me about this project."

[6:50](https://www.youtube.com/watch?v=YkNulwcc5jk&t=410s) In the same project. And so, this is a

[6:52](https://www.youtube.com/watch?v=YkNulwcc5jk&t=412s) terminal-based client getting exactly

[6:54](https://www.youtube.com/watch?v=YkNulwcc5jk&t=414s) the same experience from the same agent,

[6:56](https://www.youtube.com/watch?v=YkNulwcc5jk&t=416s) one implementation on the harness side,

[6:59](https://www.youtube.com/watch?v=YkNulwcc5jk&t=419s) and you can now use any client. Right?

[7:01](https://www.youtube.com/watch?v=YkNulwcc5jk&t=421s) And so, you can see it did the same

[7:02](https://www.youtube.com/watch?v=YkNulwcc5jk&t=422s) thing. It showed me

[7:04](https://www.youtube.com/watch?v=YkNulwcc5jk&t=424s) some text results back, it showed a tool

[7:05](https://www.youtube.com/watch?v=YkNulwcc5jk&t=425s) call, and then it showed a It's it's

[7:07](https://www.youtube.com/watch?v=YkNulwcc5jk&t=427s) streaming in a summary.

[7:09](https://www.youtube.com/watch?v=YkNulwcc5jk&t=429s) Um

[7:10](https://www.youtube.com/watch?v=YkNulwcc5jk&t=430s) So, that's a basic demo showing two

[7:11](https://www.youtube.com/watch?v=YkNulwcc5jk&t=431s) clients talking to the same agent

[7:15](https://www.youtube.com/watch?v=YkNulwcc5jk&t=435s) uh over standard IO locally in this

[7:16](https://www.youtube.com/watch?v=YkNulwcc5jk&t=436s) case.

[7:18](https://www.youtube.com/watch?v=YkNulwcc5jk&t=438s) But local obviously isn't enough, right?

[7:20](https://www.youtube.com/watch?v=YkNulwcc5jk&t=440s) If you want this to take off, you have

[7:21](https://www.youtube.com/watch?v=YkNulwcc5jk&t=441s) to be able to do remote as well. Agents

[7:23](https://www.youtube.com/watch?v=YkNulwcc5jk&t=443s) are going to be running in the cloud.

[7:25](https://www.youtube.com/watch?v=YkNulwcc5jk&t=445s) And so, when we came to this project, we

[7:27](https://www.youtube.com/watch?v=YkNulwcc5jk&t=447s) saw that it did not have remote support

[7:28](https://www.youtube.com/watch?v=YkNulwcc5jk&t=448s) yet. So, we specified an HTTP transport.

[7:32](https://www.youtube.com/watch?v=YkNulwcc5jk&t=452s) There's an HTTP version and there's a

[7:33](https://www.youtube.com/watch?v=YkNulwcc5jk&t=453s) websocket upgrade. And so now, the

[7:36](https://www.youtube.com/watch?v=YkNulwcc5jk&t=456s) messages are the same, the protocol

[7:38](https://www.youtube.com/watch?v=YkNulwcc5jk&t=458s) semantics are the same, but there's a

[7:39](https://www.youtube.com/watch?v=YkNulwcc5jk&t=459s) new transport that is just landing now

[7:41](https://www.youtube.com/watch?v=YkNulwcc5jk&t=461s) that enables remote.

[7:43](https://www.youtube.com/watch?v=YkNulwcc5jk&t=463s) And

[7:45](https://www.youtube.com/watch?v=YkNulwcc5jk&t=465s) the way we think about this on the Goose

[7:47](https://www.youtube.com/watch?v=YkNulwcc5jk&t=467s) team, the agentic stack, is there's sort

[7:48](https://www.youtube.com/watch?v=YkNulwcc5jk&t=468s) of these four important components,

[7:50](https://www.youtube.com/watch?v=YkNulwcc5jk&t=470s) right? You have the client,

[7:52](https://www.youtube.com/watch?v=YkNulwcc5jk&t=472s) which is like the app that the user is

[7:53](https://www.youtube.com/watch?v=YkNulwcc5jk&t=473s) using or a headless app running

[7:55](https://www.youtube.com/watch?v=YkNulwcc5jk&t=475s) somewhere on a machine. There's the

[7:57](https://www.youtube.com/watch?v=YkNulwcc5jk&t=477s) harness, which is the program that

[7:59](https://www.youtube.com/watch?v=YkNulwcc5jk&t=479s) implements the tool calling loop.

[8:01](https://www.youtube.com/watch?v=YkNulwcc5jk&t=481s) There are the tools themselves. This

[8:03](https://www.youtube.com/watch?v=YkNulwcc5jk&t=483s) often MCP. And then there's the model,

[8:05](https://www.youtube.com/watch?v=YkNulwcc5jk&t=485s) right? And if you do a remote transport

[8:08](https://www.youtube.com/watch?v=YkNulwcc5jk&t=488s) for the agent client protocol,

[8:11](https://www.youtube.com/watch?v=YkNulwcc5jk&t=491s) and MCP has remote transport for tool

[8:14](https://www.youtube.com/watch?v=YkNulwcc5jk&t=494s) calling,

[8:15](https://www.youtube.com/watch?v=YkNulwcc5jk&t=495s) and the models have kind of all had

[8:16](https://www.youtube.com/watch?v=YkNulwcc5jk&t=496s) remote endpoints like responses APIs for

[8:19](https://www.youtube.com/watch?v=YkNulwcc5jk&t=499s) a long time. Now you have the

[8:20](https://www.youtube.com/watch?v=YkNulwcc5jk&t=500s) flexibility to move all of these four

[8:22](https://www.youtube.com/watch?v=YkNulwcc5jk&t=502s) components around. They could all be on

[8:24](https://www.youtube.com/watch?v=YkNulwcc5jk&t=504s) the same machine. The harness could be

[8:26](https://www.youtube.com/watch?v=YkNulwcc5jk&t=506s) on a different machine than the client.

[8:28](https://www.youtube.com/watch?v=YkNulwcc5jk&t=508s) Uh the model could be the only thing

[8:30](https://www.youtube.com/watch?v=YkNulwcc5jk&t=510s) that's remote. The tools could be the

[8:32](https://www.youtube.com/watch?v=YkNulwcc5jk&t=512s) only thing that's remote. Uh aligning on

[8:34](https://www.youtube.com/watch?v=YkNulwcc5jk&t=514s) standards and making sure that they have

[8:36](https://www.youtube.com/watch?v=YkNulwcc5jk&t=516s) good transport stories is what's going

[8:38](https://www.youtube.com/watch?v=YkNulwcc5jk&t=518s) to let us move all the pieces of this

[8:40](https://www.youtube.com/watch?v=YkNulwcc5jk&t=520s) agentic stack around.

[8:43](https://www.youtube.com/watch?v=YkNulwcc5jk&t=523s) And I can show a quick demo of this as

[8:45](https://www.youtube.com/watch?v=YkNulwcc5jk&t=525s) well.

[8:46](https://www.youtube.com/watch?v=YkNulwcc5jk&t=526s) So, this is a a client just to show how

[8:49](https://www.youtube.com/watch?v=YkNulwcc5jk&t=529s) easy it is to create clients for this. I

[8:51](https://www.youtube.com/watch?v=YkNulwcc5jk&t=531s) just live-coded this, you know, last

[8:53](https://www.youtube.com/watch?v=YkNulwcc5jk&t=533s) night. And I'll say, "Write a poem." So,

[8:57](https://www.youtube.com/watch?v=YkNulwcc5jk&t=537s) this is again connecting to that same

[8:58](https://www.youtube.com/watch?v=YkNulwcc5jk&t=538s) process on my machine.

[9:01](https://www.youtube.com/watch?v=YkNulwcc5jk&t=541s) Uh in this case I'm running it over the

[9:02](https://www.youtube.com/watch?v=YkNulwcc5jk&t=542s) network, but it's on my machine. It's

[9:03](https://www.youtube.com/watch?v=YkNulwcc5jk&t=543s) connecting and sending Goose

[9:05](https://www.youtube.com/watch?v=YkNulwcc5jk&t=545s) instructions for what to do uh remotely.

[9:08](https://www.youtube.com/watch?v=YkNulwcc5jk&t=548s) So, this could be in a container, could

[9:10](https://www.youtube.com/watch?v=YkNulwcc5jk&t=550s) be up in the cloud, but the messages are

[9:12](https://www.youtube.com/watch?v=YkNulwcc5jk&t=552s) the same and the library you use is the

[9:14](https://www.youtube.com/watch?v=YkNulwcc5jk&t=554s) same. So, you can just switch between

[9:16](https://www.youtube.com/watch?v=YkNulwcc5jk&t=556s) local and remote very, very easily.

[9:19](https://www.youtube.com/watch?v=YkNulwcc5jk&t=559s) Um

[9:21](https://www.youtube.com/watch?v=YkNulwcc5jk&t=561s) So, if you want to get plugged into this

[9:23](https://www.youtube.com/watch?v=YkNulwcc5jk&t=563s) ecosystem, start experimenting with

[9:25](https://www.youtube.com/watch?v=YkNulwcc5jk&t=565s) support, either making your own clients

[9:26](https://www.youtube.com/watch?v=YkNulwcc5jk&t=566s) or adding stuff to harnesses, this is a

[9:29](https://www.youtube.com/watch?v=YkNulwcc5jk&t=569s) this will link you to the agent client

[9:30](https://www.youtube.com/watch?v=YkNulwcc5jk&t=570s) protocol site for

[9:32](https://www.youtube.com/watch?v=YkNulwcc5jk&t=572s) how to get started. There's a number of

[9:34](https://www.youtube.com/watch?v=YkNulwcc5jk&t=574s) clients and and agent servers are out

[9:36](https://www.youtube.com/watch?v=YkNulwcc5jk&t=576s) there. This ranges from editors, desktop

[9:39](https://www.youtube.com/watch?v=YkNulwcc5jk&t=579s) applications, mobile applications,

[9:41](https://www.youtube.com/watch?v=YkNulwcc5jk&t=581s) terminal based things, like there's a

[9:43](https://www.youtube.com/watch?v=YkNulwcc5jk&t=583s) proliferation.

[9:45](https://www.youtube.com/watch?v=YkNulwcc5jk&t=585s) And

[9:46](https://www.youtube.com/watch?v=YkNulwcc5jk&t=586s) I I think the use cases are are are

[9:49](https://www.youtube.com/watch?v=YkNulwcc5jk&t=589s) potentially huge, right? If we if we get

[9:50](https://www.youtube.com/watch?v=YkNulwcc5jk&t=590s) some interoperability going here because

[9:52](https://www.youtube.com/watch?v=YkNulwcc5jk&t=592s) you can have people can make personal

[9:54](https://www.youtube.com/watch?v=YkNulwcc5jk&t=594s) clients that's exactly how you want it

[9:56](https://www.youtube.com/watch?v=YkNulwcc5jk&t=596s) orchestrating your agents. You could

[9:58](https://www.youtube.com/watch?v=YkNulwcc5jk&t=598s) have sort of clients created for certain

[10:00](https://www.youtube.com/watch?v=YkNulwcc5jk&t=600s) business domains or an individual

[10:02](https://www.youtube.com/watch?v=YkNulwcc5jk&t=602s) company or a set of clients from a

[10:05](https://www.youtube.com/watch?v=YkNulwcc5jk&t=605s) company you could customize like a white

[10:07](https://www.youtube.com/watch?v=YkNulwcc5jk&t=607s) label

[10:08](https://www.youtube.com/watch?v=YkNulwcc5jk&t=608s) client have it work with all the

[10:09](https://www.youtube.com/watch?v=YkNulwcc5jk&t=609s) harnesses. And I also think if we make a

[10:11](https://www.youtube.com/watch?v=YkNulwcc5jk&t=611s) new category here,

[10:13](https://www.youtube.com/watch?v=YkNulwcc5jk&t=613s) we're going to see quality of the

[10:15](https://www.youtube.com/watch?v=YkNulwcc5jk&t=615s) clients go up, right? Because any

[10:16](https://www.youtube.com/watch?v=YkNulwcc5jk&t=616s) anytime you get an ecosystem or a

[10:18](https://www.youtube.com/watch?v=YkNulwcc5jk&t=618s) marketplace going and there's many

[10:19](https://www.youtube.com/watch?v=YkNulwcc5jk&t=619s) options,

[10:20](https://www.youtube.com/watch?v=YkNulwcc5jk&t=620s) users can vote with their feet if

[10:22](https://www.youtube.com/watch?v=YkNulwcc5jk&t=622s) clients aren't meeting their needs and

[10:24](https://www.youtube.com/watch?v=YkNulwcc5jk&t=624s) so people will start to compete on the

[10:25](https://www.youtube.com/watch?v=YkNulwcc5jk&t=625s) quality of the user experience and and

[10:27](https://www.youtube.com/watch?v=YkNulwcc5jk&t=627s) like overall I think this should drive

[10:29](https://www.youtube.com/watch?v=YkNulwcc5jk&t=629s) up uh

[10:30](https://www.youtube.com/watch?v=YkNulwcc5jk&t=630s) the user experience of using AI.

[10:33](https://www.youtube.com/watch?v=YkNulwcc5jk&t=633s) That's what I've got today. Thank you

[10:34](https://www.youtube.com/watch?v=YkNulwcc5jk&t=634s) very much. And if you want to chat with

[10:36](https://www.youtube.com/watch?v=YkNulwcc5jk&t=636s) me, find me after or send me an email.

[10:39](https://www.youtube.com/watch?v=YkNulwcc5jk&t=639s) Um happy to get you plugged into this

[10:41](https://www.youtube.com/watch?v=YkNulwcc5jk&t=641s) work.

[10:42](https://www.youtube.com/watch?v=YkNulwcc5jk&t=642s) Thank you.

[10:57](https://www.youtube.com/watch?v=YkNulwcc5jk&t=657s) >> [music]
