From Zero to Zed: A n00b journey
I find myself spending more and more time building solutions, which include software, that bring LLMs into different business domains. Getting more and more crushed by the confusing cacophony that is the VScode IDE — It’s great, free, but full of cruft (probably my fault) — I needed a fresh start. And that fresh start is Zed. But is it too early?
This is a quick post to index the work I’m going to do and the journey I’ll be on to help other people who are new to Zed. Zed is new-ish. It’s VScode-ish. It has everything I need, but is missing somethings some people might need. So let’s set the context first.
The live version of this document is in my Viewyonder Github repo at Zero2Zed. (9 Dec 24).
- Context
- Happy Features for Zero to Zed
- 1. Tippety-tappetty CLI
- 2. Set your Zed dials to afterburner
- 1. Global Settings (~/.config/zed/settings.json)
- 2. Project Settings (.zed/settings.json in project root)
- 3. Language-Specific Settings
- Example popular global setting – editor soft wrap!
- 3. Extensions
- 4. Languages, Formatting, Linting
- 5. Multibuffers
- 6. Panels
- 7 Completions
- 8 Assistant.
- Happy Projects for Zero to Zed
- Happy People and Places for Zero to Zed
- Happy Resources for Zero to Zed
- Futher Ideas for Zero to Zed
Context
This might not be the article for you. It’s written for techie folks who are new to Zed. I presumes, for example, that you can install software on a Macbook and — deep breath — handle Python environments… 😜
So, to orient you and me, let’s quickly chat about who, why, and what TF…
Who TF?
This is of course, primarily, for you, Dear Reader. But the first Dear Reader is myself! I’m writing this to help me learn Zed and many other other things: asking questions, documenting, and trying to explain stuff is how I learn. The benefit is to help others.
Why TF?
I started using Zed in Dec 2024 on the brink of starting a bunch of projects (is that the collective noun for projects?). I’m was finding myself using VScode more and more… and it’s becoming proper crufty… and confusing… and I wanted to reset. I’ve tried most IDEs over the 30 years (cough) but a fresh IDE on the block tickled my interest: Zed.
So, as an average programmer (I’m more a CTO type with 30 years experience doing all sorts) who has never used Zed and has a load of Python, LLM, and other projects to do: Zed it is, come what may.
What TF?
I hate doing any tech without at least reading some of the docs. I like to find people that are part of the project. I like to read other user blogs and articles.
But most useful of all is to learn by doing, so here’s what I did as a n00b:
- Install all the stuff on my Macbook Air (not in this guide).
- Read the features before I start playing (see Happy Features below).
- Do the basic config as per the docs.
- Do a simple Python / Anthropic program.
- Write this up.
- Consider what is next.
Happy Features for Zero to Zed
As a long-time techie, I’ve worked on systems with, say, a 1,000 knobs and dials. And the best people know which fewest nobs and dials make the most impact. Some never get touched at all. I call this the Happy Path.
As a Zed n00b, I’m better placed than an expert Zed user to find this path because I don’t have the curse of knowledge. I will, of course, make mistakes, often get lost, and occasionally blown up.
But here’s my 8-step Zed n00b happy path in terms of groking Zed. The best bit is the last bit.
TODO Paste part of TOC
What’s not included in the happy path, because they’re not for n00bs like me
- Key bindings (if you’re into this stuff, you’re not a n00b).
- Debugger – there isn’t one built-in at the moment, it’s on the Roadmap
- Github – Github help isn’t built-in, you need to use the CLI. See CLI.
- Themes are simple to use, but let’s not talk about customizing/creating.
1. Tippety-tappetty CLI
I swear the CLI was installed automagically on my Zed install, but I might have just forgotten. But make sure you can do the following, if not, just use the Install CLI option in Zed.
Just like VScode CLI cmd “code .”, just pop into your project folder and run the zed app with a cwd period:
chamberz@Steves-Air zero2zed % zed .
And of course you can always kick off the Zed app on a Max via Finder > Applications:
You now have a built-in CLI terminal inside the Zed app — just like VScode — via the keyboard shortcut control + backtick, or be like my Dad and use the View menu.
There is no Github help built into the Zed IDE. You need to make sure your terminal is setup properly for git
and gh
commands. Those bits are outside the scope of this article. Because they’re easy and you’re awesome!
Make sure you know how to use Python envs. Don’t cry to me, I didn’t drop Python on its head as a child. If you use venv like me, then when you kick off the Zed app from the CLI in a project folder with a venv activated: it will work it all out.
2. Set your Zed dials to afterburner
If you want all your settings in one place, then you need to change up a gear.
In Zed, there are three “layers” of settings, and the first is at the “you” level.
For me, the Zed settings on the Mac are in a $user/.config/zed directory. In settings.json, you set your settings. But there are “lower levels” that can override these
For n00bs this means you don’t have a helpful/hateful UI wizard to edit your settings.. if you go to Zed > Settings > Open Settings… it just opens your settings.json in Zed. Edit the file. Save it. Changes are automagically applied. Tidy!
This is worth repeating for n00bs, because I think this is one of Zed’s northstars to be simple, efficent, and fast: once you change a setting, it’s automagically refreshed in the Zed app. You don’t have to “reload” or “restart” or “try turning it off and on again”.
But wait — is it really that simple? No. But let’s call it powerful instead of complicated, right? You have different places for settings:
- Global (you)
- Project
- Language
1. Global Settings (~/.config/zed/settings.json)
These affect all projects and workspaces Access via Zed > Settings > Open Settings Changes apply instantly without restart
2. Project Settings (.zed/settings.json in project root)
Override global settings for specific projects Create manually or via Command Palette: “Create Project Settings” Great for project-specific formatting rules
3. Language-Specific Settings
Can be set at both global and project level Use the [language_id] key.
No need to force an unexpected reboot… 😃
Example popular global setting – editor soft wrap!
As a n00b, I found these came first:
- Put a soft-wrap on the editor, so lines wrap to the editor width.
- Extensions like Ruff make their own changes.
My current n00b settings.json looks like this. I hand edited this to add the “soft_wrap” line.
// Zed settings
//
// For information on how to configure Zed, see the Zed
// documentation: https://zed.dev/docs/configuring-zed
//
// To see all of Zed's default settings without changing your
// custom settings, run `zed: open default settings` from the
// command palette (cmd-shift-p / ctrl-shift-p)
{
"ui_font_size": 16,
"soft_wrap": "editor_width",
"buffer_font_size": 16,
"theme": {
"mode": "system",
"light": "One Dark",
"dark": "One Dark"
}
}
3. Extensions
In my context, I’m focusing on Python code specifically for AI/LLM projects. I’m also considering making Zed my primary Markdown editor.
So, as a Zed n00b, I just enabled a couple of Extensions, but it’s soooo easy: two points…
- Zed will detect if you’d benefit from an extension, like when I added a JSON file and it asked me if I wanted to add Firefly…
My current extenstions — and, you guess it, are simply defined in a file! – are:
- HTML
- Git Firefly (Git syntax highlighter)
- Ruff (Python linter/formatter)
- Synthwave ’84 Theme — well, I’m Gen X, baby.
C’est ça!
4. Languages, Formatting, Linting
In my context, his is just (for now!) Python, so it’s simple. I’m going to do more later, but let’s keep it simple…
…but is it simple? I learned that there are two parts to this (perhaps more than a n00b needs to know, but I”m incredibly nosey):
- A tree-sitter does the syntax highlight stuff.
- A language server protocol parser does the language intelligence stuff (autocomplete etc)
- A Ruff extension does the format and linting.
5. Multibuffers
EDITOR: MORE TO COME ON THIS.
Multibuffers are one of Zed’s standout features. At this time of writing (Dec 8) I haven’t used these in anger, but will during the coming projects. I mention them here as a note to myself to make sure I use this handy feature later!
Split Views
Cmd/Ctrl + K, then arrow key for direction Perfect for viewing tests alongside implementation Each pane can have its own layout
Pane Navigation
Cmd/Ctrl + W to cycle through panes Cmd/Ctrl + number to jump to specific panes Cmd/Ctrl + W, W to maximize current pane
Smart Features
Auto-arrangement based on file types Remembers layouts per project Link mode for synchronized scrolling
6. Panels
For a n00b, think of your code front-and-centre, then there are four panels like north-east-south-west, but called top-right-bottom-left.
Specific views sit in specific panels. For example, the Terminal panel is south/bottom. You can toggle them all on/off.
- Outline panel shows the headings / key parts of whatever the main panel has.
- Terminal panel — where I run code and do github stuff.
- Project panel — that’s your folders and files.
- Collab panel — that’s the Zed channels that I haven’t use yet, as a n00b.
7 Completions
EDITOR: TODO
8 Assistant.
NOTE: I’m currently testing this out.. but here are my early notes:
Zed currently supports multiple AI assistants:
GitHub Copilot
Install via Extensions Requires GitHub Copilot subscription Settings:
{
"copilot": {
"enable": true,
"enable_auto_suggestions": true
}
}
Claude MCP to Claude LLM
Claude MCP (Multi-Channel Protocol)
Configure Claude MCP in project settings
{
"claude_mcp": {
"api_key": "your_api_key",
"model": "claude-3-opus-20240229"
}
}
then
- Use Command Palette: "Claude: Start Session"
- Create a `.claude` file for prompts
Happy Projects for Zero to Zed
These are simple projects to show it works…
Simple ClaudeAI Test App
Claude MCP
EDITOR TODO Claude MCP coming next.
PydanticAI
AI Agents
Happy People and Places for Zero to Zed
There’s a sub for Zed! Go to the ZedEditor Reddit sub
X
Couldn’t find an existing X community. Best I could do as a Zed n00b was start my own X list.
Join the @4thWaveStevie Zedders list
People I’ve found so far (and will keep =adding!)
Zed Community
This Zed Community Links page has useful places to go:
Happy Resources for Zero to Zed
Zed YouTube Channels
Zed Blogs
Zed Roadmap
The offical Zed Roadmap.
Futher Ideas for Zero to Zed
Dec 7 2024
Here’s my rough n00b brainstorm of stuff to do to learn Zed through doing projects, and sharing.
Reddit group? https://www.reddit.com/r/ZedEditor/
Include X users who are helpful.
Find blogs that are helpful and NOT behind paywalls.
Draw a little tree of useful Zed online resources.
Draw a little tree of “happy path” useful Zed functions and features. Maybe colour code and beginner -> intermediate -> advanced?
Compare and contrast to VScode and Neovim (is it in the middle?)
Just link to install, don’t repeat (it’s easy).
Quick concierge tour of the IDE.
Extensions?
Set up for Python?
Set up with Claude IDE?
Markdown?
Set up for Github?
Set up on your laptop (local file structure – use a cloud service like iCloud).
Project examples?
Video content?
What blogs to write?
Create an all-on-one markdown file?
Schedule regular posts on X/LinkedIn.