← All speakers

Bio, Work & Ideas

Nick Nisi

Conference affiliation: WorkOS · 2026

On this page

Nick Nisi is a developer experience engineer at WorkOS who builds the infrastructure that makes coding agents dependable: verifiable execution, reusable operational knowledge, and secure access to tools. A longtime TypeScript advocate, former JS Party co-host, and JavaScript community organizer, he approaches AI-assisted development through the practical disciplines of developer tooling.

From JavaScript tooling to AI-native developer experience

Nisi studied computer science at the University of Nebraska at Omaha and began his engineering career at Lockheed Martin. He subsequently worked at C2FO and spent seven years at SitePen, contributing to Dojo, Intern, and TypeDoc while teaching JavaScript and TypeScript workshops. After a period at Flywheel, he returned to C2FO in 2020, working on React and TypeScript upgrades, codemods, internal design systems, and tooling that detected missing internationalization. He later became a staff developer experience engineer, worked at Meta in 2024, and joined WorkOS.

Alongside those roles, he organized NebraskaJS and NEJS Conf, helped create TypeScript Conf, co-hosted JS Party, and interviewed TypeScript contributors through TalkScript. His widely used dotfiles repository documents an enduring investment in Vim, Neovim, tmux, and development environments that engineers can adapt to their own workflows.

The systems and ideas defining his work

  • Evidence-based agent harnesses. Nisi built Case, a coding-agent harness that gathers context from GitHub issues, pull requests, Slack discussions, and Linear tickets before coordinating specialized agents through a TypeScript state machine. Implementation, verification, review, and completion advance through explicit gates. When an agent created a marker file implying tests had run without executing them, Nisi introduced SHA-256 verification of test output. A retrospective agent examines execution traces and records framework-specific lessons for future runs. His principle is straightforward: fix the harness that permitted a failure, and require observable evidence before reviewing the result.
  • Agent experience as developer experience. At WorkOS, Nisi helped build an AI-powered command-line installer that recognizes application frameworks and configures AuthKit automatically. Evaluating its agent instructions exposed a costly failure mode: comprehensive documentation made models less effective than concise guidance focused on integration pitfalls. He replaced more than 10,000 lines of generated instructions with 553 lines describing practical gotchas, reducing evaluation runs from 68 minutes to six. In one test, an unnecessary skill reduced accuracy from 97% to 77%. His AI Engineer Europe presentation connects those results to a larger argument: enforce critical requirements in code, and measure whether instructions actually improve outcomes.
  • Portable agent skills and selective context loading. Nisi designs skills as reusable packages of instructions, scripts, and references that load only when relevant. Framework-specific authentication guidance, for example, should enter an agent’s context only when that framework is involved. In a workshop with Zack Proser, he demonstrated skill evaluation against no-skill baselines, conditional reference loading, and review workflows spanning Claude and Codex. His ideation tooling similarly asks clarifying questions and establishes acceptance criteria before implementation; confidence scores serve as prompts to expose uncertainty, not substitutes for judgment.
  • Fleet and extensible agent infrastructure. Nisi created Fleet, a tmux dashboard that identifies which parallel Claude Code sessions require attention. He subsequently adopted the pi agent harness and developed pi-extensions, a collection of packages for agent coordination, session messaging, interface customization, compatibility, and secret redaction. One extension, bosun, supervises headless workers inside the harness itself. In an August 2026 post, he described letting one of his software-building tools improve itself, producing 46 pull requests over eight hours.
  • Delegated authorization for AI agents. Working with Cloudflare developer advocate Lizzie Siegle, Nisi demonstrated an authenticated Model Context Protocol server that ties agent actions to individual users and maintains user-specific state. His position is that agents acting for people need delegated permissions and auditability, not broadly privileged personal access tokens.

Talks by Nick Nisi

4 talks

Key ideas

Scroll to read ↓

