safari_writer
A retro word processor plus a family of keyboard-first companion tools.
Main goals
- Better notepad
- Can post to Mastodon with spellcheck
- Can be used to read long documents
- Supports feature set of AtariWriter and adjacent applications, including database, image viewer, file browser
- 1980 Retro UI, Retro scripting languages
- Modern features, modern keybindings
Installation
pipx install safari-writer
Usage
You can run the main editor or the companion tools directly:
safari-writer
safari-dos browse C:\work --show-hidden --sort date --descending
safari-dos ls C:\work --sort type
safari-chat
safari-chat docs\index.md
safari-fed --folder Mentions
safari-base address_book.db
safari-reader --library C:\books
safari-repl demo.bas
safari-slides docs\safari_suite_tools.slides.md
safari-view open images\frog.png --mode st --no-dithering
safari-view render images\frog.png --mode 2600 --width 160 --height 192 --output out\frog-2600.png
Most people start with safari-writer and open the other tools from the Main Menu.
Features
- Safari Writer: The core word processor.
- Keybindings mostly modern, but somewhat influenced by original Atari.
- Search and replace, word count, and alphabetize.
- Style codes/printer codes for formatting.
- Print/export to markdown, ANSI preview, postscript, or PDF.
- Proofreader: A built-in spell checker.
- Mailmerge: Database-driven form letters with a dedicated record editor.
- Safari DOS: A menu-driven way to do file browsing and manipulation, featuring a classic two-pane layout and a "Garbage" bin for file recovery.
- Safari Chat: A "Clippy" style helper based on ELIZA. It answers your questions using the help docs and offers emotional support—no LLMs involved.
- Safari Base: A dBASE-style shell for browsing and updating SQLite-backed address-book style data.
- Safari Fed: A calm, keyboard-driven Mastodon client styled after Pine and retro BBS readers. Queue-based reading, folder metaphors, thread view, and a direct handoff to Safari Writer.
- Safari Reader: A keyboard-first library, catalog, and long-form reading app.
- Safari REPL: A small Atari BASIC REPL and
.BASfile runner with Writer handoff for loaded files. - Safari Slides: A SlideMD presentation viewer with notes and fragment support.
- Safari View: A retro image viewer and renderer with Textual, Tk, and batch render entry points.
- Safari BASIC: The shared Atari BASIC-compatible macro engine used by Safari Writer and Safari Fed.
Current Limitations
- Doesn't support original binary AtariWriter files
- Keybindings still evolving.
Trademarks and stuff
I have no relationship to Atari. This is Safari Writer and has no relationship to Atari.
License is MIT.
Dual licensed with a Shareware license. Dual meaning, you pick which of the two you want to govern our relationship.
Languages / Internationalization
Safari Writer automatically uses your operating system's locale. If you want to run the app in a different language, set the SAFARI_LOCALE environment variable before launching.
| Code | Language |
|---|---|
en |
English |
eo |
Esperanto |
es |
Spanish |
fr |
French |
is |
Icelandic |
ru |
Russian |
Linux / macOS:
SAFARI_LOCALE=eo safari-writer
Windows (PowerShell):
$env:SAFARI_LOCALE="eo"; safari-writer
Windows (Command Prompt):
set SAFARI_LOCALE=eo && safari-writer
You can use a bare language code (eo) or a full IETF tag (eo_EO). If no catalog exists for the full tag, the bare code is tried automatically. If neither is found, the app falls back to English.
Metadata
Release files for safari-writer 0.1.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| safari_writer-0.1.5.tar.gz | 1.1 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| safari_writer-0.1.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.9 MB
Release files / safari_writer-0.1.5.tar.gz
| Download URL | safari_writer-0.1.5.tar.gz |
|---|---|
| Size | 1.1 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0684bec4eff791883585567a7e437e8bc08dc77648cb49a27cd7c0e3e4869561
|
|
BLAKE2b-256 checksum How to use checksums |
32fddff64f2daec7c3c857b4b12a3f61328db4fbfe05b0cf69422be279f1f28d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 14, 2026.
Transparency logRelease files / safari_writer-0.1.5-py3-none-any.whl
| Download URL | safari_writer-0.1.5-py3-none-any.whl |
|---|---|
| Size | 744.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f13c87bb8bb3b8a02312f5942955022d17c7ad39aec44ad8ce1124ce6a6116fb
|
|
BLAKE2b-256 checksum How to use checksums |
07dc775fb3ca332db31ffa045ed13fa010fded20e22b0af9c99130becf346257
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 14, 2026.
Transparency log