Grass
A minimal, beautiful, zero-config terminal code editor.
No modes. No config files. Just type.
Why
Terminal editors tend to be either tiny and utilitarian (nano) or powerful and config-heavy (Vim, Helix). Grass is the space between: a minimal editor that is pleasant to look at, starts instantly, and stays small enough to understand and change in an afternoon.
It is deliberately not a Vim replacement. There are no plugins, LSP, mouse support, or config files. One theme, one mode, and under 2,000 lines of Python, with Pygments for highlighting.
Install
pip install grass-editor
On Windows, install curses support first:
pip install windows-curses
Run
grass hello.py
Or without installing:
python -m grass hello.py
Check the identity:
grass --version
Theme
Grass ships with one hand-tuned theme: Meadow.
A calm, forest-inspired dark palette — warm parchment text, sage-green keywords, golden function names, aqua class names, and a layered forest-dark status bar. Comments and docstrings sit quietly in muted green-gray so code reads like a clearing at dusk.
- A two-tone wordmark splash greets you on launch — meadow green above,
sage shadow below — over the line
❧ a calm terminal editor, signedv0.1.2 · Meadow, and fades the moment you type. - The status bar keeps the file name on the left and live line,column position on the right.
- An amber dot beside the file name marks unsaved changes, then disappears the moment you save.
- Your terminal tab lives and breathes with you:
grass · file.py, gaining a•while there are unsaved changes. - Feedback speaks in color: saves flash leaf green, problems turn warm red.
- A floating scrollbar on the right edge tracks your place in the file.
- The cursor line glows softly; the gutter stays a shade darker.
- Search matches glow olive-green, and the match you are on turns warm gold.
- Prompts sit behind a green
❯marker.
Meadow assumes a dark terminal with 256 colors. Terminals with only basic colors fall back gracefully.
Keys
| Key | Action |
|---|---|
| type | edit |
| arrows, Home, End, PageUp, PageDown | move |
| Enter | new line, with auto-indent |
| Tab | indent to the next tab stop |
| Backspace, Delete | delete |
| Ctrl-F | find (jumps to matches as you type) |
| Ctrl-P | open a file by fuzzy search |
| Ctrl-K | cut line |
| Ctrl-U | paste line |
| Ctrl-S | save |
| Ctrl-Z | undo |
| Ctrl-R | redo |
| Ctrl-Q | quit |
Development
Grass is plain Python with no build step.
git clone https://github.com/mukundzha/grass.git
cd grass
pip install -e .
python tests/run_tests.py
Tests are plain functions run by a small custom runner.
Notes
- Grass is always in typing mode, like nano.
- A file without a trailing newline stays that way, and the status bar says
no newline. - The theme is designed for dark terminal backgrounds.
- Tabs are preserved and shown at 4-column tab stops.
- Large files re-highlight fully on every edit; normal files stay fast.
- Wide characters (CJK) and long wrapped lines are not fully supported yet.
Metadata
Release files for grass-editor 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| grass_editor-0.1.2.tar.gz | 21.6 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| grass_editor-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 37.7 kB
Release files / grass_editor-0.1.2.tar.gz
| Download URL | grass_editor-0.1.2.tar.gz |
|---|---|
| Size | 21.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0f1e8e74d6c9669a7d72cf469d878127860ced7dfa0bd7d0c833e44fbd4676a4
|
|
BLAKE2b-256 checksum How to use checksums |
c53384f138cc666558f7b4a3193acf0dca0bce274b123dbb11ae54225b385c47
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.9
|
Release files / grass_editor-0.1.2-py3-none-any.whl
| Download URL | grass_editor-0.1.2-py3-none-any.whl |
|---|---|
| Size | 16.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d29045d4995a30a43be2af855ab3a5059adb268514687091ce1c68bb9457301a
|
|
BLAKE2b-256 checksum How to use checksums |
3304994cdd83e19682ce24c156c061b24cae1c1f1047c8835064ddb0bc62c7bc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.9
|
Security for grass-editor 0.1.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.