elpie
elpie is a minimalist Emacs-style command-line text editor written in Python, developed by AI (Microsoft Copilot) and product architect Francis Peck. It leverages only the standard library (curses, dataclasses) to deliver a familiar editing experience without external dependencies.
Features
- Emacs-style keybindings for navigation and editing
- Kill-ring support with
Ctrl-k(kill-line) andCtrl-y(yank) - Auto-save via
Ctrl-sand graceful exit withCtrl-xCtrl-c - Zero external dependencies; runs on Python 3.8+
- Easy pip installation and console-script usage
Installation
# From your project directory (with pyproject.toml present)
pip install .
or ...
pip install elpie
Usage
elpie [path/to/file.txt]
Providing a filename opens (or creates) that file. Omitting the argument opens an empty buffer.
| Key Combination | Action |
|---|---|
| Ctrl-f / → | Move cursor forward one character |
| Ctrl-b / ← | Move cursor backward one character |
| Ctrl-n / ↓ | Move cursor to next line |
| Ctrl-p / ↑ | Move cursor to previous line |
| Enter | Insert newline |
| Backspace | Delete character or join current with previous line |
| Ctrl-k | Kill from cursor to end of line |
| Ctrl-y | Yank (paste) last killed text |
| Ctrl-s | Save current buffer |
| Ctrl-x, Ctrl-f | Open file |
| Ctrl-x, b | Switch buffer |
| Ctrl-x, Ctrl-c | Exit editor |
Configuration
At present, elpie does not support a user configuration file or custom keybindings. Future releases may introduce:
- Custom keybinding profiles
- Plugin hooks for additional functionality
- Syntax highlighting via curses color pairs
Development
To work on elpie locally:
git clone https://github.com/frncspeck/elpie.git
cd elpie
pip install -e .
When tests are available, run them with:
pytest
Contributing
Contributions are welcome! Please open issues for bug reports or feature requests, and submit pull requests for enhancements.
License
This project is licensed under the MIT License. See the LICENSE file for details.
Release files for elpie 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| elpie-0.1.1.tar.gz | 5.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| elpie-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 11.7 kB
Release files / elpie-0.1.1.tar.gz
| Download URL | elpie-0.1.1.tar.gz |
|---|---|
| Size | 5.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7655afd54c0d511a98668834d2ee8a0ee0a3bce3e6d30ebf8df0e70d5f96983e
|
|
BLAKE2b-256 checksum How to use checksums |
411e59e051ea3de880ac333e956fa30fd77eb26286b504d4751aecb6daf1efae
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.3
|
Release files / elpie-0.1.1-py3-none-any.whl
| Download URL | elpie-0.1.1-py3-none-any.whl |
|---|---|
| Size | 6.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e788dc420aeaab62ab26b3eba031ee3d3a67a93a321298bc7e4121f19b0f5f97
|
|
BLAKE2b-256 checksum How to use checksums |
ae5d5a14607f4c407dae2b2605594f1416010943a6212197f682c9c38c960d05
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.3
|