In How to extend Copilot CLI with custom UI, Steve Sanderson demonstrates how to create a Copilot CLI extension: a javascript module that runs within the CLI and adds tools the agent can call. One example opens a webview whose contents are controlled by the agent, such as a clock or a live stream of events from the Copilot harness.
Note: “extensions” are currently an experimental feature and need to be enabled with /experimental on.
He’s also generalized this into a webview creator plugin. You install the plugin to get the skill, then invoke the skill to scaffold an extension for your needs. It includes useful module files as templates that can be included/reused in the resulting extension to save some work.
Note: a “plugin” is an installable package that extends Copilot CLI with reusable agents, skills, hooks, and MCP/LSP configurations.
This blackboard presentation by Reiner Pope walks through the basics of a multiply-accumulate (MAC) unit and explains the transistor cost of moving data around relative to doing arithmetic.
In a CPU, a lot of silicon is spent on general-purpose flexibility: control flow, caching, branch prediction, instruction scheduling, and routing data between many different kinds of operations. The arithmetic unit itself may be cheap compared with the surrounding machinery needed to keep a CPU broadly useful.
GPUs and TPUs shift that balance toward more computation per unit of control and data-movement overhead. GPUs do this through massive parallelism and high-throughput execution. TPUs go further for machine-learning workloads by using systolic arrays: grids of MAC units where data flows rhythmically through neighboring cells.
Systolic array design relies on two key ideas:
A grid of MAC nodes lets partial sums flow through the grid in a regular pattern, “systolic” by analogy with blood pulsing through the heart.
Weights can be preloaded into local registers or storage near the compute units, reducing repeated long-distance data movement once the array is filled.
When trying a new repo, it is useful to ask an agent to do the setup as a troubleshooting exercise: read the docs, install the prerequisites, run the expected commands, and debug the errors that come up.
That also suggests a useful design constraint for projects: setup can be expressed as textual instructions rather than hidden inside setup scripts. If an agent can follow the instructions from a clean checkout, the docs are probably good enough for a human too.
You can push the same idea further and make the product itself generated from a spec. OpenAI’s symphony is an example of a repository shaped around that kind of spec-driven generation.