Markdown as an Operating System
Created on 2025-09-30 10:12
Published on 2025-10-04 02:30
Your operating system runs on binaries. Your AI agents should run on Markdown.
Think about it: A traditional OS has binary executable files—compiled, opaque, rigid. You execute /usr/bin/python and it does exactly what it was compiled to do. No negotiation. No adaptation. No editing the binary mid-execution.
Now imagine an operating system where there are no binaries. Just Markdown files. Prompts in plain English. An AI coding agent reads them, interprets them, executes them—and can edit them while running.
That’s not science fiction. That’s 2025. And it’s called Markdown-as-OS.
The Core Idea: Markdown Files Are the System
A normal operating system:
-
Executables: Binary files in /bin, /usr/bin
-
Configuration: Opaque formats (Registry, plist, binary configs)
-
State: Scattered across databases, memory, temp files
-
Logs: Binary formats, syslog, proprietary tools to read them
-
Interface: APIs, CLIs, GUIs built in code
A Markdown operating system:
-
Executables: Markdown prompts (plain English instructions)
-
Configuration: AGENT.md, config.md (human-readable specs)
-
State: state.md, queue.md (current system snapshot)
-
Logs: journal.jsonl + runs/*.md (greppable, diffable)
-
Interface: The Markdown files themselves (agents read and write them)
Nothing is compiled. Nothing is interpreted. It’s just Markdown. In English. And the agent reads it, understands it, executes it.
The agent can also edit it. Mid-execution. See a TODO in spec.md? Complete it, update the file, commit. State changes? Update state.md. Task done? Check the box in queue.md.
Dynamic. Transparent. Self-modifying. Auditable.
The 2025 Shift: Spec-Driven Development
In September 2025, GitHub open-sourced Spec Kit—a toolkit for spec-driven development with coding agents (GitHub Copilot, Claude Code, Gemini CLI). The idea: start with a specification (Markdown), make it the source of truth, let agents generate/test/validate code from it.
Same month, the AGENT.md standard gained native support across major coding agents:
-
Amp: Native support since May 2025, multiple AGENT.md files since July 2025
-
Claude Code, Cursor, Firebase Studio, Gemini CLI, OpenAI Codex: All support AGENT.md (native or via symbolic linking)
AGENT.md is “the README your AI coding agents actually read.” Place it at repo root (or subpackages in monorepos). Sections:
-
Project overview, architecture notes
-
Build/test commands
-
Code style guidelines
-
Testing instructions
-
Security considerations
-
Data constraints
Example from builder.io (real production AGENT.md):
The agent reads this before writing any code. Result: code matches project conventions, uses correct library versions, follows team style—on the first try.
No more “That’s not what we wanted” after three weeks of work.
LLMunix: The Pure Markdown OS
The most extreme example: LLMunix (GitHub: EvolvingAgentsLabs/llmunix).
Tagline: “Transform any LLM into an intelligent operating system using pure markdown.”
Architecture:
-
Agents and tools defined entirely in Markdown documents
-
No code compilation, no complex APIs
-
Just Markdown that any LLM can interpret
Core concept: Treat everything as either an Agent (decision maker) or Tool (executor), all defined in Markdown. The framework automatically interprets agent definitions, routes tasks, handles tool execution—purely from Markdown instructions.
Use cases LLMunix handles:
-
Research & analysis (multi-source data gathering, report generation)
-
Development workflows (code generation, testing, deployment)
-
Complex orchestration (multi-agent task decomposition, parallel execution)
Supported runtimes: Claude Code (recommended for production), Qwen Runtime (lightweight, learning/dev).
Files: CLAUDE_CODE_ARCHITECTURE.md, GEMINI.md, QWEN.md, setup scripts—all configuration in Markdown.
The Markdown OS Directory Structure
A typical Markdown-as-OS project looks like this:
Let’s walk through each directory.
1. /specs/ — The Source of Truth
specs/AGENT.md:
Agent reads this file first. Knows the stack, the rules, the workflow. No guessing.
specs/feature.md (requirement doc):
Agent reads this → knows exactly what to build. No ambiguity. No “I thought you meant…”
2. /plans/ — Agent-Generated Execution Plans
Agent reads specs/feature.md, generates plans/feature-plan.md:
Human reviews plan → approves → agent executes.
3. /runs/ — Execution Logs + Replayable Tests
runs/2025-09-30.md (human-readable log):
Human reads this → sees exactly what happened. No digging through binary logs.
runs/journal.jsonl (detailed NDJSON event stream):
Queryable with grep, jq, awk:
runs/test.md (replayable test script):
Agent (or human) can replay this script to verify the feature still works after changes. Deterministic. Reproducible.
4. /state/ — Current System State
state/queue.md (task queue with checkboxes):
Agents grep for – [ ], claim tasks, update to – [x], commit. Simple. Transparent.
state/deployment-state.md (current deployment state):
Agent reads this → makes deployment decisions → updates the file → commits. State is always current, always visible.
5. /reports/ — Human-Readable Summaries
reports/summary.md:
Human reads this → understands what happened, what to do next. No need to dig through logs.
How Agents Use Markdown OS
Agent workflow (Python pseudocode):
Key point: Agent reads Markdown, writes Markdown, edits Markdown. The OS is Markdown.
Real-World Example: WordPress Landing Page Deployment
Scenario: Marketing team wants a new landing page for a product launch.
Traditional workflow:
-
Marketing writes requirements in Slack/email (ambiguous, scattered)
-
Developer interprets requirements (guesses missing details)
-
Developer builds page (may not match intent)
-
Marketing reviews (requests changes)
-
Developer revises (2-3 rounds of back-and-forth)
-
Deploy (manual, error-prone)
-
QA (finds bugs, back to step 5)
Total time: 3-5 days. Frustration: high.
Markdown OS workflow:
-
Marketing writes specs/product-launch.md (structured requirement doc)
-
Agent reads spec → generates plans/product-launch-plan.md
-
Marketing reviews plan → approves (or edits the Markdown, re-runs)
-
Agent executes plan:Generates HTML/CSS from specWrites tests (runs/test.md)Runs tests (logs to runs/journal.jsonl)Deploys to WordPress (updates state/deployment-state.md)Verifies deployment (checks staging URL)
-
Agent writes reports/summary.md (what was built, links, next steps)
-
Marketing reviews report → page is live
Total time: 30 minutes. Frustration: zero.
Why? The spec was clear. The plan was visible. The execution was logged. The outcome was verified. All in Markdown.
The Advantages: Why Markdown Wins
1. Greppable
Find all TODO items:
Find all failed deployments:
Find when feature X was deployed:
No proprietary log viewers. No complex queries. Just grep.
2. Diffable
See what changed today:
Compare two execution runs:
Review agent’s changes before committing:
Markdown diffs are human-readable. JSON/binary diffs are gibberish.
3. Version-Controlled
Full audit trail in git history:
Rollback to previous state:
Branch strategies work naturally (feature branches, release branches, hotfix branches).
4. Agent-Friendly
LLMs understand Markdown natively. No parsing libraries. No schema validation. Agent reads Markdown → understands intent → acts.
Example: Agent reads this checkbox:
Agent understands:
-
Unchecked = pending
-
Task = “Fix auth bug”
-
Owner = auth_agent (that’s me!)
-
Priority = high (do this first)
No JSON schema. No API docs. Just English.
5. Human-Readable
Developers, PMs, marketers, executives—everyone can read Markdown. No specialized tools. Open it in:
-
VSCode
-
Obsidian
-
Notion (import)
-
GitHub web UI
-
Terminal (cat, less)
-
Any text editor
Transparent by default. No black boxes.
6. Portable
Markdown files work everywhere:
-
macOS, Linux, Windows
-
GitHub, GitLab, Bitbucket
-
Slack, Discord (inline preview)
-
Email (copy-paste works)
-
Obsidian, Notion, Roam Research
No vendor lock-in. No proprietary formats. Plain text forever.
7. Composable
Link files wiki-style:
Obsidian, Foam, Dendron render these as clickable links. Agents can follow them to gather context.
8. Self-Modifying
Agent can edit its own instructions mid-execution:
-
Agent reads specs/AGENT.md
-
Discovers new best practice during execution
-
Edits specs/AGENT.md to add the practice
-
Commits change: “Add: Prefer async/await over .then() chains”
-
Future executions follow updated instructions
The system learns by editing its own Markdown.
Try that with a compiled binary.
Comparison: Traditional OS vs Markdown OS
Traditional OSMarkdown OSBinary executablesMarkdown prompts (plain English)Compiled/interpreted codeNo code—just instructionsOpaque configuration (Registry, plist)Human-readable config (AGENT.md)State in databases/memoryState in markdown files (state.md)Binary logs (need tools to read)Markdown + NDJSON (grep/diff friendly)APIs for inter-process communicationMarkdown files (agents read/write)Rigid (recompile to change)Dynamic (edit Markdown mid-run)Developer-only (CLI/code)Everyone (plain English)Version control as afterthoughtGit-native by designProprietary tools to inspectAny text editor
The 2025 Industry Validation
GitHub Spec Kit (September 2025):
-
Open-source toolkit for spec-driven development
-
Works with GitHub Copilot, Claude Code, Gemini CLI
-
Core idea: specification as source of truth
-
Agents generate/test/validate code from Markdown specs
Reference: https://github.blog/ai-and-ml/generative-ai/spec-driven-development-with-ai-get-started-with-a-new-open-source-toolkit/
AGENT.md standard (2025):
-
Universal agent configuration file format
-
Native support: Amp (May 2025+), Claude Code, Cursor, Firebase Studio, Gemini CLI, OpenAI Codex
-
Standard sections: overview, build, test, style, security
-
Placed at repo root or subpackages (monorepos)
Reference: https://github.com/agentmd/agent.md
agentic.md project:
-
Define, visualize, execute AI agents using Markdown + Mermaid diagrams
-
Slash command system: agents report progress by writing to markdown files
-
Shared rules for consistency across agents
Reference: https://github.com/drivly/agentic.md
LLMunix:
-
“Pure Markdown Operating System”
-
Agents and tools defined entirely in Markdown
-
No code compilation, no complex APIs
-
Any LLM can interpret and execute
Reference: https://github.com/EvolvingAgentsLabs/llmunix
Medium articles:
-
“The Markdown Revolution: Why Specifications Are King” (2025)
-
“AGENTS.md: The README Your AI Coding Agents Actually Read” (August 2025)
-
“AGENTS.md: A New Standard for Unified Coding Agent Instructions” (September 2025)
Consensus: 2025 is the “Year of Spec-Driven Development.” Markdown is the universal interface between humans and agents.
Implementation: Building Your First Markdown OS
Step 1: Set up directory structure
Step 2: Write AGENT.md
Step 3: Write your first spec
specs/feature.md:
Step 4: Build a simple agent
agent.py (minimal example):
Run it:
Result:
-
plans/feature-plan.md created
-
runs/journal.jsonl logged events
-
runs/2025-09-30.md human-readable log
-
reports/summary.md summary generated
Step 5: Add version control
Now every agent action is versioned. Full audit trail.
Step 6: Iterate
Add:
-
Task queue (state/queue.md with checkboxes)
-
LLM integration (Claude, GPT-4, etc.)
-
MCP tools (shell, HTTP, git, Playwright)
-
Replayable tests (runs/test.md)
-
Multi-agent orchestration (router/worker pattern)
Common Patterns
1. Task Queue with Checkboxes
state/queue.md:
Agent script:
2. State Snapshots
state/deployment-state.md:
Agent updates this file after every deployment. Git history = full deployment history.
3. Replayable Test Scripts
runs/test.md:
Agent (or human) can copy-paste these commands to verify feature works.
4. Wiki-Style Links
In plans/feature-plan.md:
Obsidian/Foam render these as clickable links. Agent can follow them to gather context.
When NOT to Use Markdown OS
Markdown OS is powerful, but not universal. Don’t use it for:
-
Performance-critical code: If you need microsecond latency, compile to binary
-
Binary data processing: Images, video, audio—use appropriate formats
-
Large-scale data pipelines: Use databases, not markdown files
-
Real-time systems: Markdown editing has latency, not suitable for real-time control
Use Markdown OS for:
-
Agent orchestration: Task planning, execution logging, state management
-
Development workflows: Specs, plans, deployment scripts
-
Knowledge management: Documentation, runbooks, playbooks
-
Human-agent collaboration: Transparent, auditable, editable by both
The Future: Markdown-Native Tooling
Emerging tools optimized for Markdown OS:
-
Obsidian: Graph view, backlinks, plugin ecosystem (Dataview, Templater)
-
Foam: VSCode extension for wiki-style linking
-
Dendron: Hierarchical note-taking, schema validation
-
Logseq: Outliner-based, bidirectional links
-
Notion: Collaborative, database views (imports Markdown)
Future possibilities:
-
Real-time collaborative editing: Multiple agents + humans editing same file (CRDTs)
-
Markdown query language: SQL-like queries over markdown files (Dataview already does this in Obsidian)
-
Markdown databases: Treat markdown files as tables (front matter = schema)
-
Markdown CI/CD: GitHub Actions triggered by markdown file changes
Why This Matters in 2025
AI coding agents are everywhere. GitHub Copilot. Claude Code. Cursor. Gemini CLI. OpenAI Codex. They all need instructions.
Traditional approach: Write code comments, hope the agent understands.
2025 approach: Write AGENT.md. Specs in Markdown. Plans in Markdown. State in Markdown. Reports in Markdown.
The agent reads it. Understands it. Executes it. Edits it. Commits it.
No binaries. No compilation. No interpretation. Just Markdown. In English. Dynamic. Transparent. Auditable.
Your operating system runs on binaries. Your AI agents should run on Markdown.
—
Mini Repo Example
Full working example: https://github.com/markdown-os/starter-kit (fictional, but you get the idea—build this!)
References:
-
GitHub Spec Kit: https://github.blog/ai-and-ml/generative-ai/spec-driven-development-with-ai-get-started-with-a-new-open-source-toolkit/
-
AGENT.md Standard: https://github.com/agentmd/agent.md
-
agentic.md: https://github.com/drivly/agentic.md
-
LLMunix: https://github.com/EvolvingAgentsLabs/llmunix
-
Spec-Driven Development (The New Stack): https://thenewstack.io/spec-driven-development-the-key-to-scalable-ai-agents/
-
AGENTS.md (Medium, Aug 2025): https://gyliu513.medium.com/agents-md-the-readme-your-ai-coding-agents-actually-read-b37a32876900
-
AGENTS.md Best Practices: https://www.builder.io/blog/agents-md
-
Claude Code Subagents (July 2025): https://www.cursor-ide.com/blog/claude-code-subagents
Want the starter kit? DM “MARKDOWN OS” for the full repo template (AGENT.md + queue system + agent.py + example specs) to build your first Markdown-driven agent system.
Previous Post
Knowledge is a Tool: RAG for Agentic Systems
Next Post
Why AI Projects Are Failing - Explained
Leave a Reply