Introducing:Parallel Agents→


Your last next editor

Zed is a minimal code editor crafted for speed and collaboration with humans and AI.

Download now D Clone source C

Available for macOS, Linux, and Windows

Fast

Written from scratch in Rust to efficiently leverage multiple CPU cores and your GPU.

Agentic

Run agents in parallel to smoothly edit files, navigate code, and run tools at native speed.

Collaborative

Chat with teammates, code together, and share your screen and project.

Watch Demo

Search…

zed

Add AccessKit support to GPUI elements

gpui-accesskit/main•

4m

Fix panic in buffer rope on large paste

rope-panic-fix•

12m

Add vim motion for surround pairs

+23-2•

48m

Workspace close button hidden with single tab

2h

GPUI text shaping perf regression

text-shaping-opt•

5h

LSP hover tooltip positioning off-screen

1d

Refactor project panel tree diffing

tree-diff-refactor•

2d

Add multicursor support in search replace

4d

cloud

Migrate billing endpoints to axum router

axum-billing•

+43-11•

8m

Add TanStack query keys for team settings

+2-127•

1h

Fix stale cache on org membership change

6h

Rust SDK pagination for collab sessions

sdk-pagination/first-pass•

1d

Dashboard table sorting with TanStack

3d

zed.dev

Break out page sections into components

parallel-agents-page•

2m

Fix hydration mismatch in blog layout

45m

Refactor email submit API route

api-route-cleanup•

3h

Add OG image generation for blog posts

8h

Tailwind v4 migration for global.css tokens

tailwind-v4•

1d

Fix flaky MDX content loader tests

2d

Add dark mode toggle to theme preview

theme-builder-dark•

3d

personal-project

zedmain/main

Add AccessKit support to GPUI elements

I want to add AccessKit support to GPUI so screen readers can traverse the element tree. Can you start by figuring out where the accessibility tree should be built and how elements currently expose their roles?

Read crates/gpui/src/element.rs

Search "accessibility" in crates/gpui/

List crates/gpui/src/platform/

Let me look at the GPUI element trait and the window's paint cycle to understand where we can hook into the tree. I'll also check if there's any existing accessibility scaffolding.

WriteClaude Opus 4.6

scheduler.tsx

catware.rs

Uncommitted Changes

panic

src/components/scheduler.tsx

