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

Read the talk

ACP: A Common Control Interface for AI Agents

Alex Hancock explains how the Agent Client Protocol separates the application a user chooses from the harness that runs an agent, then demonstrates local and network connections to Goose.

From a talk by Alex Hancock

At a glance

Ideas worth remembering

  • ACP addresses the client-to-harness boundary: submitting work and receiving responses, progress, and permission requests. MCP addresses the harness’s access to tools and resources.

  • ACP uses JSON RPC and underscore-prefixed custom methods. Hancock proposes using recurring extension patterns across projects to guide future standardization.

  • Zed and a Poolside AI terminal client demonstrate the same basic interaction with Goose through one harness interface over local standard input/output.

  • Remote interfaces can separate the placement of client, harness, tools, and model. The transport work was described as just landing, and the network demonstration still ran on Hancock’s own machine.

  • The proposed payoff is a market for personal, domain-specific, and customizable clients, where users’ ability to switch applications encourages competition on experience. That outcome remains dependent on interoperability and adoption.

From Goose and MCP to the client interface

Selected presentation frame from ACP: The Universal Remote Control for AI Agents — Alex Hancock, Block at 82 seconds
From Goose and MCP to the client interface

Alex Hancock introduces the idea of a universal remote control for AI. He opens with a joke about his own unfinished support for MCP tasks, then establishes the experience behind his proposal: he is a software engineer at Block, has worked on Square and Cash App, and has spent the last couple of years working on open source AI.

His main project is Goose, an open source agent harness that began inside Block. Hancock says it was subsequently open sourced and donated to the Linux Foundation, with Block engineers continuing to contribute. He also maintains the Rust SDK for the Model Context Protocol, or MCP, and has recently begun working on the Agent Client Protocol, or ACP. That places his argument at the boundary between the software that runs an agent and the interfaces through which other software uses it.

0:140:16
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

0:01 · section reference included

Bespoke harness interfaces limit client choice

Selected presentation frame from ACP: The Universal Remote Control for AI Agents — Alex Hancock, Block at 197 seconds
Bespoke harness interfaces limit client choice

Hancock identifies a recurring problem across otherwise capable harnesses: their control interfaces are often custom. In the most restrictive case, exactly one client application can drive a harness. A user therefore cannot freely choose an application independently of the agent implementation it controls. His browser analogy makes the cost concrete: an open web would be difficult to sustain if each website required its own browser or connection protocol.

The reason to standardize this boundary is that standards can create ecosystems and markets. Hancock points to MCP as the existing example on the agent’s outward-facing side: it supports calling tools, taking actions in other systems, and reading resources and data. He argues that its strongest property is widespread adoption. His estimate of thousands or tens of thousands of servers illustrates the resulting network effect: many integrations become useful to many agents through a shared interface.

The missing boundary runs in the other direction. Client software needs to give an agent tasks, tell it what to work on, and receive updates. Hancock argues that this interaction still lacks a good common standard, and introduces his team’s work as a candidate solution. The distinction matters because access to tools does not itself define how a user-facing application submits work or follows its progress.

1:341:37
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

1:23 · section reference included

One editor integration, many harnesses

ACP originated with the Zed and JetBrains teams, according to Hancock. Their motivation was straightforward: build one high-quality client implementation inside an editor and use it to control different harnesses. That integration would send tasks, receive results, and expose information such as which files the agent was editing. A shared protocol would let the editor team invest in that experience without rebuilding the entire interaction for every harness.

The Goose team saw a wider application. Hancock describes ACP as relatively neutral, with few editor-specific features, which makes it a plausible foundation for other kinds of client software. Its origin supplies a concrete integration problem, while its generality leaves room for applications whose main purpose is something other than editing code.

3:273:29
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

3:27 · section reference included

Sessions, updates, permissions, and extensions

Selected presentation frame from ACP: The Universal Remote Control for AI Agents — Alex Hancock, Block at 362 seconds
Sessions, updates, permissions, and extensions

Hancock describes ACP interactions as connections between clients and agent harnesses, with a set of capabilities associated with each connection. Within that connection, the client can create sessions and send user messages. Those messages may come directly from someone typing into an application or from the client software itself. The agent can respond with text, images, audio, or updates about its work. Connections describe the available interaction, while sessions provide the context in which messages are exchanged.

