Skip to content

Open with

joselopezrosario edited this page Oct 3, 2026 · 9 revisions

Skiff opens files in the apps you choose and shows diff command output in a read-only peek. Set the commands in Settings › Open with. This page lists standalone apps that work in each row, on Linux and macOS.

How it works

  • Each row holds one command. Leave a row empty to use the default.
  • In the file rows, {path} becomes the file. If the command has no {path}, Skiff adds the file at the end.
  • In the Diffs row, {target} becomes what to compare. If the command has no {target}, Skiff adds it at the end.
  • Skiff saves the rows under [open] in projects.toml. The default path is ~/.config/skiff/projects.toml on Linux and ~/Library/Application Support/skiff/projects.toml on macOS. On Linux, XDG_CONFIG_HOME changes the config folder. SKIFF_CONFIG overrides the file path on either platform:
[open]
diff = "git diff --color=always"
text = "gnome-text-editor {path}"
markdown = "typora {path}"
html = "firefox {path}"

On macOS, use open -a "App Name" {path} for apps. It finds the app by name, so it works without a command-line helper.

Which row a file uses

  1. .md and .markdown files use Markdown.
  2. .html and .htm files use HTML.
  3. Other text files use Text files. A file is text if its first 8 KB contain no NUL byte. Git uses the same test.
  4. Other files, and files whose row is empty, open in the system's default app.

Select a file in Files to preview it. A terminal tool opens in the peek at once. An app with its own window waits: press Enter or the Open in button. Double-click a file, or press Shift+Enter on a change in Changes, to open it.

Diffs

Select a file in Changes to see its diff in the peek, over the terminals. Select the Changes row to see all changes. Press Enter to give the keys to the diff. Quit the diff command, or press any key after it ends, to close the peek. The command must print the diff to standard output. Apps that open their own window do not work in this row.

Tracked files compare against HEAD, including staged and unstaged changes. An untracked file compares against an empty file. The whole-worktree diff leaves untracked files out.

Linux

Tool Command Install Price
Git (default) git diff --color=always Comes with git Free
difftastic git -c diff.external=difft diff --ext-diff apt install difftastic Free
delta git diff --color=always {target} | delta --width=$COLUMNS apt install git-delta Free

macOS

Tool Command Install Price
Git (default) git diff --color=always Comes with git Free
difftastic git -c diff.external=/opt/homebrew/bin/difft diff --ext-diff brew install difftastic Free
delta git diff --color=always {target} | /opt/homebrew/bin/delta --width=$COLUMNS brew install git-delta Free

Skiff started from Finder does not see Homebrew's folder, so give Homebrew tools their full path, as shown above.

Text files

Terminal editors open in the peek, over the terminals. The peek closes when you quit the editor.

Linux

App Command Price
GNOME Text Editor gnome-text-editor {path} Free
Kate kate {path} Free
gedit gedit {path} Free
Sublime Text subl {path} Paid (free to evaluate)
micro (terminal) micro {path} Free
Neovim (terminal) nvim {path} Free

macOS

App Command Price
BBEdit open -a BBEdit {path} Free, paid upgrade
CotEditor open -a CotEditor {path} Free
Sublime Text open -a "Sublime Text" {path} Paid (free to evaluate)
TextEdit (built in) open -a TextEdit {path} Built in
micro (terminal) /opt/homebrew/bin/micro {path} Free
Neovim (terminal) /opt/homebrew/bin/nvim {path} Free

Install micro and Neovim with brew install micro neovim. Give them their full Homebrew path, as in Diffs.

Markdown

Linux

App Command Price
Typora typora {path} Paid (trial)
MarkText marktext {path} Free
Apostrophe apostrophe {path} Free
Ghostwriter ghostwriter {path} Free

macOS

App Command Price
Typora open -a Typora {path} Paid (trial)
MarkText open -a MarkText {path} Free
iA Writer open -a "iA Writer" {path} Paid (trial)
Marked 2 (viewer) open -a "Marked 2" {path} Paid (trial)

HTML

Leave the row empty to use the system's default browser.

Linux

Browser Command Price
Firefox firefox {path} (on Debian: firefox-esr {path}) Free
Chrome google-chrome {path} Free
Vivaldi vivaldi {path} Free

macOS

Browser Command Price
Firefox open -a Firefox {path} Free
Chrome open -a "Google Chrome" {path} Free
Vivaldi open -a Vivaldi {path} Free
Safari (built in) open -a Safari {path} Built in

When a command fails

If the app does not start, Skiff shows the error when you open the file. The usual cause is a misspelled command. For Diffs, the peek closes and Skiff shows the error.

Clone this wiki locally