Give Your CLI Agent a Persistent Sidecar
You’ve probably been there: you fire up a CLI agent—maybe an AI coding assistant, a data analysis tool, or a custom automation script. It does its job, but once the session ends, so does any visibility into what it did. What if you could keep a live, persistent dashboard attached to it, showing running tasks and letting you browse generated files, without changing your agent’s code? That’s exactly what Sidecar does.
It’s a simple, attachable service that gives any command-line agent a permanent web-based UI for task management and file viewing. Think of it as bolting a real-time mission control onto your existing workflows.
What It Does
Sidecar is a small Go server that you run alongside your main CLI agent. Once attached, your agent can send task updates (like “starting backup,” “processing data,” “task failed”) and expose its working directory for file browsing. All of this appears in a clean, auto-updating web interface that stays open for as long as Sidecar runs, completely separate from your agent’s own process lifecycle.
Why It’s Cool
The clever part is how non-invasive it is. You don’t need to rewrite your agent. If your agent can make HTTP requests, it can send POST requests to Sidecar’s local API to update task status. If it can write files, Sidecar can already show them. It’s essentially a plug-and-play monitoring layer.
This opens up some neat use cases:
- Debugging long-running agents: Watch tasks progress in real time without tailing logs.
- Sharing progress: Give a teammate a link to the Sidecar UI so they can see what your agent is doing.
- Inspecting outputs: Use the built-in file viewer to immediately check generated files without jumping back to the terminal or a separate file explorer.
It’s a pragmatic tool that solves a specific visibility problem with a very low barrier to entry.
How to Try It
Getting started is straightforward. First, get the Sidecar binary. You can download a pre-built release from the GitHub repository or build it from source with Go.
-
Run Sidecar: Start it on a specific port (default is 8080).
./sidecar --port 8080It will print the URL for the web UI (usually
http://localhost:8080). -
Run your agent and connect it: In your agent’s code, whenever you want to update a task, send a POST request to Sidecar.
# Example using curl from a shell script curl -X POST http://localhost:8080/tasks \ -H "Content-Type: application/json" \ -d '{"id": "job-1", "name": "Process Data", "status": "running"}' -
Open the UI: Navigate to
http://localhost:8080in your browser. You’ll see your task list updating and a file browser showing the contents of Sidecar’s working directory (you can point it to your agent’s directory when launching Sidecar).
That’s it. Your agent now has a persistent dashboard.
Final Thoughts
Sidecar feels like one of those tools you didn’t know you needed until you try it. It’s not a massive framework; it’s a focused utility that does one thing well. If you build or use CLI agents that run for more than a few seconds, attaching Sidecar is a no-brainer for that extra bit of operational clarity. It turns opaque processes into something you can visually track and inspect, which is almost always a win.
Check out the project, try the quick start, and see if it makes your agent work a little more transparent.
@githubprojects
Repository: https://github.com/marcus/sidecar