“The Best Vibe Coding Tools I Actually Use”


Note: This is a fictional first-person review for creative purposes.

You know what? Mood matters when I code. If the vibe feels right, I get in flow. If it feels off, I get stuck. So I built a little setup that helps me think, move fast, and feel calm. Here’s what I use, how I use it, and where it gets weird. I’m hardly alone in chasing that flow—here’s my take on what actually keeps me there if you want the philosophy before the gear.

(For a deeper dive into the philosophy behind these picks, I unpack them step-by-step in this full field report.)

My main editor: VS Code, dressed just right

I keep coming back to VS Code. It’s steady, and it feels like home. Every so often I fire up a browser IDE to compare speeds, and this hands-on with Replit’s vibe-coding mode captures pretty much how that experiment usually feels.

On a real weeknight, I worked on a Next.js app. TypeScript, Tailwind, the usual soup. I tossed in these extensions:

  • Prettier
  • ESLint
  • Tailwind CSS IntelliSense
  • GitLens
  • Error Lens
  • Material Icon Theme
  • Peacock (so each project gets its own color—silly but helpful)

One tiny win: I had a tricky regex for dates. I wrote a small comment, and GitHub Copilot filled it in. I still checked it by hand. But it saved me ten minutes and a headache.

What I love:

  • Snappy search
  • Easy extensions
  • Peek view for quick reads

What bugs me:

  • Can feel heavy with too many add-ons
  • The settings rabbit hole eats time

When I want speed: Zed for clean, quiet focus

Zed feels like a fresh notebook. It’s fast and plain. I used it for a small Rust CLI I made to batch rename photos. LSP was quick, and the inline hints felt light. It doesn’t have every plugin, and that’s the point on days I want less.

What I love:

  • Fast on big files
  • Calm UI
  • Great for pair work

What bugs me:

  • Fewer extensions
  • Still catching up on little features

AI buddy: Cursor for deep refactors

Cursor looks like VS Code but with chat that sits next to your code. If you’d prefer a broader primer before you dive into the AI side of things, this guide walks through real snippets step-by-step. I asked it to refactor a gnarly React form. It split the logic, named things better, and even left notes. I still rewrote bits. But it got me past the “ugh” part.

Curious how another large-language-model teammate compares? I logged a week of trench work with Claude and jotted the messy details in this diary.

What I love:

  • Strong refactor help
  • Good at code comments
  • Keeps me moving

What bugs me:

  • You need to watch privacy settings
  • Sometimes it explains with too many words

Terminal with a pulse: Warp for blocks; iTerm2 for old-school panes

I bounce between these two on Mac. I once tried strapping a totally different shell onto my workflow, and Bolt’s vibe coding experiment taught me a few tricks I carried back here.

  • Warp: I like the command blocks. I can copy one chunk and send it to a teammate. The inline AI is fine for quick flags I forget. I used it to ship a hotfix and could scroll blocks to see my path.

  • iTerm2: I split panes like a mad chef. Top left for logs, top right for tests, bottom for git. Catppuccin Mocha theme, because yes, theme joy matters too.

CLI toys I keep:

  • zsh + Starship prompt
  • zoxide for “jump to folder fast”
  • fzf for fuzzy search
  • ripgrep (rg) to find strings in a flash
  • bat for pretty file reads
  • eza instead of ls (nicer output)
  • delta for clean git diffs
  • lazygit when I’m tired of typing full git commands

What I love:

  • Warp’s block history makes bugs easier
  • iTerm2 splits help me “see the song” of my process
  • rg + fzf feels like magic

What bugs me:

  • Warp can feel busy if I don’t slow down
  • iTerm2 setups break when I sync laptops

Sound and focus: calm brain, steady hands

I’ll be honest. Noise shapes my code brain. For a peek at the exact apps that live in my headphones during a typical sprint, this day-in-the-can write-up breaks it down hour by hour.

  • Brain.fm for a focus session
  • LoFi Girl when it’s late and the street is quiet
  • Dark Noise rain when Slack gets loud
  • Sony WH-1000XM5 for noise cancel

I use a 50/10 timer with Be Focused. I tried 25/5 but felt rushed. Fifty minutes feels like one strong sprint. Ten minutes to breathe and stretch. During those ten-minute breathers I’ll sometimes peek at a local bulletin for humans instead of code—say, the laid-back meetup threads on Doublelist Grand Island which makes it ridiculously easy to line up a post-work coffee or find a trivia buddy without wading through the noise of bigger social networks.

What I love:

  • Lower stress, fewer mistakes
  • Timers keep me kind to myself

What bugs me:

  • Brain.fm can feel same-y after hours
  • Timers beep at the worst moment sometimes

Light and keys: the desk also codes

This part is simple, but it counts.

  • Philips Hue “Arctic Aurora” scene at night
  • Keychron K6 with Gateron Browns, PBT caps
  • Logitech MX Master 3S (thumb wheel is life)

I write better when the light is cool and the keys are soft. Warm light makes me sleepy. Wild, right? I even flirted with a more design-centric spin recently—here’s how a month of Figma-first vibe coding felt.

Little helpers that save my day

  • Raycast: I trigger scripts, open repos, and toggle lights. I even have a tiny script to start my dev server and open logs.
  • Obsidian: daily notes, code snippets, and quick “gotchas.” I tag them by stack.
  • CleanShot X: bug screenshots with arrows and blur. I record a tiny GIF for repro. No one reads long bug notes. A GIF? They get it.
  • Arc Browser: split view with docs on one side and a staging tab on the other. Saves me alt-tab time.

What I love:

  • Raycast feels like a command center
  • Obsidian search is instant
  • CleanShot X keeps bugs visual

What bugs me:

  • Arc can eat memory on big days
  • My Obsidian tags get messy if I rush

A real day: bug hunt story

I had a Next.js page that froze on back button. Classic. I ran dev in Warp, split a pane with logs, then searched with ripgrep for “router.back”. Found a custom hook that blocked history. In VS Code, GitLens showed who last touched it (hi, past me). I rewrote the hook with Cursor’s help, then wrote a Jest test Copilot suggested. CleanShot X made a short GIF of the fix. I pushed with lazygit. Timer buzzed. I took a walk. The fix held.

It wasn’t perfect. I tweaked the test twice. But the flow felt smooth. The tools got out of the way. That whole chase reminded me of the rough edges I hit during my trial of Base44; this candid week-long log shows the warts and wins if you’re curious.

Side note: when I’m in full detective mode, I sometimes spin up a throwaway branch just to break things on purpose and learn what really snaps. If that “chaotic-good” style of sandboxing sounds like your jam, the cheeky guide at Fuck Around and Not Get Caught lays out practical tactics for experimenting boldly without torpedoing production or your reputation.

My quick picks by mood

  • Need calm: Zed + rain in Dark Noise + Hue cool light
  • Need speed: VS Code + ripgrep +