1"use client"2​3import * as React from "react"4import { format, addMinutes, isAfter } from "date-fns"5​6// Types for our "essential" meeting system7interface Meeting {8    id: string9    title: string10    couldHaveBeenAnEmail: boolean'couldHaveBeenAnEmail' is declared but its value is never read.11    attendees: string[]12    snacksProvided: boolean13    actuallyStartsOnTime: numberType 'string' is not assignable to type 'number'.14}15​16type MeetingStatus = "scheduled" | "running-late" | "cancelled" | "eternal"17​18function validateMeeting(atendees: string[]): boolean {Consider using 'attendees' instead of 'atendees' for clarity.19    return atendees.length > 0 && atendees.length < 5020}21​22let agendaItem = "Discuss why we need more meetings"'agendaItem' can be declared as 'const' since it is never reassigned.23​24const MEETING_EXCUSES = [25    "Sorry, I was on mute",26    "Can everyone see my screen?",27    "Let's take this offline",28    "Per my last email...",29    "I have a hard stop in 5 minutes",30] as const31​32/** Props for the world's most essential component */33interface MeetingSchedulerProps {34    defaultDuration?: number35    maxAttendees?: number36    requiresSnacks?: boolean37    onMeetingCreate?: (meeting: Meeting) => void38    onEscapeAttempt?: () => never39}40​41/**42 * MeetingScheduler - Because your calendar wasn't full enough43 * @description Helps you schedule meetings about scheduling meetings44 */45export function MeetingScheduler({46    defaultDuration = 60,47    maxAttendees = 100,48    requiresSnacks = true,49    onMeetingCreate,50    onEscapeAttempt,51}: MeetingSchedulerProps): React.ReactElement {52    const [meetings, setMeetings] = React.useState<Meeting[]>([])53    const [excuseIndex, setExcuseIndex] = React.useState(0)54    const [isLoading, setIsLoading] = React.useState<boolean>(false)55​56    const formRef = React.useRef<HTMLFormElement>(null)57    const sanityRef = React.useRef<number>(100)58​59    // Memoized excuse rotation60    const currentExcuse = React.useMemo(() => {61        return MEETING_EXCUSES[excuseIndex % MEETING_EXCUSES.length]62    }, [excuseIndex])63​64    // Effect: Gradually decrease sanity65    React.useEffect(() => {66        const interval = setInterval(() => {67            sanityRef.current = Math.max(0, sanityRef.current - 1)68            if (sanityRef.current === 0) {69                console.warn("Developer sanity depleted")70            }71        }, 60000)72​73        return () => clearInterval(interval)74    }, [])75​76    // Callback for creating meetings77    const handleCreateMeeting = React.useCallback(78        async (title: string, attendees: string[]) => {79            if (!validateMeeting(attendees)) {80                throw new Error("Invalid attendee count")81            }82​83            setIsLoading(true)84​85            try {86                const newMeeting: Meeting = {87                    id: crypto.randomUUID(),88                    title: title || "Meeting about meetings",89                    couldHaveBeenAnEmail: true,90                    attendees,91                    snacksProvided: requiresSnacks,92                    actuallyStartsOnTime: "never", // This causes the error93                }94​95                setMeetings((prev) => [...prev, newMeeting])96                onMeetingCreate?.(newMeeting)97                setExcuseIndex((i) => i + 1)98            } catch (error) {99                console.error("Failed to create meeting:", error)100            } finally {101                setIsLoading(false)102            }103        },104        [requiresSnacks, onMeetingCreate]105    )106​107    // Render the meeting madness108    return (109        <div className="meeting-scheduler p-6 bg-white rounded-lg shadow-xl">110            <header className="mb-4 border-b pb-2">111                <h1 className="text-2xl font-bold text-gray-900">112                    📅 Meeting Scheduler Pro™113                </h1>114                <p className="text-sm text-gray-500 italic">115                    "{currentExcuse}"116                </p>117            </header>118​119            <form120                ref={formRef}121                onSubmit={(e) => {122                    e.preventDefault()123                    handleCreateMeeting("Sync", ["everyone@company.com"])124                }}125                className="space-y-4"126            >127                <input128                    type="text"129                    placeholder="Meeting title (optional, like agendas)"130                    className="w-full px-3 py-2 border rounded"131                    maxLength={255}132                />133​134                <select135                    defaultValue={defaultDuration}136                    className="w-full px-3 py-2 border rounded"137                >138                    <option value={30}>30 min (ambitious)</option>139                    <option value={60}>1 hour (realistic)</option>140                    <option value={120}>2 hours (why?)</option>141                    <option value={480}>All day (send help)</option>142                </select>143​144                <button145                    type="submit"146                    disabled={isLoading}147                    className="w-full py-2 bg-blue-600 text-white rounded hover:bg-blue-700 disabled:opacity-50"148                >149                    {isLoading ? "Syncing calendars..." : "Schedule Meeting"}150                </button>151            </form>152​153            {meetings.length > 0 && (154                <ul className="mt-6 divide-y">155                    {meetings.map((meeting) => (156                        <li key={meeting.id} className="py-3">157                            <span className="font-medium">{meeting.title}</span>158                            <span className="text-gray-400 ml-2">159                                ({meeting.attendees.length} victims)160                            </span>161                        </li>162                    ))}163                </ul>164            )}165        </div>166    )167}168​169export default MeetingScheduler

zed.dev — zsh

  ███████╗███████╗██████╗
  ╚══███╔╝██╔════╝██╔══██╗
    ███╔╝ █████╗  ██║  ██║
   ███╔╝  ██╔══╝  ██║  ██║
  ███████╗███████╗██████╔╝
  ╚══════╝╚══════╝╚═════╝

Editor:Zed

Version:1.0.0

Platform:macOS

To pick up a draggable item, press the space bar. While dragging, use the arrow keys to move the item. Press space again to drop the item in its new position, or press escape to cancel.

15

Rust

Trusted by world-class developers & industry leading teams

Yes! Now I can have shortcuts to run and debug tests. Ever since snippets were added, Zed has all of the features I could ask for in an editor.

JV

José Valim

Creator of Elixir

I've had my mind blown using Zed with Claude 3.5 Sonnet.I wrote up a few sentences around a research idea and Claude 3.5 Sonnet delivered a first pass in seconds. When I spotted some small mistakes, I highlighted the parts I wanted to change and shared feedback for it to fix.I was able to go from idea to running experiment code in half an hour—it was really easy and fun.