Updates include tool-call notifications that identify the tool and carry metadata about the call. ACP also carries permission requests, allowing the client to ask the user whether a proposed tool call should proceed. These are distinct interactions: a notification explains what is happening, while a permission request presents a decision. Carrying both through the protocol lets the harness communicate its work and request user input through whichever compatible client is in use.

The protocol uses JSON RPC messages and allows custom methods beyond its standard set. The naming convention is to prefix those methods with an underscore. This gives implementers room to add behavior without waiting for every feature to become part of the core protocol. That flexibility also means the standard method set does not encompass every interaction a particular implementation may offer.

Hancock wants extensions to inform the standard’s development. He imagines teams such as Codex, Goose, and client developers adding custom methods, then comparing the patterns that emerge. When multiple projects solve the same problem in similar ways, that behavior could move onto a standards track and eventually enter ACP itself. This is a proposed path from experimentation to shared semantics, dependent on adoption and community agreement rather than an automatic consequence of adding an extension.

4:344:36
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

4:28 · section reference included

Two local clients use Goose’s ACP interface

Selected presentation frame from ACP: The Universal Remote Control for AI Agents — Alex Hancock, Block at 427 seconds
Two local clients use Goose’s ACP interface

The first demonstration uses standard input/output locally. Hancock opens a simple project in Zed and asks the agent to explain it. The project consists of a single HTML file, and the agent is Goose, reached through its ACP interface. In his account of the demonstration, Zed receives text and tool-call information describing what Goose read and did, followed by an explanation of the project.

He then submits the same request about the same project through a terminal-based client from Poolside AI. Hancock describes the same categories of interaction: text results, a tool call, and a streaming summary. The practical result is two different client interfaces using one implementation on the harness side. The example demonstrates the shared request-and-update interaction locally; it does not establish that every client supports every possible harness feature.

6:066:08
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

6:06 · section reference included

Remote transport makes four components independently placeable

Selected presentation frame from ACP: The Universal Remote Control for AI Agents — Alex Hancock, Block at 504 seconds
Remote transport makes four components independently placeable

Local connections are insufficient for the cloud-hosted agents Hancock expects people to use. He says ACP lacked remote support when his team approached the project, so they specified an HTTP transport, including an HTTP version and a WebSocket upgrade. The intended separation is between transport and protocol: the messages and their semantics remain the same, while the transport changes how they travel. He describes this work as just landing at the time of the talk, leaving its final release and standardization status unresolved.

The Goose team frames the agentic stack as four components. The client is the application a user operates, or a headless application running on a machine. The harness is the program that implements the tool-calling loop. The tools provide the operations available to that loop, often through MCP. The model is the remaining component. This division separates the interface that requests work from the program that carries it out, the operations it invokes, and the model it uses.

Remote ACP connects the client to the harness; remote MCP connects the harness to tools; remote model endpoints provide the model connection. With those boundaries available over a network, Hancock argues that all four components can be placed independently. They might share one machine, the harness might run separately from the client, or only the model or tools might be remote. The architectural benefit is deployment flexibility: a component’s location need not dictate the location of the rest of the stack, provided the relevant interfaces have suitable transports.

7:187:20
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

7:18 · section reference included

A network connection on the same machine

Selected presentation frame from ACP: The Universal Remote Control for AI Agents — Alex Hancock, Block at 547 seconds
A network connection on the same machine

For the network demonstration, Hancock uses a client he says he live-coded the previous night and asks Goose to write a poem. The client connects over the network to the same process on his own machine. This distinction matters: the example exercises a network transport, but it is not a demonstration of an agent deployed on a separate cloud machine.

Hancock explains that the target process could instead run in a container or in the cloud. In his implementation, the messages and the library used by the client stay the same, making switching between local and remote connections straightforward. The example supports that continuity of the client interaction; it does not supply details about operating the connection across a production network.

8:438:45
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

8:43 · section reference included

Interoperability creates room to compete on experience

Selected presentation frame from ACP: The Universal Remote Control for AI Agents — Alex Hancock, Block at 579 seconds
Interoperability creates room to compete on experience