Nick Nisi explains how focused guidance, enforced verification, targeted evaluations, and retrospective learning made agent workflows more reliable at WorkOS.

  • Replace broad documentation-derived skills with concise, observed product and framework gotchas: Nisi reduced more than 10,000 lines to 553 and cut evaluation runs from 68 minutes to 6. 7:27 ↗ 8:26 ↗
  • Benchmark skills against a no-skill baseline; one evaluated task succeeded 77% of the time with a skill and 97% without it. 9:28 ↗
  • Use an external state machine and explicit verification gates so implementation, review, and closure cannot advance solely because an agent claims completion. 3:25 ↗ 16:13 ↗
  • Require concrete evidence appropriate to the task, including hashed test output or Playwright CLI before-and-after videos attached to pull requests. 5:25 ↗ 11:23 ↗ 12:18 ↗
  • Convert recurring failures into harness improvements and scoped memory, while recognizing that automatic memory pruning was described as a future addition. 12:18 ↗ 13:23 ↗ 14:21 ↗
  • Design agent-facing product information around reliably observed failure modes, accessibility to automated readers, and measured outcomes rather than assuming more context is better. 14:21 ↗ 15:14 ↗

Key ideas

Scroll to read ↓

A shirt-ordering MCP server shows how OAuth, persistent storage, and mutable authorization state let an agent act for a user while keeping the server in control.

  • What should an agent be allowed to do?
    0:32 ↗
  • Give the agent compute, memory, and identity
    2:26 ↗
  • Deploy the shop and connect Claude
    4:20 ↗
  • Turn a shirt request into a stored order
    6:07 ↗
  • Ask what the authenticated agent knows
    8:46 ↗
  • Change stored state, change the authorization result
    9:32 ↗
  • Start with tools, then protect them
    11:31 ↗
  • Make delegated actions accountable
    12:09 ↗
  • Use the workflow or customize the server
    13:28 ↗

Key ideas

Scroll to read ↓

A workplace-frustration meme generator shows how typed workflows, runtime schemas, inspectable steps, and an agent interface fit together in Mastra.

  • Turn a workplace frustration into a meme
    0:25 ↗
  • Put explicit structure around model decisions
    2:57 ↗
  • Give the model context, then define the exercise
    8:14 ↗
  • Choose who controls the sequence
    14:33 ↗
  • Finalize a workflow before running it
    28:43 ↗
  • Improve coding context without prescribing an editor
    35:49 ↗
  • Separate execution engines, schemas, and retries
    42:29 ↗
  • Inspect the first structured result
    53:07 ↗
  • Carry the template's caption slots forward
    1:00:45 ↗
  • Debug the external service before blaming the model
    1:07:16 ↗
  • Watch a conversation become an authenticated transaction
    1:19:07 ↗
  • Trace a complete meme through four steps
    1:24:31 ↗
  • Apply the pattern, and inspect what gets generated
    1:31:47 ↗
  • Finish with chat, inspection, and persistence
    1:41:52 ↗

Key ideas

Scroll to read ↓

Build a repository-review skill, give it deterministic inputs and selective references, then carry the same techniques into evaluation, team distribution, creative tools and recurring automation.

  • Explain the repository again
    1:43 ↗
  • Give a repository review something specific to check
    5:13 ↗
  • A skill is a package with a routing description
    7:46 ↗
  • Install, invoke and inspect
    11:20 ↗
  • Supply the Git output instead of asking how to fetch it
    16:04 ↗
  • Separate permanent preferences from shared procedures
    20:11 ↗
  • Test selection, task quality and context boundaries
    29:31 ↗
  • Use the same package for slides, images and reviews
    35:42 ↗
  • Ground the roast, then load only the references it needs
    40:43 ↗
  • Turn uncertainty and repeated friction into inputs
    46:19 ↗
  • Keep useful memory and justify repository scores
    54:25 ↗
  • A vague feature becomes a contract
    58:34 ↗
  • Extend the analysis and move the package
    1:03:28 ↗
  • Ship the skill inside a product—and test whether it helps
    1:06:39 ↗
  • Two API calls become an animation workflow
    1:10:31 ↗
  • The finished roast still needs judgment
    1:14:41 ↗
  • Close the loop from Slack request to work
    1:19:34 ↗

References