We've been experimenting with a different approach to AI agent frameworks. Instead of SDKs and compiled code, what if everything—the
agents, their tools, their memory—was just Markdown files?
LLMunix is our prototype testing this idea. It's a "Markdown OS" where an LLM acts as the kernel, interpreting markdown-defined
agents and tools at runtime.
The interesting part: We added virtual tool support to Gemini CLI (via GEMINI.md manifests). Tools are defined like this:
#### ask_local_llm
`sh`
```sh
MODEL=$(echo "$GEMINI_TOOL_ARGS" | jq -r .model)
PROMPT=$(echo "$GEMINI_TOOL_ARGS" | jq -r .prompt)
curl -s "http://localhost:11434/api/generate" -d "{\"model\":\"$MODEL\",\"prompt\":\"$PROMPT\"}"
json
{"name": "ask_local_llm", "description": "Query local LLM via Ollama", "parameters": {...}}
When the agent needs a capability it doesn't have, it writes a new .md file defining that tool, then immediately uses it. We've seen
it create research agents, analysis tools, and data processors on demand.
**Technical bits:**
- Virtual tools run sandboxed shell scripts
- Arguments passed via environment variables
- Tools discovered at runtime by parsing Markdown
- No compilation, no deployment - just save the file
**What we learned:**
1. Agents are surprisingly good at writing their own tools when they understand the format
2. Multi-LLM workflows become trivial (delegate to local llama3.2 for code review, gpt-4 for strategy)
3. Non-programmers can understand and modify agent behavior
4. Version control for AI behavior is just git
The code is at: https://github.com/EvolvingAgentsLabs/llmunix
Our Gemini CLI fork with virtual tools: https://github.com/EvolvingAgentsLabs/gemini-cli
Curious what HN thinks about Markdown as a "programming language" for AI agents. Is making agent development accessible to
non-developers worth the tradeoffs? What domains beyond coding could benefit from this approach?