aifmt
Make visual text content just work.
An MCP server that fixes, validates, and generates visual text content for AI coding assistants.
  
---
LLMs can't count visual columns. len("📦") returns 1, but it renders wider. Every AI-generated box, table, and tree diagram ends up misaligned. aifmt fixes it.
Install
pip install aifmt
Configure
Add to your MCP client (Copilot CLI, Claude Code, Cursor, VS Code, Windsurf, Gemini CLI):
{
"mcpServers": {
"aifmt": {
"command": "uvx",
"args": ["aifmt"]
}
}
}
Tools
| Tool | Description | |------|-------------| | fix | Repair misaligned boxes, tables, bars, and tree diagrams | | validate | Check for alignment issues without modifying | | generate | Create diagrams via Mermaid or PlantUML | | targets | List rendering profiles (GitHub, terminal, custom) |
Key Insight
GitHub renders emoji at 2.5 monospace columns — not 2.0. aifmt uses rendering-profile-aware width calculation to handle this. Read how we discovered it →
Documentation
📖 ericchansen.github.io/aifmt
- Getting Started — Install and configure
- Tools Reference — fix, validate, generate, targets
- Python API — Use the library directly
- The 2.5 Discovery — Fractional emoji width story
- Contributing — Development setup and guidelines






