Yatte
Yatte stands for Yet Another Terminal Text Editor.
Yatte is a minimal, experimental terminal-based text editor written in Ruby.
It focuses on simplicity, raw terminal control, and learning-oriented design rather than feature completeness.
⚠️ Yatte is currently early-stage and not intended for production use.
Requirements
Required
- Ruby 3.2 or newer — CI tests against 3.2, 3.3, and 3.4
-
Bundler —
gem install bundlerif you don't already have it
Optional but recommended — yatte falls back to pure-Ruby implementations when these aren't available, so the editor still works without them. Install them for measurably faster paths:
-
git — inside a git repository, yatte uses:
-
git ls-filesfor the fuzzy file finder (Ctrl-T) — respects.gitignoreand is ~18× faster than a recursive directory scan on large projects -
git grepfor project-wide content search (Ctrl-P) — also respects.gitignore, fastest of the three search tiers -
git diff/git ls-files/git check-ignorefor the gutter column (+/~/-markers next to added/modified/deleted lines)
-
-
grep (POSIX) — outside a git repo, project search (
Ctrl-P) uses an externalgrep -rin(~7× faster than the Ruby fallback and skips binary files by default)
The editor itself has zero runtime gem dependencies — it uses only Ruby's standard library (io/console, open3, tempfile, fileutils). No ncurses, no curses gem.
Installation
Clone the repository and install dependencies:
bundle installDevelopment
After checking out the repo, run bin/setup to install dependencies. Then, run rake test to run the tests. You can also run bin/yatte for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and the created tag, and push the .gem file to rubygems.org.
Running the tests
rake testUsage
bundle exec bin/yatte # Empty buffer
bundle exec bin/yatte <filename> # Open a fileCtrl-S to save, Ctrl-Q to quit. Press Ctrl-K inside the editor to see every keyboard shortcut at a glance. For a hands-on tour, open TUTORIAL.md with yatte; it also doubles as a pre-release manual-test checklist. A full reference lives in COMMANDS.md.
Syntax Highlighting
Yatte includes a pluggable syntax highlighting system with built-in support for:
-
Ruby —
.rb,.rake,.gemspec,Rakefile,Gemfile -
Markdown —
.md,.markdown
See AGENTS.md for instructions on adding support for new languages.
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/jpechaves/yatte. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the code of conduct.
License
The gem is available as open source under the terms of the MIT License.
Code of Conduct
Everyone interacting in the Yatte project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.