@geminixiang/pi-mermaid

Render Mermaid diagrams as Unicode art inside the pi terminal UI

Packages

Package details

extension

Install @geminixiang/pi-mermaid from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:@geminixiang/pi-mermaid
Package
@geminixiang/pi-mermaid
Version
0.1.2
Published
Jul 25, 2026
Downloads
443/mo · 36/wk
Author
geminixiang
License
MIT
Types
extension
Size
9.1 KB
Dependencies
1 dependency · 3 peers
Pi manifest JSON
{
  "extensions": [
    "extensions/mermaid.ts"
  ]
}

Security note

Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.

README

pi-mermaid

A pi extension that renders Mermaid diagrams as Unicode art directly in the terminal.

pi-mermaid rendering Chinese Mermaid diagrams in the terminal

Features

  • Automatically renders mermaid fenced blocks from assistant responses
  • /mermaid slash command for quick diagrams
  • render_mermaid tool the model can call
  • Unicode box drawing by default, with pure ASCII support through the tool
  • Diagram source remains visible when tool output is expanded
  • No browser, Chromium, DOM, or external Mermaid CLI required

Supported by the underlying renderer: flowcharts, state diagrams, sequence diagrams, class diagrams, ER diagrams, and XY charts.

Install

From npm after publication:

pi install npm:@geminixiang/pi-mermaid

From this checkout:

npm install
pi install .

For development without installing the package:

npm install
pi -e ./extensions/mermaid.ts

If installed as a project-local package, restart pi or use /reload after editing the extension.

Usage

Ask pi for a Mermaid diagram, or include a fenced block in its response:

```mermaid
graph LR
  A[Request] --> B{Valid?}
  B -->|Yes| C[Process]
  B -->|No| D[Reject]
```

The extension appends the rendered terminal diagram immediately below the response.

Render one directly:

/mermaid graph LR; A[Request] --> B[Response]

The model can also invoke render_mermaid with:

{
  "source": "graph LR; A --> B",
  "ascii": false
}

Development

npm install
npm test
npm run check

Notes

  • Very wide diagrams are clipped to the terminal width. Prefer top-to-bottom layouts (graph TD) or smaller diagrams when space is limited.
  • Rendering is powered by beautiful-mermaid.