---
title: A markdown viewer, not a file browser
description: Agents and humans coordinate through markdown — plans, decisions, handoffs. PonyMux added a read-only viewer for that, and stopped there.
type: blog
date: 2026-09-12
authors:
  - name: PonyMux
    url: https://x.com/ponymux
seo:
  title: "A Markdown Viewer, Not a File Browser"
  description: "Why PonyMux built a read-only markdown viewer instead of a file browser — and why the difference matters for agent workflows."
  image: /og/blog/a-markdown-viewer-not-a-file-browser.png
  x:
    creator: "@ponymux"
---

*By PonyMux · September 12, 2026*


Agents write a lot of markdown. Plans, architecture decisions, handoff notes,
CLAUDE.md. Most of the time I end up `cat`-ing these files or switching to
VS Code just to glance at one. The file never needed editing. I just needed
to read it.

So PonyMux added a markdown viewer to the Side Panel — read-only, scoped to
`.md` files, rendered through the terminal itself. Not a file browser. Not a
step toward becoming an editor. A place to glance at the documents that
coordinate work between you and your agents, without leaving the terminal.

The distinction matters more than it sounds.

## Why not a file browser?

The obvious feature request is a file tree. Several terminal products are
heading that way — sidebar file explorers, inline previews, built-in editors.
It's a natural direction. It's also a step toward becoming VS Code.

That's the tension. Every feature like that makes a terminal more capable and
more complicated. At some point you're not improving the terminal anymore.
You're building a second development environment inside it.

PonyMux has a principle called [Stay small](/docs/philosophy#stay-small): a
feature belongs here when it makes terminal sessions easier to find,
understand, continue, or enjoy. Otherwise, it probably belongs somewhere else.

A file browser didn't pass that test. But there's a more interesting question
underneath it: do you actually need to browse source code in your terminal mux?

Agents are increasingly the ones reading and writing code. They navigate
files, they make changes, they run tests. What *humans* need to see more often
are the documents that sit above the code — the plan the agent is following,
the decision log it should respect, the README it just updated.

<p class="pony-turn">Markdown is the handshake format between you and your agent.</p>

That's the file type worth supporting well. Not all files. This one.

## What does the viewer actually do?


*PonyMux interface view: files.*


It's a read-only Markdown renderer that lives in the Side Panel, next to
Sessions. Press `⌥⌘F` or click the toolbar button. It renders `.md` files with
styled headings, code blocks, tables, task lists, and inline images.

There are three ways to open a file:

- **Click a `file://` link** in terminal output — if it points to a `.md` file,
  PonyMux opens it in the viewer instead of Finder.
- **`pony open <path>`** from a script or agent — pushes the file into the
  panel programmatically.
- **The file picker** in the panel itself — standard open dialog, filtered to
  `.md`.

Editing stays in your editor. This is for reading and confirming. The context
menu has "Open with Default App" and "Reveal in Finder" for when you need to
go deeper.

<blockquote class="pony-point">
  <p>Agents are doing more of the writing. What you need more of is a place to read.</p>
</blockquote>

## Can agents open files for you?

This is the part I'm most interested in. The viewer isn't just something you
open manually — agents can push files into it.

When an agent finishes writing a plan, it can run `pony open plan.md` and the
file appears in your Side Panel. A small toast shows who sent it — "Opened by
Claude Code" or "Opened by Codex" — so you know why the panel popped up.

The same thing happens with `file://` links. If an agent prints a path to a
markdown file in its output and you click it, the viewer catches it. No Finder
window. No editor launch. Just the rendered file, right there beside the
terminal.

This flips the usual direction. Instead of you going to find the file, the
file comes to you. The agent produces a document, and it shows up where you're
already looking.

It's a small workflow change. But after using it for a few days, going back to
`cat DECISIONS.md` feels like a step backwards.

## How does it stay light?

The viewer borrows a few ideas from a browser without trying to become one.

Back and forward navigation works within the panel. Click a relative `.md`
link inside a rendered file and it navigates in place — no new window, no
stack of tabs. The chevrons in the header track where you've been.

You can pin up to ten files for quick access. Pinned files and recent files
show up in the empty state when nothing is open. Each terminal maintains its
own browsing history, so switching terminals swaps the context.

The history is deliberately ephemeral. Quit PonyMux and it clears. The viewer
doesn't track what you've read across sessions or build a project model out
of your file visits. It's browsing state, not persistent data.

One detail I like: the viewer renders through the terminal's own surface. Same
font, same theme, same copy behavior. If you change your terminal theme, the
viewer changes with it. It doesn't look like a different app was embedded
beside your terminal — because it wasn't. File watching keeps it current: edit
the file in your editor, the viewer refreshes automatically.

## Just enough, not everything

There's a version of this feature that supports every file type, has syntax
highlighting for source code, and lets you edit inline. That version would be
genuinely useful. It would also mean PonyMux is now competing with the editor
you already have.

I'd rather keep the boundary. Agents are getting better at reading and writing
code. The part where humans still need to look carefully is the coordination
layer — the plans, the decisions, the context documents that tell the agent
what to do and tell you what it did.

A read-only markdown viewer is a small, specific answer to that. It doesn't
try to replace your editor. It doesn't try to show you everything. It shows
you the one format that matters most for the way agents and humans work
together right now.

For the full details — keyboard shortcuts, pinning, and how `pony open` works
from scripts — see the [Files section in the docs](/docs/workspace-navigation#files).
