
Arto — the Art of Reading Markdown.
A local app that faithfully recreates GitHub-style Markdown rendering for a beautiful reading experience.
Markdown has become more than a lightweight markup language — it's the medium for documentation, communication, and thinking in the developer's world. While most tools focus on writing Markdown, Arto is designed for reading it beautifully.
The name "Arto" comes from "Art of Reading" — reflecting the philosophy that reading Markdown is not just a utility task, but a quiet, deliberate act of understanding and appreciation.
Arto faithfully reproduces GitHub's Markdown rendering in a local, offline environment, offering a calm and precise reading experience with thoughtful typography and balanced whitespace.
[!WARNING] Beta Software Notice
- This application is still in beta and may contain bugs or unstable behavior. Features may change without regard to backward compatibility.
- macOS Only: This application is currently designed exclusively for macOS and does not support other platforms. However, cross-platform support is a long-term goal, and PRs are welcome.
Cmd+FUse Homebrew tap to install. Since the application is not signed or notarized with an Apple Developer ID, you'll need to remove the quarantine attribute after installation. See homebrew-tap for more information.
brew install --cask arto-app/tap/arto
xattr -dr com.apple.quarantine /Applications/Arto.app
Alternatively, Nix is also supported. To try it without a permanent installation:
nix run github:arto-app/Arto
For a permanent installation, use nix-darwin or home-manager. Add the following to your flake inputs:
arto.url = "github:arto-app/Arto";
Then add it to environment.systemPackages (nix-darwin) or home.packages (home-manager):
environment.systemPackages = [ inputs.arto.packages.${system}.default ];
Launch the application to see the welcome screen with keyboard shortcuts and usage instructions.
After installation, the arto command becomes available in your terminal:
arto # Launch Arto (shows welcome screen)
arto README.md # Open a specific file
arto --open=screen README.md
arto --open=new README.md
arto --directory=. README.md
arto docs/ # Open a directory in the file explorer
arto file1.md file2.md # Open multiple files in tabs
Arto runs as a single instance — if Arto is already running, the command sends requests to the existing process instead of launching a new one.
arto FILE uses last_focused behavior by default (reuse last focused visible window).--open=screen opens on/reuses a visible window on the cursor's current screen.--open=new always opens in a new window.--directory=DIR sets the FileExplorer root directory for that invocation.arto docs/) also set the root directory.arto without arguments shows/focuses an existing window if hidden, or opens one if none exists.Visit arto-app.github.io for screenshots, feature highlights, and more.
See CONTRIBUTING.md for development setup and guidelines.
See LICENSE file for details.