Приветствую всех! Сегодня хочу рассказать о своем Pet-проекте — собственном консольном текстовом редакторе, который я реализую на Go, с интеграцией больших языковых моделей (LLM). Этот опыт родился на стыке моего прошлого и настоящего — я радиоинженер по образованию, но всю жизнь работал с вычислительными комплексами, а сейчас, будучи пенсионером, возвращаюсь к любимым задачам в более новом формате.

Предыстория: от перфокарт до современных Unix подобных ОС

В моей молодости компьютеры использовали в своей работе перфокарты и АЦПУ, а в виде компьютерного терминала часто использовались старые консоли вроде Consul 260. Начав знакомство с Unix, я привык работать с ОС из консоли, а для редактирования текста со временем стал предпочитать Nano. Но, как вы понимаете, редактор Nano уже устарел, а его исходный код написан на чистом C, что усложняет его доработку, да и некоторые подходы реализованные в нем, на сегодняшнее время, кажуться архаичным. Особенно неприятно, когда длинная строка «уплывает» вправо, и приходится постоянно подгонять курсор.

Эти недостатки побудили меня к мыслительному рывку: а можно ли сделать что-то лучше? Времени у меня много, и я начал реализовывать свои задумки. Тем более это интересно и дает возможность не ограничиваться чьим-то фантазиями или запросами.

Почему именно такой проект возник сейчас?

Создавать полноценный редактор уровня Nano в одиночку — сложная и длительная задача. Но современные технологии — LLM, нейросети — могут значительно облегчить работу. В итоге у меня появился возможность попробовать реализовать свой маленький «GPT-ассистент» внутри редактора.

Основная идея — сделать инструмент, который не только редактирует текст, но и помогает посредством искусственного интеллекта, дает советы, генерирует код или исправляет ошибки — прямо из терминала.

И так ... (барабанная дрообь), мой новый текстовый редактор на Go с интеграцией LLM

Решил поделиться своим новым проектом - консольным текстовым редактором, написанным на Go. Это не просто очередной редактор, а инструмент, который я создавал для собственных нужд, с функциями, которые действительно полезны в повседневной работе.

Похож на Nano?
Похож на Nano?

Что это за зверь?

Это консольный редактор с полной поддержкой Unicode, синтаксической подсветкой для множества языков программирования (C, C++, Go, Python, Ruby, Kotlin, Swift, Lisp, Fortran, ассемблер) и, самое главное, с интеграцией с LLM-моделями. Да-да, прямо в редакторе можно общаться с нейросетями!

Основные возможности

Редактор поддерживает все стандартные функции, которые вы ожидаете от современного текстового редактора:

  • Многострочное редактирование

  • Навигация курсором, Home/End, PgUp/PgDn

  • Undo/redo с полноценным стеком

  • Вырезание/копирование/вставка (в том числе из системного буфера обмена)

  • Поиск и замена текста (включая массовую замену)

  • Переход к строке по ее номеру

  • Выделение текста по строкам и символам

Но особый интерес представляют расширенные функции:

Интеграция с LLM

Самая интересная часть - это интеграция с большими языковыми моделями. Можно подключить разные провайдеры:

  • Ollama (работает локально)

  • OpenRouter

  • Pollinations

  • LLM7

  • Или любой другой HTTP-эндпоинт, который использует в своей работе API OpenAI

Функции работы с LLM:

  • Ctrl+L - отправить произвольный промпт

  • Ctrl+P - генерация кода на основе комментария в коде

  • Ctrl+R - выполнить код и получить рекомендации по исправлению ошибок (если есть)

Умные функции

Есть и другие полезные возможности:

  • Автодополнение скобок и кавычек

  • Подсветка парных скобок

  • Перевод выделенного текста на другие языки (Ctrl+W)

  • Комментирование/раскомментирование строк (Ctrl+K)

  • Отступы и сдвиги кода (Ctrl+U/Ctrl+Y)

  • Запуск команд терминала прямо из редактора (Ctrl+T)

Многоязычность

Помощи с документацией по программе адаптирована под русскоязычных пользователей.

Почему именно это?

Я создавал этот редактор для себя, поэтому в нем только те функции, которые я действительно использую. Нет лишнего веса, нет ненужных зависимостей - только необходимый минимум и мощная интеграция с ИИ.

Это не попытка конкурировать с VS Code или другими тяжеловесами. Это инструмент для тех, кто:

  • Работает в терминале

  • Хочет иметь под рукой помощника ИИ

  • Ценит простоту и привычный (ламповый) интерфейс, в стиле Nano

Технические детали

Редактор написан на Go с использованием библиотеки tcell для работы с терминалом. Полностью поддерживает Unicode, правильно работает с табами и многосимвольными символами. Есть полноценная система синтаксической подсветки для разных языков программирования.

Где взять?

https://github.com/SkalaSkalolaz/editor

Проект открыт и доступен на GitHub "безвозмездно, то есть даром". Собирается одной командой go build . Для работы с LLM нужно либо поставить Ollama локально, либо получить API-ключи для облачных сервисов (к примеру: OpenRouter).

Пока это бета, но я уже использую его в своей работе каждый день. Буду рад, если кто-то найдет это полезным. Особенно интересно было бы узнать, какие функции стоит добавить или улучшить.

Просто очередной проект в для себя, но может кому-то пригодится.

Пожалуйста, у кого есть возможность, протестируйте редактор в работе непосредственно с OpenAI.