EP

Ethan Perez

Adversarial Robustness Research Lead

This is obviously a product built with love and care. I can tell it from two minutes of using it. Kudos to the team.

DA

Dan Abramov

React Core Team Member

My god it is so fast. Boot time, UI interaction, typing latency. I feel it. I knew VS Code always felt sluggish, but I didn't realize how good things could really be. I'm honestly astounded.

MB

Matt Baker

Principal Engineer

I’ve started using Zed, and I love it. Lots of subtle innovations (multibuffers, inlay hints, collaboration). Thoughtful, precise design. And the speed, the speed!

MB

Mike Bostock

Creator of D3.js, founder of Observable

Zed Just Works

Incredibly powerful out of the box. And it only gets better as, every week, there's always a new version.

View Roadmap View Releases

Learn More →

Parallel Agents

Run multiple threads of your favorite agents across several projects so you never leave your flow.

Learn More → Expand VideoPlay Video

Debugger

Built on the Debug Adapter Protocol (DAP), native support for debugging across multiple programming languages.

Learn More → Expand VideoPlay Video

Agentic Editing

Zed natively supports agentic editing, enabling fluent collaboration between humans and AI.

Learn More → Expand VideoPlay Video

Native Git Support

First-class support for staging, committing, pulling, pushing, viewing diffs, and many more Git operations.

Learn More → Expand VideoPlay Video

Edit Prediction

A tool that anticipates your next move. Powered by Zeta2, our open-weight language model.

\ \ Parallel Agents\ \ Run multiple threads of your favorite agents across several projects so you never leave your flow.](/content/parallel-agents/index.html)

\ \ Debugger\ \ Built on the Debug Adapter Protocol (DAP), native support for debugging across multiple programming languages.](/content/debugger/index.html)

\ \ Agentic Editing\ \ Zed natively supports agentic editing, enabling fluent collaboration between humans and AI.](/content/ai/index.html)

\ \ Native Git Support\ \ First-class support for staging, committing, pulling, pushing, viewing diffs, and many more Git operations.](/content/git/index.html)

\ \ Edit Prediction\ \ A tool that anticipates your next move. Powered by Zeta2, our open-weight language model.](/content/edit-prediction/index.html)

Remote Development

Your machine only runs the Zed UI, while the actual codebase runs on a remote server.

Multibuffer editing

Multibuffers compose excerpts from across the codebase in one editable surface.

Vim-friendly

First-class modal editing via Vim bindings, including features like text objects and marks.

Open Source

Zed is built by a global, growing, and thriving community of thousand of developers.

8,052

Forks

80,039

Stars

1,826

Contributors

1,078

PRs merged last month

AI that works the way you code

Zed doesn't lock you into one model, it gives you the fastest way to collaborate with any agent.

Learn about AI in Zed

Agentic Editing

Agentic Editing

Delegate work to the agent, follow their progress live and review changes with ease. Learn More Edit Prediction

Edit Prediction

An open-source, open-data language model that predicts what you'll type next. Learn More Inline Assistant

Inline Assistant

Easily transform your code in-line by sending selected code to a language model. Learn More Any Agent, Any Tool

Any Agent, Any Tool

Bring agents like Claude Agent, Codex, or OpenCode via ACP. Connect MCP servers for extending the agent's knowledge. Learn More

Expand VideoPlay Video

\ \ Agentic Editing\ \ Delegate work to the agent, follow their progress live and review changes with ease.](/content/ai/index.html)

\ \ Edit Prediction\ \ An open-source, open-data language model that predicts what you'll type next.](/content/edit-prediction/index.html)

\ \ Inline Assistant\ \ Easily transform your code in-line by sending selected code to a language model.](/content/docs/ai/inline-assistant/index.html)

\ \ Any Agent, Any Tool\ \ Bring agents like Claude Agent, Codex, or OpenCode via ACP. Connect MCP servers for extending the agent's knowledge.](/content/acp/index.html)

Growing extensions ecosystem

Boost your Zed experience by choosing from hundreds of extensions that broaden language support, offer different themes, and more.

Create Extension View All Extensions

