El Yayster запускає безпечного локального LLM-агента всередині середовища Emacs
El Yayster реалізує автономного агента для Emacs у форматі одного elisp-файлу для роботи з Ollama. Інструмент виконує команди через цикл ReAct із обов'язковим підтвердженням небезпечних дій та ізоляцією токенів від системного процесу.

Вплив: Середній
Чому це важливо
Ви можете перетворити Emacs на повноцінне агентне середовище з локальними моделями без хмарних підписок та витоку ключів у список процесів.
TL;DR
- 01Забезпечує локальний автономний агентний цикл через Ollama та будь-який OpenAI-сумісний ендпоінт.
- 02Вимагає підтвердження користувача для виконання будь-яких команд elisp чи shell, що змінюють стан.
- 03Захищає токени доступу на спільних серверах, передаючи ключі через тимчасові файли з правами 0600.
Ключові факти
- Стандартний локальний ендпоінт
- http://localhost:11434/v1/chat/completions
- Таймаут виконання команд
- 30 секунд
- Права файлу авторизації
- mode-0600
Інтеграція в стан середовища замість простого чату
El Yayster перетворює модель на активного учасника сесії Emacs. Пакет реалізовано в одному файлі yayster.el без зовнішніх залежностей ELPA (використовуються лише cl-lib, json, subr-x та системний curl). З кожним кроком модель отримує контекст активних буферів, робочої директорії та поточного режиму, самостійно знаходячи функції через apropos і describe.
Протокол ReAct та політика підтверджень
Взаємодія побудована на структурованому циклі ReAct (ACTION:, ARGS:, FINAL:):
- Автосхвалення читання: Перегляд буферів за допомогою
read_bufferвиконується без зайвих запитів за наявності прапорцяyayster-auto-approve-readonly. - Шлюз для мутуючих операцій: Виклики
eval_elisp,write_bufferтаrun_commandзавжди вимагають підтвердження користувача з переглядом повного тексту команди. - Обмеження виконання: Для
run_commandдіє стандартний таймаут у 30 секунд (yayster-command-timeout) та ліміт на розмір виводу (yayster-command-max-bytes).
Безпека ключів та моніторинг контексту
Під час підключення до віддалених серверів через yayster-api-key токен авторизації записується в тимчасовий файл із правами доступу 0600 (-H @FILE), що запобігає його витоку через команду ps. Додатковий модуль yayster-mode-line.el виводить поточний стан моделі та споживання контекстного вікна безпосередньо в статусний рядок.
Спробуй за 2 хвилини
(add-to-list 'load-path "/path/to/yayster.el")
(global-set-key (kbd "C-c y") #'yayster-step)
(global-set-key (kbd "C-c Y") #'yayster-use-host)
(setq yayster-endpoint "http://localhost:11434/v1/chat/completions")elisp
✓ Коли використовувати
- Розробникам в Emacs, яким потрібен локальний асистент із можливістю досліджувати систему через apropos.
- Користувачам, яким потрібен повний контроль і аудит перед виконанням коду та зміною файлів.
✕ Коли НЕ варто
- Повністю автономні фонові пайплайни, де немає можливості підтверджувати операції вручну.
- Робота з буферами, що містять конфіденційні секрети, які можуть потрапити в промпт при читанні.
Що зробити сьогодні
- Завантажте `yayster.el` у свій load-path та призначте `yayster-step` на комбінацію `C-c y`.
- Завантажте локальну модель командою `ollama pull qwen3:8b` для перевірки роботи на `localhost:11434`.
- Уважно перевіряйте повний код операцій у буфері підтвердження перед схваленням команд запису.
Що каже спільнота
“Most "LLM in Emacs" packages make Emacs a mouth that talks to a model... El Yayster inverts that. It makes Emacs a body the model inhabits — the agent perceives your live environment, and acts on it”
Джерела