Skip to main content

Make visual text content just work. An MCP server that fixes, validates, and generates diagrams, tables, and box-drawing art for AI coding assistants.

Project description

aifmt

Make visual text content just work.

An MCP server that fixes, validates, and generates visual text content for AI coding assistants.

Tests License: MIT Python 3.10+


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

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aifmt-0.1.0a1.tar.gz (44.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aifmt-0.1.0a1-py3-none-any.whl (24.8 kB view details)

Uploaded Python 3

File details

Details for the file aifmt-0.1.0a1.tar.gz.

File metadata

  • Download URL: aifmt-0.1.0a1.tar.gz
  • Upload date:
  • Size: 44.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for aifmt-0.1.0a1.tar.gz
Algorithm Hash digest
SHA256 fba3389afb3cb61b98b8dc89a3ca83de91caf75f3c57e4fe984b2ff1a9a87a2f
MD5 0596f7ed52bf8705ecd6b533a4421e40
BLAKE2b-256 edbaf4a197f2a95a4f2e700d93278d2cd6a9c3fb69608a409679760af0a093d9

See more details on using hashes here.

Provenance

The following attestation bundles were made for aifmt-0.1.0a1.tar.gz:

Publisher: publish.yml on ericchansen/aifmt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file aifmt-0.1.0a1-py3-none-any.whl.

File metadata

  • Download URL: aifmt-0.1.0a1-py3-none-any.whl
  • Upload date:
  • Size: 24.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for aifmt-0.1.0a1-py3-none-any.whl
Algorithm Hash digest
SHA256 821754f3e249b18d66f5dbac23894c141450ce217e38744e14813c46d5615b3c
MD5 3a8f8dd29890b3cdc43393ada76de88e
BLAKE2b-256 c87f4a31a8140bd4c603890a67620fae3997f1dc55317ae2be0264ff61fc860d

See more details on using hashes here.

Provenance

The following attestation bundles were made for aifmt-0.1.0a1-py3-none-any.whl:

Publisher: publish.yml on ericchansen/aifmt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page