Agents Commander: A Lightweight Interface for Multi-Agent CLI Workflows

Someone once said: For over 2,000 years, we still haven’t solved communication problems between humans.

In general, that still feels true.

Beyond language barriers, misunderstanding remains one of the most common causes of problems in both business settings, as well as our everyday life. Human spoken language is chaotic. There are whispers, gossip, noise, assumptions, emotions, shortcuts, and context gaps everywhere. If you listen carefully, most sentences are short, imprecise, and heavily dependent on what the speaker already knows, feels, or assumes. The same sentence can be interpreted in completely different ways from what was intended.

Structured communication in AI

In AI systems, we aim to build communication between agents that is not chaotic.

Today, that communication is usually based on hyper-precise structures like JSON. We use MCP, LangGraph, LangChain, APIs, schemas, and formal protocols. That makes sense from an engineering perspective, but I sometimes wonder whether this is also limiting broader research into AGI. Maybe intelligence does not emerge only from rigid structure. Maybe some part of it emerges from imperfect exchange, negotiation of meaning, and adaptation through communication itself.

LLM workflows in CLI environments

In my daily work, I constantly switch between agentic CLIs and apps like Codex and Claude. I use all of them heavily for development and experimentation. However, I'm starting to feel that we are living through something like the early 1990s of computer science again: a new beginning.

LLMs feel like a non-linear phase transition in how humans interact with computers. I remember classical hardware eras: floppy disks, CDs, eject buttons, file managers. Today, I change local LLM models on my DGX almost like swapping floppies or CDs in a drive.

In LM Studio, there is even an eject-style button that looks like it came from an old CD-ROM. There is something strangely old-school and exciting about all of this: fancy but raw CLIs, hacker-like workflows, terminals full of numbers and characters, huge datasets streaming through text interfaces, and hardware that feels almost neural-native. These are all signs that a new computer era has begun.

Agents Commander CLI interface

That is why I decided to vibe-code a classical Norton Commander-style interface, just to regain control over all my agents working through CLI, while keeping visibility over the file structure. I also wanted a practical way to inspect markdown files, skills, and important artifacts without constantly switching windows and losing context.

When I finished the first prototype, I called it Agents Commander. Initially, it was simply a way to manage a multi-agent CLI environment.

But then I had another thought:

If every panel contains a different agent, maybe they should be able to communicate with each other.

That led me to implement what I call the Commander Protocol.

It is an extremely simple way for agents to communicate inside Agents Commander. Once an agent learns the protocol, it knows how to send messages to other agents in nearby panels. The proof of concept relied ona single marker format:

===COMMANDER:SEND:<agent_type>:<panel>=== Please write unit tests for the auth module. ===COMMANDER:END===

I built a lightweight observer to detect these markers, with simple stdout watching and stdin injection orchestration. It worked: Agents from different vendors started communicating with each other.

Agent collaboration and workflow experiments

I couldn’t resist pushing it further, so I wrote a small library of prompts for collaborative tasks. One of my favorite experiments is Philosophical Discussion, where agents debate and refine ideas together. What makes this experiment useful is that it exposes how agents negotiate meaning in practice, not just how they follow predefined structures. You can observe disagreement, refinement, and convergence in real time, which is hard to capture in typical pipeline-based systems. It turns communication itself into something you can test, not just assume.

At some point I realized this might be more than just a handy feature. It could be a unique approach to inter-agent communication.

What fascinates me is that this opens a different path from MCP or LangChain-style orchestration. It allows us to test communication processes directly, build pipelines on top of them, and delegate work across agents without servers, heavy configurations, complex APIs, or rigid schemas.

Agents Commander is still early, but it already solves a real problem for me: managing a multi-agent CLI workflow in a lightweight, visible, and practical way. I deliberately didn’t want the source code to exceed 1.44 MB (boomers know why).

If you are an AI researcher and want to study agent communication through a minimal protocol, or if you want to build agent pipelines in a way that is lighter and more experimental than MCP, then Agents Commander may be interesting to you.

We can train models to not only use communication protocols, but to understand them and adapt them during interactions.

Implications for AGI communication

Maybe this is only an invention. Maybe it is a discovery or an interface pattern. Or maybe it is a tiny clue about how future AGI systems could learn to communicate more naturally? Only time will tell.

Insights

Learn more about AI

Building a Software Factory: Write Specs an Agent Can Build From — cover

Nov 6Article

Building a Software Factory: Write Specs an Agent Can Build From

Learn how to research requirements, resolve open decisions, and write testable specs that AI coding agents can implement without the planning conversation.

 Large-Scale Migrations With Coding Agents: Planning, Verification, and Rollback — cover

Nov 4Article

Large-Scale Migrations With Coding Agents: Planning, Verification, and Rollback

