Back to blog

August 26, 2026 · Dorien Herremans

I Built a File Manager Where You Can Actually Watch Your AI Agent Work

For years, the thing I missed most about switching to Mac was a feature from KDE's Dolphin file manager on Linux: the terminal that follows you. Browse to a folder, and the embedded shell is already there. No cd, no retyping a path you're already looking at.

I kept expecting some Mac file manager to have caught up by now. I paid for Path Finder for years, tried Forklift, but every one of them treated the terminal as a bolted-on extra, not something wired into navigation. Nothing actually synced.

So I built it myself. I also have inattentive ADHD, and re-aiming a terminal by hand, fifty times a day, was messing up my focus. Finally, this doorway effect (forgetting what you were doing as soon as you leave a room) I got each time when switching apps became something I couldn't stand anymore and I started building the solution.

What I didn't expect is how much more that feature would matter once there was an AI coding agent living in that terminal instead of just me.

The synced terminal turned out to be an AI feature

I built follow-mode for fifteen-year-old muscle memory: cd into the directory I'm already looking at, one time too many, fixed for good.

What I didn't anticipate is how much more it would matter once there was an agent involved.

When I am navigating files in Iruka, wherever I am, I can just type claude, or grok, or kimi, or whatever I'm running this month. The agent immediately is in the right folder and can start creating files, which you see appear, live, in the file manager where you already were. In addition, I added beautifully rendered markdown pane, as well as properly rendered csv grid, and syntax highlighted code preview.

Wherever I am in the file browser, that's where the agent starts. No cd needed.
Wherever I am in the file browser, that's where the agent starts. No cd needed.

Now what I personally really want to know when any AI touches my files is what was changed…

The problem is that you couldn't easily see what it changed

The agent says: I've updated the config and refactored the handler.

Did it? What was changed? Did it also touch files it wasn't supposed to?

How do I check this? Ask the agent to cat the file (burning tokens to look at your own disk). Switch to your editor and navigate there. Or trust it, which is a choice you get to make roughly once before you stop making it.

None of those is glancing at the file, which is the thing you actually want.

To solve this, I built a Review Pane directly in Iruka this month. It provides intuitive git integration. This enables a simple folder/file Diff in the review pane. Now you can easily see which files were touched and which lines were added. And remember, we are just still in the File Manager. Didn't have to switch applications once!

How it works, end to end

Let me walk you through an actual session, because this is one of those features that sounds procedural written down and feels obvious in use.

1. Start Claude right where you navigated to.

Because of the synced terminal in Iruka, when you click navigate to a folder, you can just type 'claude', 'kimi', 'grok', or whichever straight in the terminal, which is already showing and at the right place. Since it's a file manager, it has all the normal navigation methods: dual/single pane, breadcrumbs, and … my favorite one: typeable url path bar that works with Tab autocomplete just like in terminal.

2. One click to make the folder observable

I'm in a folder. It's not a repo. In the toolbar there's a button that initializes git right there, in the directory I'm looking at no terminal, no git init, no thinking about it.

Why am I initializing git? Not necessarily to push to github (although never a bad idea backup-wise!), but to be able to easily track what your AI has changed.

One click. The folder is now watchable.
One click. The folder is now watchable.

I do this reflexively now, even for scratch folders I have no intention of ever pushing anywhere. It costs nothing, and it means the next hour is trackable.

3. Let the agent write

I ask Claude to create a Markdown file describing Iruka, plus a unchanged.txt I've told it to leave alone.

They show up in the file browser above the terminal immediately. No refresh, no switching apps. I select the Markdown file and toggle the preview, and I get a properly rendered document: headings, code blocks, tables, real typography. Not a wall of # and *.

Rendered markdown preview of the file that was just created.
Rendered markdown preview of the file that was just created.

This matters more than it sounds like it should, because agents narrate in Markdown. Plans, migration guides, analysis reports, CHANGELOGs. Projects can accumulate dozens of agent-written .md files. They are documents, written to be read, and every mainstream file manager renders them as raw markup, because in 2001 nobody's disk was full of Markdown.

4. Stage and commit — the baseline

The new files show up as untracked. I can hit Stage all, or pick exactly the files I want git to follow. Then the initial commit, from the same window.

Initial files created by Claude shown before being staged.
Initial files created by Claude shown before being staged.

That commit isn't for posterity. It's a baseline, or the before that makes everything the agent does next visible.

5. Now ask it to change something

I ask Claude to modify the README. A status badge appears next to the file in the list the moment it's touched.

Then the Review pane, which is the part I use most: exactly which files changed, and clicking one opens the diff. Red and green, line by line. I read what the agent did rather than what it said it did — and reading a diff is about four times faster than reading a summary of a diff.

Review pane on the right shows which files changed and how.
Review pane on the right shows which files changed and how.

When I'm happy: stage, commit. When I'm not, I know precisely which lines to argue with.

6. And when it's almost right, fix it yourself

Half the time the agent gets within one word of correct. A wrong value in a config, a heading in the wrong place, a stray console.log.

There's an Edit button in the preview pane. Click it, fix it, save (auto-saves after a beat), ⌘S works, with a Saved / Unsaved indicator so you're never guessing. Then commit that too, so your own fix is as visible in the history as the agent's work.

Round-tripping through the agent with something like "please change line 14 to…" for a two-character edit is absurd. So is opening an IDE for it. In Iruka you can do a very quick edit of text file right in File Manager.

Two-character fixes shouldn't require a fourth application.
Two-character fixes shouldn't require a fourth application.

Aim, delegate, watch, read, fix, commit → all in one surface

That's the whole loop, and the point is that it happens on one continuous surface. No alt-tabbing between a terminal, a file browser, and an editor, playing air traffic controller for a process that was supposed to be saving you time.

I want to be precise about what this is not, because I don't want to be overclaiming:

Iruka is not an IDE, and it isn't trying to become one. There's no language server, no refactoring engine, no debugger, no project-wide symbol search. For real editing work you'll still want your editor, and the in-place editing is deliberately scoped to quick fixes. It's for "I see the problem" to "the problem is fixed" in one click, not for writing a module.

The Review pane is likewise not a replacement for a proper git client. There's no interactive rebase, no branch graph, no cherry-pick UI. It answers one question: what changed, and do I accept it. Because that's the question an agent session generates forty times an hour.

Nor is the AI workflow a veneer over a thin app. Underneath it, Iruka is a full Finder replacement first: dual-pane browsing, batch rename with preview, an operations queue for large transfers, list/column/icon views, Power Search that greps file contents with regex and no indexing, syntax-highlighted previews across 60+ languages, CSV as an actual grid. Saved SSH hosts connect from the sidebar in one click, which means running an agent session on a remote box is the same workflow minus typing IPs from memory. S3, SFTP, and WebDAV mount as folders.

Native Swift, no Electron. Starts in under a second. That was never a purity thing, instead, it's that I open this app forty times a day and a 400ms launch is a different product than a 4-second one.

How to try Iruka

You can easily install with:

brew install dorienh/iruka/iruka

Or download via iruka.sh with a 30-day trial, no credit card, macOS 14+, universal notarized binary. No subscription, but rather a lifetime license for $19.99, that's 3 coffees and helps me validate the time I spend on this. Want it for free instead? Leave a note on GitHub to apply for the ambassador program.

I had originally built this for myself, but I hope you all enjoy Iruka as well.

The roadmap is at GitHub Discussions. I read every post and respond to feature requests.