Skip to content

SSobol77/ecli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

54 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

ecli Logo

ECLI

The Next-Generation Terminal IDE
Modern, AI-powered, extensible code editor for the terminal

PyPI Version Python Versions Release License Website

Linux macOS FreeBSD Windows


πŸš€ About ECLI

ECLI (Editor CLI) is a next-generation terminal IDE that brings the power of modern development tools into your terminal environment. It's built for developers who value speed, flexibility, and the ability to work without leaving the terminal.

✨ Key Features

  • 🧠 AI-Powered Assistant - Integrated AI panel for code generation, documentation, and refactoring
  • πŸ“‚ Modern File Manager - Seamlessly navigate and manage projects with intuitive UI
  • 🌱 Git Integration - Stage, commit, push/pull directly in terminal
  • 🌈 Syntax Highlighting - Powered by Tree-sitter, supports 70+ programming languages
  • πŸ“ LSP Integration - Full Language Server Protocol support with autocomplete, diagnostics, go-to-definition
  • 🐍 Built-in Linters - Ruff (Python) by default + support for external linters across 70+ languages
  • ⚑ Extensible Architecture - Plugin and theme system for unlimited customization
  • 🎨 Professional Themes - Dark and light themes included
  • πŸ”„ Cross-Platform - Native support for Linux, macOS, FreeBSD, and Windows

πŸ“₯ Quick Start

Fastest Installation (Pre-built Packages)

Download and install a pre-compiled package for your platform:

# Debian/Ubuntu
sudo apt install ./ecli_0.1.3_linux_x86_64.deb

# Fedora/RHEL/Rocky
sudo dnf install ./ecli_0.1.3_linux_x86_64.rpm

# Windows (PowerShell)
.\ecli_0.1.3_win_x86_64_setup.exe
# Portable alternative: .\ecli_0.1.3_win_x86_64.exe
# See docs/install/windows.md for checksum verification and SmartScreen notes.

# macOS
open ecli_0.1.3_macos_universal2.dmg
# First launch is blocked by Gatekeeper; see docs/install/macos.md
# for the one-time "Open Anyway" or xattr workaround.

All packages available at GitHub Releases

Run from Source

# Clone the repository
git clone https://github.com/SSobol77/ecli.git
cd ecli

# Install dependencies and run
make install
make run

Install via Python Package Manager

pip install ecli-editor

The Python distribution name is ecli-editor; the import package remains ecli, and the installed CLI command remains ecli.


πŸ“¦ Installation Guide

Complete Installation Instructions

For detailed platform-specific installation instructions, system dependencies, and troubleshooting, see the Installation Guide.

1. System Dependencies

These dependencies are required for terminal UI, clipboard integration, YAML acceleration, and UTF-8 support.

Debian/Ubuntu:

sudo apt update && sudo apt install \
  libncurses6 libncursesw6 libtinfo6 \
  libncurses-dev libncursesw5-dev \
  ncurses-bin ncurses-term \
  libyaml-dev xclip xsel

Fedora/CentOS/RHEL:

sudo dnf install ncurses ncurses-devel libyaml-devel xclip xsel

Arch Linux:

sudo pacman -S ncurses libyaml xclip xsel

FreeBSD:

sudo pkg install ncurses libyaml xclip xsel

macOS:

brew install ncurses libyaml

2. Install ECLI

Option A: Pre-built Packages (Recommended)

Download from GitHub Releases:

  • Linux: .deb (Debian/Ubuntu), .rpm (Fedora/RHEL), .AppImage (any Linux), .tar.gz
  • FreeBSD: .pkg
  • macOS: .dmg (install notes)
  • Windows: .exe installer or portable executable (install notes)

Option B: PyPI (Python Package Index)

pip install ecli-editor

Import and launch names are unchanged:

import ecli
ecli

Requires Python 3.11+ and system dependencies listed above.


πŸ”¨ Building from Source

Prerequisites

  • Python 3.11+
  • Git
  • System dependencies (see above)
  • uv package manager (optional, for faster builds)

Build Steps

