Replace Ulysses?

YES · one-shottable
catalog price reference $5.99/mocategory 🖋️ writing toolsreported replacement votes 0

The core loop is small enough for a capable coding agent to produce a useful local version in one sitting. For Ulysses, write in a focused Markdown library, organize sheets, set goals, and export polished documents. The hard boundary is native apple polish, icloud sync, mobile apps, and publishing integrations, plus polish, integrations, and proprietary language models.

the prompt
Build a personal replacement for Ulysses in an empty repository.
Use Tauri 2, React, TypeScript, SQLite, and a small Rust filesystem layer; do not offer alternative stacks.
The core loop is: write in a focused local Markdown library, organize sheets, set goals, apply editing passes with a visible diff, and export polished documents without uploading them.
Make the first run work locally with one documented command.
Store all user data locally by default and make export straightforward.
Put secrets in .env, ship .env.example, and never commit credentials.
Create a three-pane editor with source text, suggestion list, and accepted-result preview.
Implement deterministic checks for repeated words, sentence length, passive constructions, and typography.
Add an optional API-backed rewrite action that sends only the selected passage.
Show every change as an accept-or-reject diff and support undo.
Import and export .txt and .md while preserving headings and lists.
Persist user rules, ignored terms, and recent documents in SQLite.
Include clear empty, loading, success, and recoverable error states.
Add input validation, safe filenames, and graceful handling of unavailable APIs.
Write focused tests for the core transformation and one end-to-end happy path.
Create a README with setup, architecture, permissions, data location, and backup steps.
Do not add accounts, billing, telemetry, analytics, or a hosted control plane.
Deliberately leave out a browser extension.
Deliberately leave out Office or Google Docs plugins.
Deliberately leave out collaborative editing and cloud sync.
Finish by running the tests and listing the exact commands used.

$ open in your agent (prompt prefilled, you press enter) or copy it raw · this prompt is generated from the build plan · improve it via PR

why people still pay

People still pay for Ulysses because the paid tool is already present everywhere they write and its suggestions have been tuned across millions of documents. The recurring cost buys model quality, extension compatibility, dictionaries, releases, and sync, not just the visible interface.

what you lose

xnative Apple polish, iCloud sync, mobile apps, and publishing integrations

xcross-device sync

xlarge proprietary style models

xbrowser and office-suite extensions

xteam style guides

prior art to inspect before buildingLanguageToolMature open-source grammar and style checker with desktop and server components.
reported replacements · 0share on X ↗"Ulysses replacement research and build prompt"
questions
What does the Ulysses verdict mean?

The directory classifies the core job as practical to build with an AI coding agent. Use the prompt as a starting point and review the tradeoffs before relying on the result. This research record is not a hosted IVCIFY tool.

What price does this directory record show for Ulysses?

The directory records $5.99/month for Personal, checked 2026-07-31. Verify the source before making a purchase decision. This reference stays outside retail Stack Math unless current matched evidence supports the comparison.

What do I lose by replacing Ulysses?

Honestly: native Apple polish, iCloud sync, mobile apps, and publishing integrations; cross-device sync; large proprietary style models; browser and office-suite extensions; team style guides. If any of those are load-bearing for you, keep paying.

Is there an open-source alternative to Ulysses?

The listed prior art includes LanguageTool (Mature open-source grammar and style checker with desktop and server components.). Inspect those projects before starting from a blank prompt.