How v2 works
V2 separates typed preparation from live editing and also supports direct native scripting. The AI client uses twenty MCP tools; the native bridge supplies bounded reads, applies explicit changes and performs verified document saves on Glyphs' main thread.
| Part | Responsibility |
|---|---|
| AI client and skills | Choose a supported workflow, scope it and review its evidence with the designer. |
| Sidecar | Serve MCP, manage jobs, copy saved sources and run external preparation. |
| Private native worker | Use glyphs-cli with the selected Glyphs application to measure or prepare detached font data. |
| Bridge | Read explicit targets, check preconditions, apply changes in chunks, invoke direct native document saves and manage exact recovery and native history. |
| Companions | Draw cached curve or reference overlays independently of the MCP client. |
apply_job never saves a font. Source copying, hashing and whole-font
preparation run outside the editor. accept_job and save_document use the
bridge only for the synchronous native NSDocument operation; filesystem
preflight and source verification stay in the sidecar. Live writes yield to
Cocoa between chunks so the canvas can remain responsive.
The bridge can also negotiate the closed native_action catalog without adding
tools. The sidecar exposes the job kind only when the bridge reports
native.action.v1 plus recognized actions. Most actions prepare the same fixed
native command on a disposable saved snapshot. Glyph colors can prepare on detached
target copies inside the editor; live application compares its
before/after hashes and retains native objects only for bounded Undo, rollback
and discard.
With script.native.v1, python_script uses the conversation lifecycle directly
inside Glyphs. Syntax/target preparation never executes Python; the agent uses
the current Run action under original task authorization, with no mandatory code
review. Dirty and pathless fonts run without Save using a detached current-state recovery copy.
Callbacks yield between batches. Whole scripts run once. Restore before run
reloads the whole baseline, replacing later unsaved edits and clearing Undo history.
There is no external worker or layer snapshot for scripts. Typed jobs retain the
algorithms and recovery described above.
One job, one identity
start_job prepares a typed result and returns a job ID. get_job returns
progress and evidence. apply_job applies the stored result to the matching
saved document. accept_job verifies the applied targets, persists the whole
document and makes the job terminal. discard_job cancels preparation or
reverses still-current affected targets. Repeated calls reconcile the same
recorded native operation instead of creating duplicate writes.
The bridge shares per-document ownership across apply, accept, save, discard and rollback. A competing operation cannot open a second Undo scope or alter the owner's state.
Native editing remains central
accept_job accepts the reviewed result by saving the entire document and
returning path/hash evidence. Typed-job Undo and Redo use native per-glyph history and remain available
after Keep or Save; guarded workflow recovery ends when the result is settled. Revert uses Glyphs' own saved-document workflow. The Reference
Inspector compares against a selected source; it is not a log of tool calls or
an acceptance interface.
Use the twenty-tool reference for supported inputs, and Safety and recovery for state and failure handling.
Faster preparation, shared results
Widths, Dimensions, glyph colors and coordinate-only node moves can prepare with bounded live reads and detached target copies. The private bridge negotiates this route; no new tool or execution mode is exposed. Preparation remains read-only, requires a saved clean document, and produces the same guarded patches. Other algorithms and external export processing are unchanged.
Typed results now offer Keep without saving, Save and selective Undo. Keep ends the workflow recovery offer and retains native Undo/Redo. Script restoration still restores the whole pre-run font, including pre-existing unsaved edits. When Automatic Keep is enabled, a visible, connected and freshly reconciled successful result card can Keep after 30 seconds. Failed, partial, blocked and uncertain outcomes remain manual. “Wait for my answer” disables the countdown until the user changes that preference; text-only responses remain manual.
Use native questions for unresolved decisions and missing information, grouping related independent questions. Disable Automatic Keep before waiting; silence, Skip and dismissal apply no choice. Routine progress, success and errors stay in the conversation. An optional card adds value for visual comparisons, interactive inspection, substantial reports, useful live controls or recovery information. Use an available renderer or native Glyphs view for visual outline review; the workflow card is not itself a dedicated glyph viewer.