Skip to content
/

Uniswap AI Toolkit

ai-toolkit-uniswap · Uniswap/ai-toolkit · ★ 37 · last commit 2026-05-15

Organizational Claude Code plugin marketplace that packages Uniswap Labs' engineering culture (feature planning, PR workflows, codebase navigation, Slack/Notion knowledge management) into reusable AI agents, skills, and hooks

Best whenEngineering organizations should encode their institutional knowledge (planning processes, PR conventions, communication patterns) as Claude Code plugins — n…
Skip ifGeneric, non-opinionated tooling (deliberately Uniswap-specific), External distribution (internal use focus)
vs seeds
Unlike all 11 seeds (which are generic frameworks for spec-driven development or agent orchestration), ai-toolkit-uniswap is an or…
spec-kitis generic; this is intentionally org-specific.
Primitive shape 88 total
Commands 10 Skills 46 Subagents 31 Hooks 1
00

Summary

Uniswap AI Toolkit — Summary

Uniswap AI Toolkit (github.com/Uniswap/ai-toolkit) is a TypeScript Nx monorepo that packages Claude Code plugins, agent definitions, skills, slash commands, and hooks for Uniswap's internal AI-assisted engineering workflows. It is an opinionated, domain-specific extension of Claude Code, organized as a plugin marketplace with five feature plugins (development-planning, development-pr-workflow, development-codebase-tools, development-productivity, uniswap-integrations) plus a setup plugin and a spec-workflow plugin. The toolkit ships 27 agents, 46 skills, and 6 commands across those plugins, with a PostToolUse lint hook that fires on every file Write or Edit. The planner agent explicitly pins claude-opus-4-7 as its model. The repository also contains four cross-cutting agents and four commands in the root .claude/ directory (Slack analyzer, weekly newsletter generator, people-team FAQ aggregator, Notion quickstart doc creator) — demonstrating that the toolkit blends technical workflow automation (PR review, spec generation, codebase explanation) with organizational knowledge management (Slack, Notion). Default branch is next (not main), suggesting active development outside a stable release cycle. Stars: 37.

01

Overview

Uniswap AI Toolkit — Overview

Origin

Developed and maintained by Uniswap Labs. TypeScript Nx monorepo on the next branch. GitHub stars: 37. MIT license. Not a general-purpose framework — designed for Uniswap's internal engineering culture and workflows.

Philosophy

An opinionated Claude Code plugin marketplace for a specific engineering organization. Rather than building a general AI agent framework, Uniswap packaged their institutional knowledge (how they plan features, review PRs, write specs, manage Slack channels, generate newsletters) into Claude Code plugins that any team member can install.

Plugin Marketplace Model

The toolkit uses a .claude-plugin/marketplace.json at the root to register all available plugins. Each plugin is a self-contained package under packages/plugins/ with its own plugin.json, agents, skills, commands, and hooks. Users install the whole toolkit or individual plugins.

Domain Coverage

Five primary plugin domains:

  1. development-planning — spec writing, feature planning, planner agent
  2. development-pr-workflow — PR creation, review, merge automation
  3. development-codebase-tools — code explanation, codebase navigation
  4. development-productivity — general dev efficiency tools
  5. uniswap-integrations — Uniswap Protocol-specific agents (UniswapX, v4, etc.)

Plus:

  • claude-setup — skills for setting up Claude Code in new projects
  • spec-workflow — specification generation workflow

Cross-Cutting Root Agents

Four agents in the root .claude/agents/ target organizational knowledge management:

  • deduplicator — deduplication logic
  • dev-ai-pod-weekly-newsletter — AI-generated weekly newsletter for Uniswap's dev AI pod
  • slack-analyzer — analyzes Slack channel content
  • slack-fetcher — fetches Slack data

Technical Stack

TypeScript, Nx monorepo, Claude Code plugin API. The planner agent pins model: claude-opus-4-7.

02

Architecture

Uniswap AI Toolkit — Architecture

Monorepo Structure

