Obsidian CLI as a Control Plane for OpenClaw

Untitled design (1)

We Control Our LLM Agents by Dragging Cards in Obsidian

We manage about 50 Slack channels for our agency and our clients. Each channel has its own agent with its own personality. Some channels need a fast, cheap model. Others need something smarter for complex client work.

Switching which model runs which channel used to mean editing config files by hand. It was annoying enough that we’d put it off, leaving clients on the wrong model for days.

Now we drag a card on a Kanban board. Five seconds later, the agent is running on a different model.

How It Looks

Open Obsidian. There’s a board called “Channel Routing Board.” Columns are LLMs: Kimi K2.5, Gemini Flash, Sonnet 4.5. Cards are clients: Notis, Oddit, CrowdTamers, Brightway.

Drag the Notis card from Kimi K2.5 to Gemini Flash. A small background script notices the file changed, updates the routing config, and restarts the agent gateway. Done.

Click the Notis card and it opens the client’s personality file. Brand details, voice guidelines, what the agent should and shouldn’t say. Edit it right there. The agent picks up the changes.

One Agent Per Client

Each client gets one agent. That agent handles all their channels, internal and external. The personality file tells the agent how to behave differently depending on context: full access and casual tone for internal channels, polished and buttoned-up for client-facing ones.

This means moving a client to a better model upgrades every channel at once. No per-channel fiddling.

New Clients Set Themselves Up

A script runs every hour and checks for new Slack channels. When it finds one, it creates the client’s personality file from a template, wires up the config, adds a card to the routing board, and posts a notification. By the time someone sends a message in the new channel, an agent is already listening.

Why a Kanban Board

We already live in Obsidian. It’s where our notes, plans, and client briefs go. Adding a routing board there means we don’t need another tool, another login, another tab.

The board is just a markdown file with some headers and checkboxes. The Kanban plugin makes it look pretty. But if Obsidian disappeared tomorrow, we could edit the same file in any text editor and the routing would still work.

We also have a second board for task dispatch. Cards are tasks, columns are statuses. Drag a card to “In Progress” and the system dispatches an agent to work on it. Same pattern, same tiny watcher script.

What’s Running Under the Hood

A Mac Mini under a desk. Two Python scripts (about 120 lines each) watching for file changes. No cloud services. No databases. No web apps to maintain.

The scripts check if the board file changed. If it did, they parse the markdown, figure out what moved, update the config, and restart the relevant service. If nothing changed, they go back to sleep for five seconds.

Everything routes through LiteLLM, a proxy that makes different LLM providers look identical to our agent system. Adding a new model means adding one line to the proxy config and one column to the Kanban board.

Subscribe to our Newsletter

Signup and you’ll never miss out on the next post from CrowdTamers. Click that button–you know you want to!

Share this post with your friends

CONTENT IS GROWTH

I’m gonna give the key idea to CrowdTamers as a business away here as a thanks for reading this far. You can boil all good marketing down to 2 ideas: content and growth. CrowdTamers specializes in using content to discover how to build a growth engine. Sound interesting? Let’s chat!