- Shell 87.2%
- Roff 10.8%
- Makefile 2%
| fin | ||
| fin.1 | ||
| fin.desktop | ||
| fin.png | ||
| finsfirstscreenshot.png | ||
| install.fish | ||
| INSTALL.md | ||
| LICENSE | ||
| makefile | ||
| README.md | ||
| SIZES.md | ||
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.
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://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/.

