Skip to main content
ClaudeWave

Your voice profile as a tool — a Rust workspace (MCP server, TUI, and GPUI GUI) over a measured writing fingerprint

MCP ServersOfficial Registry0 stars0 forks● RustApache-2.0Updated today
ClaudeWave Trust Score
87/100
✓ Trusted
Passed
  • ✓Open-source license (Apache-2.0)
  • ✓Actively maintained (<30d)
  • ✓Clear description
  • ✓Documented (README)
Last scanned: 10/19/2026
Install in Claude Code / Claude Desktop
Method: Manual · eigenstyle
Claude Code CLI
git clone https://github.com/qompassai/eigenstyle
claude_desktop_config.json (Claude Desktop)
{
  "mcpServers": {
    "eigenstyle": {
      "command": "eigenstyle"
    }
  }
}
1. Run the command above in your terminal (Claude Code), or paste the JSON config into claude_desktop_config.json (Claude Desktop).
2. Replace any <placeholder> values with your API keys or paths.
3. Restart Claude. The MCP server and its tools appear automatically.
💡 Install the binary first: cargo install eigenstyle (or build from https://github.com/qompassai/eigenstyle).
Use cases

MCP Servers overview

# eigenstyle — your voice profile as a tool

A Rust workspace that turns Matt Porter's measured writing fingerprint
(built 2026-10-11 in the `matt-voice` skill) into a living system: an
MCP server agents can call, a terminal UI, and a GPUI desktop GUI — all
over one core library, all fed by a corpus you keep adding to.
<a href="./LICENSE"><img src="https://img.shields.io/badge/License-Apache%202.0-blue.svg" alt="License: Apache 2.0"></a>

The fingerprint is *measured*, not vibes: sentence-length distribution,
function-word profile, punctuation rates, parentheticals, hyphenated
compounds, hedge/assertive balance, first-person rate — the same
features, tokenizer, rounding, and leave-one-out band calibration as
the skill's Python reference. A parity test suite proves the Rust
engine reproduces the Python numbers on the seed corpus (features and
bands identical; checker deltas on the held-out pieces match: JAS
1.196, Cureus 1.088, synthetic 1.253).

## The three front-ends

| Front-end | Binary | Run it |
|---|---|---|
| MCP server (stdio) | `eigenstyle` | `cargo run --release -p eigenstyle` (add `--home <dir>` to choose the store) |
| Terminal UI | `eigenstyle-tui` | `cargo run --release -p eigenstyle-tui` |
| Desktop GUI | `eigenstyle-gui` | `cargo run --release -p eigenstyle-gui` (Wayland session) |

All three share one store: `$EIGENSTYLE_HOME`, else
`~/.local/share/eigenstyle/`. First open seeds it from the skill's
corpus (6 pieces, 7,674 words), fingerprint, and readable profile.

## MCP tools

| Tool | What it does |
|---|---|
| `check_draft` | Score a draft (text or file): verdict CLOSE / DRIFTING / OFF-VOICE / UNRELIABLE, delta, top contributing features, avoid-list hits. With `source_text`/`source_file_path`, also accounts for every number and URL from the source — dropped numbers and dropped/broken URLs are reported. |
| `get_exemplars` | Verbatim exemplar paragraphs from included samples of one genre (the retrieval bank agents draft against). |
| `get_profile` | The readable profile + fingerprint summary (effective values, which are user-corrected), bands, avoid list. |
| `ingest_sample` | Add writing (exactly one of `text` / `file_path` / `url`). Title, genre, and authorship (`sole`/`blended`) are required — attribution is never silently defaulted. Never recomputes the fingerprint. |
| `list_corpus` | The corpus manifest: metadata, word counts, included flags, totals. |
| `recompute_fingerprint` | Recompute from included samples and re-derive the bands. `dry_run: true` previews the induced feature deltas and band shifts without saving — review before you apply. |

Protocol: newline-delimited JSON-RPC 2.0 over stdio, the estate's
research-mcp pattern. Fail-closed throughout: malformed frames,
unknown tools, strict argument schemas, named size bounds everywhere.

## Adding your writing

- **MCP**: an agent calls `ingest_sample` (or you ask for a URL fetch —
  the core fetches it, bounded, HTML reduced to text).
- **TUI**: `Add writing` screen (key `2`) — title, genre, authorship
  toggle, source, then a file path (Enter loads it) or pasted text;
  Ctrl+S saves.
- **GUI**: `Add writing` tab — same fields as clickable boxes; the
  authorship button toggles sole/blended; **Add sample** saves.

In every flow the same rules hold: samples are append-only (exclude a
sample from the fingerprint instead of deleting history), and the
fingerprint never changes silently — recompute is explicit, with a
dry-run preview first.

## Correcting the fingerprint

The fingerprint dashboard (TUI `Fingerprint` screen, GUI `Fingerprint`
tab) lists every feature's mean/SD. Select one, type a corrected mean,
apply: the value is stored as a *user correction* overlaid on the
computed reference. Corrections survive recompute, are marked wherever
they show, and can be cleared wholesale to restore computed values
exactly.

## Patterns adapted from same-kind tools

- **HumanifyMe** — the editable, human-readable fingerprint, and the
  deterministic post-draft verify gate (dropped numbers / broken URLs
  in `check_draft`).
- **brandvoice-mcp** — ingest → chunk → exemplar retrieval bank
  (`get_exemplars` serves corpus paragraphs by genre).
- **book-writer-mcp / Eden** — per-genre style profiles (the dashboard
  shows pooled per-genre stats), and the builder flow where induced
  rules are shown for correction *before* they are saved (recompute
  dry-run preview → apply).
- **Arcitext** — tone-fit via an explicit avoid list, enforced by the
  checker and editable in the Profile view.

## Bounds (named, enforced)

Sample text ≤ 256 KiB and ≥ 10 tokens; draft ≤ 1 MiB, < 200 words =
UNRELIABLE verdict (integrity/avoid checks still run); URL fetch ≤
1 MiB, 15 s, HTTP(S) only, ≤ 3 redirects; JSON-RPC line ≤ 4 MiB;
fingerprint build needs ≥ 2 included pieces (leave-one-out calibration
is undefined below that) and fails closed otherwise.

## Platform notes

- Toolchain pinned to Rust 1.99.0 (`rust-toolchain.toml`), matching the
  estate. GPUI is pinned exactly: `gpui-ce = =0.2.2` +
  `gpui_ce_platform = =0.1.0` (features wayland, x11).
- GUI rendering is verified on Wayland (primo's desktop is Hyprland;
  the smoke runs under a headless wlroots compositor). Under Xvfb/X11
  this GPUI build presents black frames — use a Wayland session.
- GUI text entry is click-to-focus, append/backspace only (no
  selection/IME yet) — a stated limit, tracked in PROGRESS.md.

## Layout

```
crates/eigenstyle-core   corpus store, stylometry, fingerprint build, checker, fetch
crates/eigenstyle    stdio MCP server (6 tools)
crates/eigenstyle-tui    ratatui TUI (eigenstyle-tui --snapshot <screen> renders headlessly)
crates/eigenstyle-gui    GPUI GUI
screenshots/        smoke evidence (GUI corpus + fingerprint views, probe)
```

## License

This project is licensed under the [Apache License, Version 2.0](./LICENSE).

What people ask about eigenstyle

What is qompassai/eigenstyle?

+

qompassai/eigenstyle is mcp servers for the Claude AI ecosystem. Your voice profile as a tool — a Rust workspace (MCP server, TUI, and GPUI GUI) over a measured writing fingerprint It has 0 GitHub stars and its last recorded update is dated 2026-10-19.

How do I install eigenstyle?

+

You can install eigenstyle by cloning the repository (https://github.com/qompassai/eigenstyle) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.

Is qompassai/eigenstyle safe to use?

+

Our security agent has analyzed qompassai/eigenstyle and assigned a Trust Score of 87/100 (tier: Trusted). See the full breakdown of passed checks and flags on this page.

Who maintains qompassai/eigenstyle?

+

qompassai/eigenstyle is maintained by qompassai. The last recorded GitHub activity is dated 2026-10-19, with 0 open issues.

Are there alternatives to eigenstyle?

+

Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.

Deploy eigenstyle to your cloud

Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.

Maintain this repo? Add a badge to your README

Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.

Featured on ClaudeWave: qompassai/eigenstyle
[![Featured on ClaudeWave](https://claudewave.com/api/badge/qompassai-eigenstyle)](https://claudewave.com/repo/qompassai-eigenstyle)
<a href="https://claudewave.com/repo/qompassai-eigenstyle"><img src="https://claudewave.com/api/badge/qompassai-eigenstyle" alt="Featured on ClaudeWave: qompassai/eigenstyle" width="320" height="64" /></a>

More MCP Servers

eigenstyle alternatives