Repository navigation
Omaspec 0.4.2: a PlantUML and Mermaid editor for Omarchy that understands behavior #17081
enhapu-afk
started this conversation in
Show and tell
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Omaspec is a native diagram editor for Omarchy: the source next to the live
diagram, in your Omarchy theme and font. It is pure Rust, one binary that draws
with its own engines: no Java, no browser, no network, and it sends nothing
anywhere.
What PlantUML and Mermaid cannot do
Omaspec reads a state diagram as the state machine it specifies, and a sequence
diagram as a scenario, in PlantUML and Mermaid alike:
event leading two ways with no guard to choose. A sequence diagram is checked
against the state machines of its folder: every message must be an event its
receiver can take, in the order the scenario sends them.
up, you pick what happens next, a light runs along each transition or
message.
[See it play](https://raw.githubusercontent.com/enhapu-afk/omaspec/main/docs/images/play.gif)
.
omaspec trace run.jsonlplays what arunning system logged through its state machines and says where it deviated,
with the time. The editor plays the trace in the diagram, line by line.
omaspec diffcompares two versions, or afile with its last commit, by states, transitions and messages, not by lines;
layout and colors do not count.
omaspec convertturns a PlantUML machineor scenario into Mermaid and back, and only when the result means the same.
omaspec mcpis an MCP server with the command line'stools: lint, trace, diff, convert, format, render and more.
The editor
line.
changed lines.
Neovim users.
omarchy themeandomarchy font setlive; a Hyprland binding, amenu entry and themed colors included.
diagram again.
(Ctrl+Shift+P).
Drawing
Omaspec draws most diagrams with its own engines, in a few milliseconds:
PlantUML sequence, activity, state, class, component, use case, deployment,
object, timing and Gantt diagrams, mind maps, WBS, JSON and formulas, and
Mermaid flowcharts, state and sequence diagrams. The other Mermaid types are
drawn by mmdr, a Rust library, in the same process. A few PlantUML types (YAML,
Salt and more) it does not draw yet and says so; if you install the optional
plantumlpackage (Java), Omaspec hands just those to it, confined withLandlock. Omaspec reads state and sequence diagrams as PlantUML 1.2026.8 does;
a test holds the two readings against each other.
Install
Omaspec is not in the AUR yet, because the AUR takes no new accounts at the
moment. Until it does, build the package from the repository:
git clone https://github.com/enhapu-afk/omaspec cd omaspec/packaging/aur/omaspec-bin makepkg -siThis installs the release binary with the desktop entry, the icon and the file
types, so file managers open
.pumland.mmdfiles with Omaspec. On otherdistributions, take the binary from the
release.
The
[getting started guide](https://github.com/enhapu-afk/omaspec/blob/main/docs/guide/README.md)
walks you through a state machine, a scenario and a recorded trace in ten
minutes.
What's next
yourself; the diagram keeps your route.
activity diagram that says what the state does. A specification you can read
from the whole system down to a single step.
frames and labels, closer to what Graphviz draws.
Status
Omaspec is young: well tested (unit and golden tests, a comparison with the
Java PlantUML, fuzzing), but little used outside its tests so far, so you will
find rough edges. Issues, diagrams it draws wrong, and wishes are very welcome:
https://github.com/enhapu-afk/omaspec/issues
All reactions