Fish Extensible Text Editor Written In Fish
  • Shell 87.2%
  • Roff 10.8%
  • Makefile 2%
Find a file
2025-11-16 22:13:06 +01:00
fin fin tidied version bump 1.012.042 to 1.013 2025-08-21 19:44:12 +01:00
fin.1 fin doc 2025-08-16 23:13:23 +01:00
fin.desktop fin iconic 2025-08-08 21:23:21 +01:00
fin.png fin iconic 2025-08-08 21:23:21 +01:00
finsfirstscreenshot.png fin colour 2025-08-15 16:58:40 +01:00
install.fish fin installers 2025-08-08 20:38:48 +01:00
INSTALL.md fin space 2025-08-08 21:35:24 +01:00
LICENSE Initial commit 2025-08-07 01:56:55 +02:00
makefile fin installers 2025-08-08 20:38:48 +01:00
README.md update llm list 2025-11-16 22:13:06 +01:00
SIZES.md fin funsize 2025-08-18 09:08:57 +01:00

fin logo, orange fin ambiguous if dorsal, pelvic or caudal, on a purple background

fin

Fish Extensible Text Editor Written In Fish

"Started on a whim. Is actually usable."

Caution

This project is still in its infancy, past proof-of-concept, still needs a lot of shake-down, a lot of human eye and hand on it to clean up the LLM slime still scattered around, a lot of refactoring still to do, documentation and accoutriments out of sync, still to stabilise on a clear core base, etc, . Manage your expectations accordingly.

fin's first screenshot, wearing nztt font at 18 pixels, newly in colour, in st suckless's simple terminal

Statsheet:

License: GNU GPL 3

Author(s): Digit (Directing Claude Sonnet 4.0, Mistral, Qwen, opencode (grok), and more)

Version: 1.013

Lines of code: 524

Features:

  • Open
  • Save
  • Quit
  • Cursor keys
  • Backspace
  • Enter
  • Line wrap
  • Cursor (inverse colour)
  • Colour Status bar
    • Line number
    • Column number
    • Keybind Help
    • Version
  • cursor scrolling
  • page up / page down
  • paste selection
  • paste clipboard
  • ... and nothing much else (yet).

Dependencies:

Core requirements:

  • Fish shell (2.3.0+)
  • awk (POSIX awk, gawk, mawk, or BusyBox awk)
  • coreutils: head, tail, wc, cp, mv, cat (GNU coreutils, BusyBox, or BSD variants)
  • Terminal utilities: tput, stty, clear (usually part of ncurses)
  • od (octal dump - usually part of coreutils or util-linux)
  • mktemp (for safe temporary file creation)

Clipboard integration:

  • xsel (for X11 clipboard/primary selection access)

Alternative implementations:

  • awk is widely available - works with any POSIX-compliant awk implementation
  • xsel could potentially be replaced with xclip, wl-clipboard (Wayland), or pbcopy/pbpaste (macOS)
  • Most Unix-like systems (Linux, macOS, FreeBSD, etc.)

a fun little video (from an early version fin1.005 iirc) that doesnt show it off much because there's not much to show yet:

https://youtu.be/dhJaNQi8400

https://peertube.wtf/w/6pW6NUtWEdHoDa6DR3zm4u

About fin's beginning:

Written by Digit, with a lot of "help" from Claude Sonnet 4 LLM, with a lot of hand-holding, over 35 sub versions from 0.000 to 0.035 to get to proof of concept initial feature completeness without bugs, to version bump to 1.000.

All started on a whim, realising fish is capable of this, and, knowing I'm slow to take to elisp or lua for extending emacs and nvim, while fish is the language I know best... and it's a nice idea that my text editor is written and extensible in the same language as my shell.

About fin's future:

Can fin join the hallowed few laudible text-editors?

Unique positioning advantages:

  • Only text editor in Fish - fills a completely empty niche
  • Ultra-minimal core - easier to understand/modify than vim/emacs
  • Unix philosophy - leverages existing tools instead of reinventing
  • Easy extensibility - Fish functions are much more approachable than vimscript or elisp or lua

What could push it into the notable category:

  • Fish community adoption - Fish users might love having a native editor
  • Educational value - great for teaching how editors work (unlike vim's complexity)
  • Customization ease - if adding features is as simple as writing Fish functions
  • Performance niche - might be faster than Electron-based editors for simple tasks

The combination of uniqueness + solid engineering + clear vision could absolutely get it there.

License

fin is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

fin is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with fin. If not, see http://www.gnu.org/licenses/.