HTML\ \ 5.1M\ \ HTML support.\ \ Isaac Clayton TOML\ \ 1.0M\ \ TOML support.\ \ Max Brunsfeld, Ammar Arif Git Firefly\ \ 870k\ \ Provides Git Syntax Highlighting\ \ d1y, Peter Tripp Catppuccin\ \ 849k\ \ 🦀 Soothing pastel theme for Zed\ \ Catppuccin Java\ \ 758k\ \ Java support.\ \ Java Extension Contributors Dockerfile\ \ 673k\ \ Dockerfile support.\ \ d1y, joshmeads PHP\ \ 561k\ \ PHP support.\ \ Piotr Osiewicz SQL\ \ 550k\ \ SQL language support.\ \ nervenes, notpeter, phileix, tammyxiong Vue\ \ 455k\ \ Vue support.\ \ Zed Industries Ruby\ \ 428k\ \ Ruby support.\ \ Vitaly Slobodin macOS Classic Theme\ \ 399k\ \ A macOS native style theme, let it same like native app in macOS.\ \ Jason Lee Catppuccin Icons\ \ 383k\ \ 🦊 Soothing pastel icons for Zed\ \ Catppuccin SCSS & SASS\ \ 370k\ \ SCSS and SASS support\ \ Raunak Raj Make\ \ 337k\ \ Makefile syntax highlighting\ \ Caius Durling, d1y, Marshall Bowers, Luke Naylor, Igor Támara, Michael Alexander, Donnie Adams Material Icon Theme\ \ 320k\ \ Material Design icons.\ \ Zed Industries Tokyo Night Themes\ \ 294k\ \ Tokyo Night Themes\ \ ssaunderss OpenCode\ \ 282k\ \ The open source coding agent.\ \ Anomaly Lua\ \ 274k\ \ Lua support.\ \ Max Brunsfeld XML\ \ 256k\ \ XML syntax support.\ \ sweetppro C#\ \ 250k\ \ C# support.\ \ fminkowski, Fabian Freimueller

Built with ultimate care

Every single feature in Zed has been designed to advance the state of the art. Anything less isn't worth building.

Learn More

Language Server Protocol support

Language Server Protocol support

Fully integrate your language of choice. Learn More Outline view

Outline view

Navigate through a file's symbols. Learn More Text and line manipulation

Text and line manipulation

Code efficiently with advanced text editing capacities. Learn More

Expand VideoPlay Video

\ \ Language Server Protocol support\ \ Fully integrate your language of choice.](/content/docs/configuring-languages/index.html)

\ \ Outline view\ \ Navigate through a file's symbols.](/content/docs/outline-panel/index.html)

\ \ Text and line manipulation\ \ Code efficiently with advanced text editing capacities.](/content/blog/text-manipulation/index.html)

Helix Mode

Feel at home with Helix and Vim.

Diagnostics Multibuffer

Project-wide errors and warnings.

Dev Containers

Consistent development environment.

CLI

Use Zed from the command line.

Rainbow Brackets

Easily move around deeply nested code.

Built-in REPL

Run code interactively through Jupyter kernels.

Syntax-aware selections

Efficiently select syntax nodes.

Inlay Hints

Peek through your code.

A letter

From the team

Programming and the tools we use to do so are changing. As the culmination of 15 years of work developing

industry-leading tools for developers like Atom, Electron,

and Tree-sitter, Zed strives to be at the forefront of this transformation.


We're confident that the future of software development lies in fluent collaboration between humans and AI. Crafted from the ground up, Zed is here to make this vision a reality.

Zed Industries

Nathan Sobo, Antonio Scandurra, Max Brunsfeld

The latest from Zed

Check out recent announcements, the Zed Decoded series, and other in-depth posts about Zed behind the curtains.

View Blog

\ \ Zed is 1.0 \ \ The editor we set out to build is now 1.0.\ \ \ \ Nathan Sobo\ \ April 29th, 2026\ \ Newest](/content/blog/zed-1-0/index.html) \ \ Introducing Parallel Agents in Zed \ \ Run multiple agents at once, in the same window.\ \ \ \ \ \ April 22nd, 2026](/content/blog/parallel-agents/index.html) \ \ Introducing Zed's Agent Metrics \ \ A public, weekly view of AI agent adoption and turn times inside Zed, plus a few patterns worth watching.\ \ \ \ Katie Geer\ \ April 9th, 2026](/content/blog/agent-metrics/index.html)

Daily drive with Zed

Code at the speed of thought.

Download now D Clone source C

Activating Demo…