ai-toolkit/
├── .claude/
│   ├── agents/          # 4 cross-cutting agents
│   │   ├── deduplicator.md
│   │   ├── dev-ai-pod-weekly-newsletter.md
│   │   ├── slack-analyzer.md
│   │   └── slack-fetcher.md
│   ├── commands/        # 4 cross-cutting commands
│   │   ├── aggregate-people-team-faqs.md
│   │   ├── create-notion-quickstart-doc.md
│   │   ├── dev-ai-pod-weekly-newsletter.md
│   │   └── draft-slack-ai-update.md
│   └── hooks/
│       ├── hooks.json
│       └── post-edit-lint.sh
├── .claude-plugin/
│   └── marketplace.json  # Plugin registry
└── packages/
    └── plugins/
        ├── development-codebase-tools/  # 10 agents + skills + 1 hook
        ├── development-planning/        # 5 agents
        ├── development-pr-workflow/     # 3 agents + 4 commands
        ├── development-productivity/    # 6 agents + 2 commands
        ├── uniswap-integrations/        # 3 agents
        ├── claude-setup/               # skills only
        └── spec-workflow/              # spec generation

Plugin Architecture

Each plugin is a Claude Code plugin package with:

  • plugin.json — plugin manifest (name, description, version)
  • .claude/agents/ — agent markdown definitions
  • .claude/commands/ — slash command definitions
  • .claude/skills/ — skill definitions
  • .claude/hooks/ — hook definitions (some plugins)

Hook Architecture

Root-level hooks fire for all plugins. Per-plugin hooks fire only within that plugin's scope.

Root hooks.json:

{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Write|Edit",
        "hooks": [
          {
            "type": "command",
            "command": "bash ${CLAUDE_PLUGIN_ROOT}/hooks/post-edit-lint.sh",
            "timeout": 60
          }
        ]
      }
    ]
  }
}

CLAUDE_PLUGIN_ROOT is the plugin root path variable, injected by Claude Code at runtime.

Agent Definition Format

Agents are Markdown files with YAML frontmatter:

---
name: planner
description: "..."
model: claude-opus-4-7
tools: [...]
---

Followed by a natural language system prompt. The model field pins a specific Claude model — claude-opus-4-7 in the planner agent.

Nx Build System

Nx manages cross-plugin dependencies, build targets, and project graph. Each plugin is an Nx project. The next branch is the active development branch, suggesting unstable / pre-release state.

03

Components

Uniswap AI Toolkit — Components

Plugin Inventory

development-planning (5 agents)

  • planner-agent — creates structured feature plans, pins model: claude-opus-4-7
  • 4 additional planning agents (names not extracted)
  • Focus: spec writing, feature breakdown, task decomposition

development-pr-workflow (3 agents + 4 commands)

  • 3 PR-focused agents: creation, review, merge preparation
  • 4 commands: PR-related slash commands
  • Focus: automating the PR lifecycle

development-codebase-tools (10 agents + skills + 1 hook)

  • Largest plugin by agent count (10)
  • Includes: code-explainer-agent (explains arbitrary code sections)
  • Skills for codebase navigation
  • 1 plugin-level hook
  • Focus: understanding and navigating large codebases

development-productivity (6 agents + 2 commands)

  • 6 general productivity agents
  • 2 slash commands
  • Focus: general engineering efficiency

uniswap-integrations (3 agents)

  • 3 Uniswap Protocol-specific agents
  • Likely covers: UniswapX, v4 hooks, liquidity management
  • Focus: Uniswap-domain-specific tasks

claude-setup (skills only)

  • No agents or commands
  • Skills for bootstrapping Claude Code in new Uniswap projects

spec-workflow (agents/skills)

  • Spec generation workflow
  • Exact component count not extracted

Cross-Cutting Root Components (in .claude/)

Agents (4)

  • deduplicator — entity deduplication
  • dev-ai-pod-weekly-newsletter — weekly digest generator
  • slack-analyzer — Slack content analysis
  • slack-fetcher — Slack data retrieval

Commands (4)

  • aggregate-people-team-faqs — aggregates FAQ documents for people team
  • create-notion-quickstart-doc — generates Notion docs
  • dev-ai-pod-weekly-newsletter — newsletter slash command
  • draft-slack-ai-update — drafts Slack AI update messages

Hooks (1 type)

  • PostToolUse on Write|Editpost-edit-lint.sh (60s timeout)

Totals

Component Count
Plugins 7 (5 primary + 2 supporting)
Agents (plugins) 27
Agents (root .claude) 4
Commands (plugins) 6
Commands (root .claude) 4
Skills (all) 46
Hooks 1 (PostToolUse Write|Edit)

Key Agent Example: planner-agent

---
name: planner
description: "Creates structured feature and technical plans"
model: claude-opus-4-7
---
[System prompt: structured planning methodology for Uniswap engineering features]

Key Agent Example: code-explainer-agent

Part of development-codebase-tools. Provides natural language explanations of arbitrary code sections, likely with access to codebase search and file read tools.

05

Prompts

