I Built a Markup Language for AI Agent Task Output
Source: Dev.to
Introduction
Every time I asked Claude or ChatGPT to help me plan a project, I got… chaos.
Sometimes markdown lists, sometimes numbered steps, sometimes JSON, sometimes a wall of text with tasks buried somewhere in the middle.
I wanted to:
- Parse the output reliably
- Visualize it in different ways
- Track progress without copy‑pasting
So I built TaskML.
What TaskML Looks Like
TaskML is a lightweight markup language designed for task management. It’s human‑readable, AI‑writable, and instantly parseable.
@project Website Redesign
@sprint Week 1
[ ] Design homepage #p0 @alice
[x] Create wireframes
[~] Build prototype ~2h
[ ] Write copy #p1 @bob ~4h !2024-02-15
Syntax Overview
@project/@sprint– Context blocks[ ]– Pending task[x]– Completed task[~]– In progress[!]– Blocked task#p0– Priority (p0= critical,p3= low)@alice– Assignee~2h– Time estimate!2024-02-15– Due date- Indentation – Subtasks
Visualizations
TaskML supports seven different views:
- Classic nested task list with status indicators and metadata.
- Automatic columns based on task status (Pending, In Progress, Completed).
- Gantt‑chart style view showing duration and due dates.
- Spreadsheet‑style with sortable columns for status, priority, assignee, etc.
- Hierarchical view showing parent‑child relationships.
- Visual node graph showing task dependencies.
- Dashboard with stats: total tasks, completion rate, time estimates, priority breakdown.
Using TaskML with AI
You can teach any AI to output TaskML with a simple system prompt:
When tracking tasks, projects, or to‑dos, always use TaskML format:
@project Project Name @sprint Sprint Name (optional) Tasks use checkbox syntax: [ ] Pending task [x] Completed task [~] In progress task [!] Blocked task Add metadata inline: - #p0‑#p3 for priority - @name for assignee - ~Xh for estimates - !YYYY‑MM‑DD for due dates
Claude, ChatGPT, Cursor—and many others—pick it up instantly.
Implementation Details
- Zero runtime dependencies
- ~15 KB minified + gzipped
- TypeScript native
- Works in Node.js and browsers
- MIT licensed
Installation
npm install taskml
Basic Usage (TypeScript/JavaScript)
import { parse, render } from 'taskml';
const doc = parse(`
@project My Tasks
[ ] First task
[x] Done task
`);
// Render to HTML (e.g., Kanban view)
const html = render(doc, { view: 'kanban' });
Interactive Playground
Try TaskML live at taskml.dev/playground. The playground includes:
- Live editor with syntax highlighting
- All seven view types
- Template examples
- One‑click copy/share
Roadmap
- VS Code extension
- Obsidian plugin
- React components
- More AI integrations
- CLI tool
Links
Call to Action
If you build something with TaskML, I’d love to see it.
A star on GitHub would mean a lot.