Hancock closes by encouraging developers to build clients or add ACP support to harnesses. He describes an emerging range of clients and agent servers, with clients spanning editors, desktop applications, mobile applications, and terminals. The breadth matters to his argument because a common control interface can serve several interaction styles rather than tying agent use to a single application category.

He proposes several uses for that interoperability: personal clients that orchestrate agents according to an individual’s preferences, clients designed for a business domain or a particular company, and customizable white-label clients that work across harnesses. These are possibilities he expects a shared interface to enable. Their appeal is that developers can tailor how people interact with agents while retaining access to multiple harness implementations.

His final claim is about incentives. If interoperable clients become a product category with many options, users can leave applications that do not meet their needs. Developers would then compete on the quality of the user experience, which Hancock expects to improve the experience of using AI overall. This is a conditional market argument, rather than a measured result: the expected improvement depends on an ecosystem forming and users having meaningful alternatives. He ends by offering to help interested developers get involved.

9:219:23
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

9:21 · section reference included

Read the complete timestamped transcript
  1. 0:01

    [music]

  2. 0:12

    >> Hey everybody.

  3. 0:13

    Um

  4. 0:14

    my name's Alex Hancock. Today I'm going

  5. 0:16

    to talk about a universal remote control

  6. 0:18

    for AI.

  7. 0:19

    And before I start, I just want to say

  8. 0:20

    the previous speaker said that MCP

  9. 0:21

    client maintainers haven't implemented

  10. 0:23

    support for tasks because they're smart.

  11. 0:25

    I'm an MCP client maintainer. I can tell

  12. 0:27

    you it's just because I'm lazy. I

  13. 0:29

    haven't done it.

  14. 0:30

    Um

  15. 0:32

    Okay. So, a little bit about me before

  16. 0:34

    we start. I am a software engineer at

  17. 0:36

    Block, which is the parent company of

  18. 0:38

    Cash App and Square and Title. We have a

  19. 0:41

    few different things going on now. Um

  20. 0:43

    and I've worked there for a long time. I

  21. 0:44

    worked on Square product stuff and Cash

  22. 0:46

    App stuff, but I've been doing open

  23. 0:47

    source AI for the last couple years.

  24. 0:49

    Specifically, I work on this open source

  25. 0:51

    harness project called Goose, which

  26. 0:54

    started as an internal project at Block.

  27. 0:57

    Yeah, some Goose fans out there. And

  28. 0:59

    then uh yeah, we open sourced it and we

  29. 1:01

    donated it to the Linux Foundation. So,

  30. 1:03

    now the IP is there, but we still lots

  31. 1:05

    of us from Block still work on it.

  32. 1:07

    Um I'm also a maintainer of MCP, the

  33. 1:10

    Model Context Protocol. I work on the

  34. 1:12

    Rust SDK for that project. And more

  35. 1:15

    recently, I've also started some work on

  36. 1:18

    ACP, the Agent Client Protocol, which is

  37. 1:20

    what I'm going to talk about today.

  38. 1:23

    So, I think I think we have an issue

  39. 1:25

    with harnesses that I want to I want to

  40. 1:27

    try to put to you all today,

  41. 1:29

    uh propose to you all today as a problem

  42. 1:31

    and then and then recommend a a

  43. 1:33

    solution.

  44. 1:34

    So, what I've been noticing recently

  45. 1:37

    is that we've got lots of great

  46. 1:38

    harnesses out there, right? There are

  47. 1:40

    ones from the labs, there are one from

  48. 1:42

    ones from different companies, there's

  49. 1:43

    lots of open standards-based ones.

  50. 1:45

    Um but I noticed that the interface to

  51. 1:47

    them

  52. 1:48

    is often custom or bespoke. And in in

  53. 1:51

    the worst case, it's like you might have

  54. 1:53

    some harnesses where there's literally

  55. 1:54

    only one client application you can use

  56. 1:56

    to control that harness, right? And I

  57. 2:00

    think this has a couple issues with it,

  58. 2:01

    but the analogy that I'll make with the

  59. 2:03

    web is it would be like if you had to

  60. 2:06

    use one browser or a

  61. 2:08

    one given protocol to connect to a to

  62. 2:11

    every website, right? That just wouldn't

  63. 2:12

    work. You wouldn't have something like

  64. 2:14

    the open web if if that were the reality

  65. 2:17

    with browsers. And so I think we can do

  66. 2:19

    better.

  67. 2:20

    And the thing about standards by finding

  68. 2:22

    a standard and the thing about standards

  69. 2:24

    is that they create ecosystems and

  70. 2:26

    markets.

  71. 2:27

    And I would argue that in the agentic AI

  72. 2:30

    space, we have a good standard for the

  73. 2:33

    agent going out and doing things, right?

  74. 2:36

    Calling tools, taking actions in other

  75. 2:38

    systems, reading resources, reading

  76. 2:40

    data. We've all benefited as a community

  77. 2:42

    from having MCP.

  78. 2:44

    Right? And the most powerful thing about

  79. 2:46

    MCP is not anything about MCP itself,

  80. 2:50

    but it's that everyone uses MCP.

  81. 2:52

    And that's why we have, you know,

  82. 2:53

    thousands or tens of thousands of

  83. 2:55

    servers around the world and all the

  84. 2:57

    agents can connect to them and go and do

  85. 2:59

    things in those other systems.

  86. 3:02

    I would say that we don't yet have a

  87. 3:04

    good solution or a standard for client

  88. 3:08

    software to tell agents what to do.

  89. 3:11

    Giving it tasks, telling it what to work

  90. 3:13

    on and getting updates.

  91. 3:15

    And so

  92. 3:17

    I'm going to put forward an option today

  93. 3:19

    that I think is a good option that that

  94. 3:21

    we on our team have been working on and

  95. 3:23

    we think is a good a good solution in

  96. 3:25

    the open standards space.

  97. 3:27

    And this is ACP, so agent client

  98. 3:29

    protocol

  99. 3:30

    is the name of this project and it came

  100. 3:32

    from the editor companies. It came from

  101. 3:34

    like if you've used the Zed text editor

  102. 3:37

    or you've used any of JetBrains

  103. 3:39

    products, the Zed folks and the

  104. 3:40

    JetBrains JetBrains folks teamed up and

  105. 3:43

    proposed a standard for

  106. 3:45

    um clients to be able to control

  107. 3:47

    harnesses. And it makes sense if you put

  108. 3:48

    yourself in their shoes, right? What

  109. 3:49

    they wanted to be able to do is write a

  110. 3:52

    single high quality client

  111. 3:53

    implementation in an editor, maybe in

  112. 3:55

    Zed or in IntelliJ or something like

  113. 3:57

    that, and be able to control any harness

  114. 4:00

    by with that single client

  115. 4:02

    implementation, sending tasks, getting

  116. 4:04

    results back,

  117. 4:06

    seeing what files are being edited, etc.

  118. 4:08

    It makes a ton of sense if you put

  119. 4:09

    yourself in their shoes, right? But we

  120. 4:11

    saw this on the Goose team, and we think

  121. 4:14

    that there is a much broader utility

  122. 4:16

    than just editors, right? So it's a

  123. 4:19

    it's it's relatively neutral and it

  124. 4:20

    doesn't have many editor specific

  125. 4:22

    features. And so we think that this can

  126. 4:23

    can go to a be spread to a wider range

  127. 4:27

    of client software.

  128. 4:28

    To go into a little bit more depth about

  129. 4:31

    ACP's design and and what you can do

  130. 4:32

    with it,

  131. 4:34

    it lets you establish connections

  132. 4:36

    between clients and agent harnesses that

  133. 4:39

    have a given

  134. 4:40

    a set of capabilities associated with

  135. 4:42

    the the connection, and then you can

  136. 4:45

    make sessions. Within sessions, you can

  137. 4:47

    send user messages, the things that a

  138. 4:49

    user is maybe typing into the app or

  139. 4:51

    that the client software wants to send.

  140. 4:53

    The agent can then respond to those with

  141. 4:56

    text,

  142. 4:57

    uh more images or audio, text, etc., or

  143. 5:00

    updates about what's going on. So like,

  144. 5:02

    if a tool is called, it can send a tool

  145. 5:04

    call notification and explain what tool

  146. 5:06

    was called and what the metadata was.

  147. 5:08

    Um and it can also send things like

  148. 5:10

    permission requests, so that if the

  149. 5:12

    client software needs to show the user,

  150. 5:14

    you know, "Should I do this tool call?

  151. 5:16

    Yes or no?" It can go over this uh

  152. 5:19

    this protocol. And it's it's pretty

  153. 5:21

    simple in its design. Uh it uses JSON

  154. 5:24

    RPC messages, and the thing we like

  155. 5:26

    about it most is that it's extensible as

  156. 5:28

    well, so you're not limited to just

  157. 5:29

    what's in the vanilla protocol. You can

  158. 5:32

    add custom methods. So the

  159. 5:34

    the convention is you put an underscore,

  160. 5:37

    and then you start to put your custom

  161. 5:38

    methods. And the thing I like about this

  162. 5:40

    is that if enough harness projects or

  163. 5:42

    client projects adopt this,

  164. 5:44

    we can start to see what we're all doing

  165. 5:45

    that's the same,

  166. 5:47

    right? Like if the Codex team has some

  167. 5:49

    custom methods, the Goose team has some

  168. 5:50

    custom methods,

  169. 5:52

    uh the client team has some custom

  170. 5:53

    methods, whoever, we can see what

  171. 5:55

    emerges in the in the ecosystem and what

  172. 5:58

    makes sense to get on a standards track

  173. 6:00

    and bring into the protocol itself so

  174. 6:02

    that this is sort of shaped by usage and

  175. 6:04

    shaped by the community.

  176. 6:06

    Um I'm going to do a demo

  177. 6:08

    of a standard IO version of this. So,

  178. 6:12

    I'm going to open Zed and I just have a

  179. 6:14

    really simple project here

  180. 6:17

    where I'll say, "Tell me about this

  181. 6:19

    project." And so, this is a single HTML

  182. 6:21

    file.

  183. 6:22

    So, you can see I was able to type my

  184. 6:24

    query into Zed and this is the agent in

  185. 6:26

    play here is Goose, so it's using

  186. 6:28

    Goose's ACP interface.

  187. 6:30

    And it's you can see it's like sending

  188. 6:31

    text back, it's sending tool call

  189. 6:33

    information back

  190. 6:35

    um about what it read and what it did

  191. 6:37

    and then it found, you know, that it's a

  192. 6:38

    single HTML file and then explained it.

  193. 6:41

    And I'll do another

  194. 6:42

    I'll do another one. This is one from a

  195. 6:44

    company called Poolside AI.

  196. 6:47

    Uh

  197. 6:48

    I'll say, "Tell me about this project."

  198. 6:50

    In the same project. And so, this is a

  199. 6:52

    terminal-based client getting exactly

  200. 6:54

    the same experience from the same agent,

  201. 6:56

    one implementation on the harness side,

  202. 6:59

    and you can now use any client. Right?

  203. 7:01

    And so, you can see it did the same

  204. 7:02

    thing. It showed me

  205. 7:04

    some text results back, it showed a tool

  206. 7:05

    call, and then it showed a It's it's

  207. 7:07

    streaming in a summary.

  208. 7:09

    Um

  209. 7:10

    So, that's a basic demo showing two

  210. 7:11

    clients talking to the same agent

  211. 7:15

    uh over standard IO locally in this

  212. 7:16

    case.

  213. 7:18

    But local obviously isn't enough, right?

  214. 7:20

    If you want this to take off, you have

  215. 7:21

    to be able to do remote as well. Agents

  216. 7:23

    are going to be running in the cloud.

  217. 7:25

    And so, when we came to this project, we

  218. 7:27

    saw that it did not have remote support

  219. 7:28

    yet. So, we specified an HTTP transport.

  220. 7:32

    There's an HTTP version and there's a

  221. 7:33

    websocket upgrade. And so now, the

  222. 7:36

    messages are the same, the protocol

  223. 7:38

    semantics are the same, but there's a

  224. 7:39

    new transport that is just landing now

  225. 7:41

    that enables remote.

  226. 7:43

    And

  227. 7:45

    the way we think about this on the Goose

  228. 7:47

    team, the agentic stack, is there's sort

  229. 7:48

    of these four important components,

  230. 7:50

    right? You have the client,

  231. 7:52

    which is like the app that the user is

  232. 7:53

    using or a headless app running

  233. 7:55

    somewhere on a machine. There's the

  234. 7:57

    harness, which is the program that

  235. 7:59

    implements the tool calling loop.

  236. 8:01

    There are the tools themselves. This

  237. 8:03

    often MCP. And then there's the model,

  238. 8:05

    right? And if you do a remote transport

  239. 8:08

    for the agent client protocol,

  240. 8:11

    and MCP has remote transport for tool

  241. 8:14

    calling,

  242. 8:15

    and the models have kind of all had

  243. 8:16

    remote endpoints like responses APIs for

  244. 8:19

    a long time. Now you have the

  245. 8:20

    flexibility to move all of these four

  246. 8:22

    components around. They could all be on

  247. 8:24

    the same machine. The harness could be

  248. 8:26

    on a different machine than the client.

  249. 8:28

    Uh the model could be the only thing

  250. 8:30

    that's remote. The tools could be the

  251. 8:32

    only thing that's remote. Uh aligning on

  252. 8:34

    standards and making sure that they have

  253. 8:36

    good transport stories is what's going

  254. 8:38

    to let us move all the pieces of this

  255. 8:40

    agentic stack around.

  256. 8:43

    And I can show a quick demo of this as

  257. 8:45

    well.

  258. 8:46

    So, this is a a client just to show how

  259. 8:49

    easy it is to create clients for this. I

  260. 8:51

    just live-coded this, you know, last

  261. 8:53

    night. And I'll say, "Write a poem." So,

  262. 8:57

    this is again connecting to that same

  263. 8:58

    process on my machine.

  264. 9:01

    Uh in this case I'm running it over the

  265. 9:02

    network, but it's on my machine. It's

  266. 9:03

    connecting and sending Goose

  267. 9:05

    instructions for what to do uh remotely.

  268. 9:08

    So, this could be in a container, could

  269. 9:10

    be up in the cloud, but the messages are

  270. 9:12

    the same and the library you use is the

  271. 9:14

    same. So, you can just switch between

  272. 9:16

    local and remote very, very easily.

  273. 9:19

    Um

  274. 9:21

    So, if you want to get plugged into this

  275. 9:23

    ecosystem, start experimenting with

  276. 9:25

    support, either making your own clients

  277. 9:26

    or adding stuff to harnesses, this is a

  278. 9:29

    this will link you to the agent client

  279. 9:30

    protocol site for

  280. 9:32

    how to get started. There's a number of

  281. 9:34

    clients and and agent servers are out

  282. 9:36

    there. This ranges from editors, desktop

  283. 9:39

    applications, mobile applications,

  284. 9:41

    terminal based things, like there's a

  285. 9:43

    proliferation.

  286. 9:45

    And

  287. 9:46

    I I think the use cases are are are

  288. 9:49

    potentially huge, right? If we if we get

  289. 9:50

    some interoperability going here because

  290. 9:52

    you can have people can make personal

  291. 9:54

    clients that's exactly how you want it

  292. 9:56

    orchestrating your agents. You could

  293. 9:58

    have sort of clients created for certain

  294. 10:00

    business domains or an individual

  295. 10:02

    company or a set of clients from a

  296. 10:05

    company you could customize like a white

  297. 10:07

    label

  298. 10:08

    client have it work with all the

  299. 10:09

    harnesses. And I also think if we make a

  300. 10:11

    new category here,

  301. 10:13

    we're going to see quality of the

  302. 10:15

    clients go up, right? Because any

  303. 10:16

    anytime you get an ecosystem or a

  304. 10:18

    marketplace going and there's many

  305. 10:19

    options,

  306. 10:20

    users can vote with their feet if

  307. 10:22

    clients aren't meeting their needs and

  308. 10:24

    so people will start to compete on the

  309. 10:25

    quality of the user experience and and

  310. 10:27

    like overall I think this should drive

  311. 10:29

    up uh

  312. 10:30

    the user experience of using AI.

  313. 10:33

    That's what I've got today. Thank you

  314. 10:34

    very much. And if you want to chat with

  315. 10:36

    me, find me after or send me an email.

  316. 10:39

    Um happy to get you plugged into this

  317. 10:41

    work.

  318. 10:42

    Thank you.

  319. 10:57

    >> [music]