Uniswap AI Toolkit — Prompts

Prompt Format

All agent and command prompts are Markdown files in .claude/agents/ or .claude/commands/. Agents use YAML frontmatter for metadata, followed by a natural language system prompt body.

Agent Frontmatter Schema

---
name: <agent-name>
description: "<description shown in Claude Code agent picker>"
model: <optional model override>
tools: [<list of allowed tools>]
---
<system prompt body>

planner-agent System Prompt

The planner agent's prompt encodes Uniswap's structured feature planning methodology. It instructs Claude to:

  • Break features into hierarchical tasks
  • Output structured plans with clear sub-task dependencies
  • Consider Uniswap Protocol-specific constraints (smart contract interactions, gas optimization, protocol safety)
  • Pin to model: claude-opus-4-7 (hardcoded in frontmatter)

code-explainer-agent System Prompt

Instructs Claude to:

  • Trace code imports and dependencies recursively
  • Provide plain-English explanation at multiple levels of abstraction
  • Reference related files and patterns in the codebase
  • Format output as structured explanation with code references

Slack Agents Prompts

slack-analyzer and slack-fetcher encode Uniswap-specific Slack channel structures and expected data formats. The newsletter agent (dev-ai-pod-weekly-newsletter) has prompts for summarizing AI-related discussions into weekly digest format.

Slash Command Prompts