# Clone the repository
git clone https://github.com/SSobol77/ecli.git
cd ecli

# Install dependencies
make install

# Run from source
make run

# Build packages for distribution
make help              # See all available build targets

Build System

ECLI features a comprehensive multi-platform build system. For detailed information:

Common Build Commands

# Display all available build targets
make help

# Check system capabilities and available tools
make sysinfo

# Build for your platform
make package-linux      # All Linux packages (deb, rpm, AppImage)
make package-pypi       # Python wheel + source distribution
make package-macos      # macOS DMG
make package-windows    # Windows portable EXE + installer
make package-freebsd    # FreeBSD package

# Release to GitHub (requires GitHub CLI)
make publish-all

πŸš€ Usage

Launch ECLI

ecli [options] [file]

Basic Commands

Shortcut Action
Ctrl+N New file
Ctrl+O Open file
Ctrl+S Save file
Ctrl+Q Quit
Ctrl+A AI assistant panel
Ctrl+G Git panel
Ctrl+F Search in file
F1 Help

For comprehensive keybindings and usage guide, see Getting Started.


πŸ“š Documentation

Complete documentation is organized by audience:

For Users

For Developers

For System Administrators

Reference


πŸ—οΈ Architecture

ECLI is built on a modern, extensible architecture:

  • Core Editor: Python with async/await for responsive UI
  • Terminal UI: curses-based for full terminal control
  • AI Integration: Pluggable AI provider system (OpenAI, Anthropic, HuggingFace, Ollama)
  • LSP Client: Language Server Protocol for IDE-like features
  • Git Integration: Direct git repository management
  • Plugin System: Extensible architecture for custom features

For detailed architecture information, see Architecture Overview.


🀝 Contributing

We welcome contributions! Here's how to get started:

  1. Fork the repository
  2. Clone your fork: git clone https://github.com/YOUR_USERNAME/ecli.git
  3. Create a feature branch: git checkout -b feature/your-feature
  4. Make your changes
  5. Test your changes: make clean && make install && make run
  6. Commit with clear messages
  7. Push to your fork
  8. Open a Pull Request

For detailed contribution guidelines, see CONTRIBUTING.


βš™οΈ Development

Setting Up Development Environment

# Clone and setup
git clone https://github.com/SSobol77/ecli.git
cd ecli

# Install dev dependencies
make install

# Run tests
python -m pytest

# Run linter
ruff check src/

# Format code
black src/

Project Structure

ecli/
β”œβ”€β”€ src/ecli/              # Main source code
β”‚   β”œβ”€β”€ core/              # Core editor functionality
β”‚   β”œβ”€β”€ ui/                # Terminal UI components
β”‚   β”œβ”€β”€ integrations/      # AI, Git, LSP integrations
β”‚   └── utils/             # Utilities and helpers
β”œβ”€β”€ docs/                  # Documentation
β”œβ”€β”€ tests/                 # Test suite
β”œβ”€β”€ scripts/               # Build and utility scripts
└── Makefile               # Multi-platform build system

πŸ› Issues & Bug Reports

Found a bug? Please help us by opening an issue on GitHub:


πŸ“‹ Requirements

Minimum Requirements

  • OS: Linux, macOS, FreeBSD, or Windows
  • Python: 3.11 or higher
  • Terminal: Supports 256 colors and UTF-8

Supported Platforms

  • Ubuntu 20.04 LTS and newer
  • Debian 11 and newer
  • Fedora 36 and newer
  • RHEL/CentOS/Rocky 8.0 and newer
  • Arch Linux (current)
  • FreeBSD 14.0 and newer
  • macOS 12 and newer
  • Windows 10/11

See Supported Platforms for detailed compatibility matrix.


πŸ“ License

ECLI is licensed under the Apache License 2.0. See the LICENSE file for details.


πŸ”— Links


πŸ’¬ Support


🎯 Roadmap

For planned features and current development status, see Roadmap.


Made with ❀️ by the ECLI community
⭐ Star us on GitHub!

Packages

 
 
 

Contributors