I Built a Markup Language for AI Agent Task Output

Published: (January 18, 2026 at 08:30 AM EST)
2 min read
Source: Dev.to

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:

  1. Classic nested task list with status indicators and metadata.
  2. Automatic columns based on task status (Pending, In Progress, Completed).
  3. Gantt‑chart style view showing duration and due dates.
  4. Spreadsheet‑style with sortable columns for status, priority, assignee, etc.
  5. Hierarchical view showing parent‑child relationships.
  6. Visual node graph showing task dependencies.
  7. 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

Call to Action

If you build something with TaskML, I’d love to see it.
A star on GitHub would mean a lot.

Back to Blog

Related posts

Read more »

𝗗𝗲𝘀𝗶𝗴𝗻𝗲𝗱 𝗮 𝗣𝗿𝗼𝗱𝘂𝗰𝘁𝗶𝗼𝗻‑𝗥𝗲𝗮𝗱𝘆 𝗠𝘂𝗹𝘁𝗶‑𝗥𝗲𝗴𝗶𝗼𝗻 𝗔𝗪𝗦 𝗔𝗿𝗰𝗵𝗶𝘁𝗲𝗰𝘁𝘂𝗿𝗲 𝗘𝗞𝗦 | 𝗖𝗜/𝗖𝗗 | 𝗖𝗮𝗻𝗮𝗿𝘆 𝗗𝗲𝗽𝗹𝗼𝘆𝗺𝗲𝗻𝘁𝘀 | 𝗗𝗥 𝗙𝗮𝗶𝗹𝗼𝘃𝗲𝗿

!Architecture Diagramhttps://dev-to-uploads.s3.amazonaws.com/uploads/articles/p20jqk5gukphtqbsnftb.gif I designed a production‑grade multi‑region AWS architectu...