Commands (.claude/commands/*.md) are prompt templates invoked via /command-name in Claude Code. They define task structure but rely on the user providing context at invocation time.

Example: /create-notion-quickstart-doc prompts Claude with a Notion document template structure, instructing it to fill sections based on the current project context.

No External Prompt Libraries

Unlike water (PromptLibrary) or omnicore-agent (BM25 retrieval), ai-toolkit-uniswap stores all prompts as plain .md files — no programmatic prompt composition or dynamic retrieval.

Institutional Knowledge Encoding

The most distinctive aspect of the prompts: they encode Uniswap Labs' institutional knowledge. The planner agent knows Uniswap's feature planning process; the PR workflow agents know their PR conventions; the Slack agents know their channel taxonomy. This is not a generic framework — the prompts are purpose-built for one organization's culture.

09

Uniqueness

Uniswap AI Toolkit — Uniqueness

Differs from Seeds

ai-toolkit-uniswap is the only framework in this batch (and among seeds) that is explicitly an organizational Claude Code plugin package — it encodes one company's (Uniswap Labs') engineering culture into Claude Code agents, commands, skills, and hooks. Unlike seeds such as superpowers (generic Claude Code extensions) or spec-kit (generic spec-driven dev workflow), ai-toolkit-uniswap's agents encode domain knowledge: Uniswap Protocol-specific constraints, their PR conventions, their Slack channel taxonomy, their feature planning methodology. The spec-kit seed is closest in being a Claude Code extension for spec-driven development, but spec-kit is generic; ai-toolkit-uniswap is intentionally not.

Distinctive Position

  1. Only corporate-opinionated Claude Code plugin pack in this batch — not a framework, not a generic harness; a company's institutional knowledge packaged as AI tooling
  2. Blends technical automation with organizational knowledge management — the same toolkit handles code explanation AND Slack newsletter generation AND Notion doc creation; this breadth is unusual
  3. Model pinning in agent frontmatter — explicit model: claude-opus-4-7 in planner-agent; most frameworks leave model selection to the user
  4. PostToolUse lint gate on all file edits — mandatory automatic lint after every Write/Edit creates a quality gate that no other batch-28 framework implements at the hook level
  5. Nx monorepo as plugin build system — using an enterprise-grade build system (Nx) for Claude Code plugins is over-engineered for most users but matches Uniswap's existing TypeScript monorepo infrastructure
  6. next as default branch — suggests perpetually in-development posture, not versioned releases

Explicit Anti-Patterns / Constraints

  • Not designed for external use — domain knowledge is Uniswap-specific
  • No CLI, no public npm package for end-user install
  • Stars (37) confirm niche/internal audience
  • Nx adds complexity for teams that don't already use it

Generalizability Assessment

The architecture is highly generalizable: any engineering organization could fork this and replace Uniswap-specific prompts with their own institutional knowledge. The pattern (Nx monorepo + plugin marketplace + hooks + organizational agents) is a reusable template. The content is not generalizable — it is Uniswap-specific.

Observable Failure Modes

  • next branch default: no stable release
  • Stars (37): not widely adopted externally
  • Uniswap-specific prompts degrade to useless for non-Uniswap teams without modification
  • No documentation for external adoption
  • Nx dependency: requires Nx expertise for toolkit maintenance

Inspired By

Claude Code plugin API, Uniswap Labs' internal engineering workflows, TypeScript Nx monorepo conventions.

04

Workflow

Uniswap AI Toolkit — Workflow

Installation (Inferred from Plugin Model)

# Clone or install via Claude Code plugin manager
# Reference in Claude Code settings or .claude/plugin.json

No standard npm/bun install one-liner for end users. The toolkit is consumed as a Claude Code plugin package, referenced from marketplace.json.

Developer Workflow: Feature Planning

  1. Invoke planner-agent (or a planning slash command)
  2. Agent uses claude-opus-4-7 to generate a structured feature plan
  3. Plan includes task breakdown, spec template, sub-task list
  4. Developer reviews plan and kicks off spec-workflow plugin for formal spec generation

Developer Workflow: PR Automation

  1. After writing code, invoke PR workflow agent
  2. Agent creates PR description, identifies reviewers, applies labels
  3. Review agent analyzes diff and suggests improvements
  4. Commands: slash commands for common PR operations

Developer Workflow: Code Explanation

  1. Open file or select code section in Claude Code
  2. Invoke code-explainer-agent
  3. Agent traverses codebase, resolves imports, explains the section in context
  4. Output: natural language explanation with cross-references

Automatic Lint Gate (PostToolUse Hook)

Every file Write or Edit triggers post-edit-lint.sh automatically:

  • Hook fires via PostToolUse matcher on Write|Edit
  • post-edit-lint.sh runs lint checks (TypeScript/ESLint likely)
  • 60-second timeout
  • If lint fails, the agent sees the failure output and must fix before proceeding

This creates a tight edit-lint loop: agents cannot leave broken lint state in files.

Organizational Knowledge Workflows

The root .claude/ commands support knowledge management:

  • /aggregate-people-team-faqs — collects FAQs from multiple sources
  • /create-notion-quickstart-doc — drafts Notion documentation
  • /dev-ai-pod-weekly-newsletter — generates weekly AI pod digest
  • /draft-slack-ai-update — prepares Slack announcements

These workflows use Slack fetcher + analyzer agents to pull raw data, then generate structured outputs.

Spec Workflow Plugin

The spec-workflow plugin provides a formalized specification generation pipeline — likely: gather requirements → generate spec → review spec → export to Notion or markdown. Details not fully extracted.

06

Memory Context

Uniswap AI Toolkit — Memory & Context

Memory Model

No explicit memory system. ai-toolkit-uniswap relies entirely on Claude Code's native context management. There are no vector stores, no SQLite persistence, no session handoff mechanisms in the toolkit.

Context Strategy: Tooled Agents

Agents with codebase tools (development-codebase-tools plugin) manage context by actively fetching relevant code sections at query time rather than pre-loading everything. The code-explainer-agent uses codebase search to find relevant files, pulling context on demand.

Context Strategy: Slack Data Pipeline

The Slack workflow uses a two-agent pipeline:

  1. slack-fetcher — retrieves raw Slack data (likely via MCP or API tool)
  2. slack-analyzer — processes fetched data and generates summaries

This pipeline pattern manages context by breaking the task: the fetcher produces structured data, the analyzer works from that structured output rather than raw API responses.

Spec Workflow Context

The spec-workflow plugin likely builds context progressively: requirements gathering → structured spec template → filled spec. Each stage provides focused context for the next, avoiding context window exhaustion on large features.

No Cross-Session Persistence

Once a Claude Code session ends, no state is saved by the toolkit itself. If the planner agent generates a plan, it should be saved to a file (via Write tool) to persist across sessions. The toolkit does not automate this.

Model Context Windows

The planner agent pins claude-opus-4-7 which has a large context window. This model choice enables processing large codebases, long feature descriptions, and complex spec documents without truncation. The model pin is intentional — lower-tier models might truncate relevant context.

No Memory-Specific Components

Unlike omnicore-agent (BM25 retrieval, conversation history summarization) or hankweave (event journal, git checkpoints), ai-toolkit-uniswap has no memory-specific components. Context management is fully delegated to Claude Code and the underlying model.

07

Orchestration

Uniswap AI Toolkit — Orchestration

Single-Agent Per Invocation

Each agent in the toolkit operates independently. There is no built-in orchestration layer that chains agents automatically. A user invokes one agent; that agent completes its task; the result is returned.

Implicit Pipeline: Slack Workflow

The Slack knowledge management workflow has an implicit two-agent pipeline:

  1. slack-fetcher retrieves data
  2. slack-analyzer processes it
  3. dev-ai-pod-weekly-newsletter command synthesizes output

These are invoked sequentially by the user (or a slash command that orchestrates them). No automated orchestration — the user is the orchestrator.

Implicit Pipeline: Spec Workflow

The spec-workflow plugin likely implements a multi-step spec generation flow:

  • Gather requirements (agent)
  • Generate structured spec (agent or template fill)
  • Review spec (agent or human)
  • Export (command)

Again, the pipeline is encoded in the workflow documentation and user convention, not automated agent-to-agent handoff.

Model Pinning as Orchestration Signal

The planner agent pins model: claude-opus-4-7. This is a form of task-specific model routing: high-complexity planning tasks use the most capable model, while simpler tasks use the default model. This is intentional resource allocation, not automated orchestration.

PostToolUse Hook as Micro-Orchestration

The post-edit-lint.sh hook fires after every Write/Edit and creates a tight feedback loop:

agent writes file → hook runs lint → lint output fed back to agent → agent fixes

This is the closest the toolkit comes to automated orchestration: a reactive loop that enforces code quality without human intervention.

No Multi-Agent Framework

Unlike deepagents-langchain (middleware stack with SubAgentMiddleware), oh-my-agent (parallel skill orchestration), or flue (durable agent-as-server), ai-toolkit-uniswap has no multi-agent framework. It is a collection of single-purpose agents that humans orchestrate manually.

Nx as Build Orchestration

Nx handles build-time orchestration: dependency graph resolution, parallel build targets, cache invalidation. This is infrastructure orchestration (for the toolkit developers), not agent orchestration (for the toolkit users).

08

Ui Cli Surface

Uniswap AI Toolkit — UI/CLI Surface

Primary Interface: Claude Code

The toolkit has no standalone CLI or UI. All interaction happens through Claude Code's UI:

  • Agent picker (@ mention or sidebar)
  • Slash commands (/command-name)
  • Inline chat with context

Claude Code Plugin Marketplace

The .claude-plugin/marketplace.json registers all plugins. Claude Code (or a compatible plugin manager) reads this file to discover available plugins and their capabilities.

Plugin Installation Surface

Plugins are installed by referencing them in Claude Code's plugin configuration. No separate install command. The Nx build system produces the plugin output that Claude Code consumes.

Slash Commands

Available via / prefix in Claude Code:

Root commands:

  • /aggregate-people-team-faqs
  • /create-notion-quickstart-doc
  • /dev-ai-pod-weekly-newsletter
  • /draft-slack-ai-update

Plugin commands (6 total across development-pr-workflow and development-productivity):

  • PR workflow commands (4)
  • Productivity commands (2)

Agent Invocation

Agents are invoked via @agent-name in Claude Code or through the agent sidebar. The planner-agent, code-explainer-agent, and Slack agents are all accessible this way.

Hooks Surface

The PostToolUse lint hook is invisible to the user — it fires automatically after every Write/Edit. Output appears in the Claude Code tool output pane if lint fails.

No Web Dashboard

No port, no local server, no browser UI. The toolkit is entirely CLI/IDE-surface.

No Binary

No ai-toolkit or uniswap-ai binary. The Nx build system produces plugin packages, not a CLI tool.

Nx Project Commands (Development)

For toolkit contributors:

nx build <plugin-name>
nx test <plugin-name>
nx lint <plugin-name>

These are development commands, not user-facing CLI.

Related frameworks

same archetype · same primary tool · same memory type

BMAD-METHOD ★ 48k

Provides a full agile delivery lifecycle with named expert-persona AI collaborators that elicit the human's best thinking rather…

Agent OS ★ 4.6k

Extracts implicit codebase conventions into token-efficient markdown standards files and injects them selectively into AI agent…

Claude Conductor ★ 367

Gives Claude Code a persistent, cross-linked, auto-analyzed documentation system so it retains codebase context across sessions.

Spec-Driver (Greenfield Spec-Driven Development) ★ 25

Prevents spec rot in AI-assisted development by making implementation changes flow back into evergreen, authoritative specs via…

Anthropic Knowledge Work Plugins ★ 16k

Role-specialized plugin bundles with live MCP connectors that turn Claude into a domain expert for enterprise knowledge workers.

Codex Integration for Claude Code (skill-codex) ★ 1.3k

Single Claude Code skill that handles Codex CLI invocation correctly (stdin blocking, thinking token suppression, session resume)…