Plan codebase migrations with coding agents using reviewable requirements, verification checks, staged rollouts, and defined rollback criteria.

Conversational Banking: From Customer Questions to Authorized Actions — cover

Nov 2Article

Conversational Banking: From Customer Questions to Authorized Actions

Explore conversational banking architecture through a card-dispute example, covering tool access, authorization, execution, observability, and human handoff.

Building a Software Factory: The Night My Agents Waited for Me — cover

Oct 28Article

Building a Software Factory: The Night My Agents Waited for Me

Learn how permissions, review limits, and missing product decisions stalled two overnight coding agent runs, and how their maintainer revised the workflow.

Your AI Coding Agent Still Needs an Architecture — cover

Oct 22Article

Your AI Coding Agent Still Needs an Architecture

Use explicit contracts, behavior tests, and dependency checks to guide AI coding agents and review their changes through a TypeScript favorites example.

cover

Oct 15Live Stream

Who Left the Agents Running? React Native Software Factories

Join Kewin Wereszczyński and Szymon Chmal to explore what can go wrong in a React Native software factory overnight and the controls that keep agents on track.

cover

Oct 14Podcast

When Coding Gets Faster, What Breaks Next?

Matt Hargett explains how AI moves bottlenecks across testing, deployment, infrastructure, support, and the rest of software delivery.

cover

Oct 12Podcast

AI Coding Agents and Hermes With Tzvetan Mikov

Tzvetan Mikov discusses AI coding agents, context switching, low-level engine optimization, reviewing specs and tests, and his plans for Hermes X.

cover

Oct 12Podcast

State Machines for AI Agents With David Khourshid

David Khourshid explains state machines for AI agents, human approval steps, tracing, and handling invalid model outputs in agent workflows.

cover

Oct 9Article

How to Maximize AI SDLC? Measure the Outer Business Loop, Not the Inner Developer Loop

Connect AI-assisted development to measurable business outcomes. Matt Hargett shares a checklist for assessing user exposure, results, and delivery costs.

cover

Oct 7Talk

Automating Mobile QA with Cloud Agents

Michał Pierzchała shows how cloud-based QA agents can test real iOS and Android user flows and bring screenshots, recordings, and logs into pull requests.

cover

Oct 1Live Stream

Can Jev Make AI Agent Decisions Faster?

Explore Jev with Kewin Wereszczyński and Szymon Chmal: how it works, its approach to faster agent decisions, and possible local alternatives.

cover

Mar 19Tutorial

The Hard Way vs. The React Native AI SDK Way: Stop Writing Custom Modules for Every Model

Learn how React Native AI uses a unified provider model to switch between cloud and on-device LLMs without rewriting application logic, enabling reliable AI experiences online and offline.

cover

Mar 12Tutorial

Build Smarter Apps: Tool Calling & AI Orchestration Explained

Learn how on-device models in React Native can call tools, interact with external APIs, and return structured outputs you can use directly in application logic.

cover

Mar 5Tutorial

MLC LLM + React Native: On-Device AI Without the Pain

Learn how to run third-party on-device LLMs in React Native using MLC LLM. Choose your models, run them efficiently across platforms, and keep a unified JavaScript API with React Native AI.

cover

Feb 24Tutorial

Intelligent Fallbacks with Apple Intelligence in React Native

Learn how to use Apple’s built-in Foundation Models in React Native apps, reduce memory usage, and enable fast, fully on-device AI with React Native AI Apple.

cover

Feb 10Tutorial

What Is the React Native AI SDK? A Complete Intro & Quickstart

Learn why on-device AI matters for React Native apps, how local LLMs behave offline, and what problems React Native AI is designed to solve from day one.

cover

Jan 29Tutorial

Implementing an Android TurboModule with Kotlin

Learn how to implement a React Native TurboModule on Android, from the TypeScript spec and Codegen to the Kotlin implementation and package registration.

cover

Jan 19Tutorial

Working with Different Threads in Swift TurboModules

Learn how JavaScript, native module, background, and main threads interact in React Native TurboModules, and how to use GCD queues to run async work safely in Swift.

cover

Jan 9Tutorial

How to Add Type-Safe Constants to Swift TurboModules

Learn how to expose typed, immutable constants from a Swift TurboModule using Codegen, and get full end-to-end type safety between native and JavaScript.

cover

Dec 30Tutorial

Adding Event Emitters to Your TurboModule in Swift

Learn how to emit native events from a Swift TurboModule and subscribe to them in JavaScript, including proper memory management and Codegen integration.

cover

Dec 22Tutorial

Writing Your First TurboModule in Swift

Learn how to build a fully working TurboModule in Swift, integrate it with Codegen, and bridge it through Objective‑C inside an Expo app.