apfel CLI

Встроенная в Mac модель Apple Intelligence как команда терминала и локальный сервер в формате OpenAI: без ключей и облака

  • 6 514 ★ репозитория
  • Последний коммит
  • MIT
CLIОфициальный

Расширенный доступ

Почему такой уровень

  • Режим `--serve` открывает на `localhost:11434` HTTP-сервер, к которому могут обращаться любые локальные программы, пока не задан `--token`
  • Флаг `--mcp` запускает указанные MCP-серверы как процессы и вызывает их инструменты
  • С адресом в `--mcp` вызовы инструментов уходят на удаленный сервер, а токен лучше задавать переменной `APFEL_MCP_TOKEN`
Все причины и проверки

arthur-ficial/apfel

Установка

Работает в

В терминале, через SkillFoxx CLI

npx skillfoxx add cli/apfel

Определит агенты на машине, покажет уровень доступа и зафиксирует версию.

Другие способы установки

Доступ и проверки

Как мы проверяем

Расширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.

  • Режим `--serve` открывает на `localhost:11434` HTTP-сервер, к которому могут обращаться любые локальные программы, пока не задан `--token`
  • Флаг `--mcp` запускает указанные MCP-серверы как процессы и вызывает их инструменты
  • С адресом в `--mcp` вызовы инструментов уходят на удаленный сервер, а токен лучше задавать переменной `APFEL_MCP_TOKEN`

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

apfel открывает языковую модель, встроенную в Mac на Apple Silicon через Apple FoundationModels, как обычную команду терминала. `apfel "вопрос"` печатает ответ, команда принимает текст из конвейера, а флаг `-f` прикрепляет файлы: из PDF и изображений она достает текст и распознает картинку на устройстве. Флаг `--code` оставляет в ответе только код, `-o json` отдает JSON для скриптов, `--schema` гарантирует вывод по схеме. Вычисления идут на самом Mac, ключей и облака нет. Режим `--serve` поднимает на `http://localhost:11434/v1` сервер в формате OpenAI с методами `/v1/chat/completions`, `/v1/responses` и `/v1/models`, потоковой выдачей и вызовом инструментов. Единственная модель называется `apple-foundationmodel`. Любой клиент, который понимает OpenAI API, подключается указанием этого адреса, как это сделано для OpenCode и Zed. Флаг `--mcp` подключает локальные и удаленные MCP-серверы: apfel находит их инструменты и вызывает сам. `--chat` открывает диалог в терминале, а `apfel demos ./папка` выписывает готовые скрипты оболочки, например перевод просьбы на английском в команду.

Для кого. Для владельцев Mac на Apple Silicon, которым нужна бесплатная локальная модель в скриптах, редакторе или агенте, когда достаточно небольшой модели и короткого контекста.

Подходит, если

  • Нужно прогнать текст из конвейера через модель в скрипте оболочки, например кратко пересказать `git diff` или выписать теги
  • Агент или редактор умеют подключаться по формату OpenAI, а запросы должны оставаться на вашем Mac
  • Нужен JSON строго по схеме: флаг `--schema` гарантирует нужную структуру
  • Требуется распознать текст в PDF или на фото чека и задать вопрос по нему без отправки файла в облако
  • Вы проверяете свой MCP-сервер: `apfel --chat --mcp ./server.py` показывает вызовы его инструментов

Не подходит, если

  • У вас Mac на Intel или macOS старше 26: apfel работает только на Apple Silicon с macOS 26 и новее
  • Нужен длинный контекст или большая модель: окно в 4096 или 8192 токена делится между вводом и ответом
  • Нужны эмбеддинги или выбор другой модели: сервер отвечает на них ошибкой, а модель одна
  • Нужны крупные модели и скачивание открытых весов: для этого подходит `ollama`, он запускает открытые модели разных размеров
  • Требуется генерация без фильтров безопасности Apple, которые иногда блокируют безобидные запросы

Пример запроса к агенту

Поставь apfel, подними его сервер на этом Mac и подключи к нему OpenCode, чтобы короткие запросы шли на встроенную модель

Ограничения

  • Нужны macOS 26 Tahoe или новее, Mac на Apple Silicon (M1 и новее) и включенный Apple Intelligence. Сборка из исходников требует Swift 6.3 и инструменты командной строки с SDK macOS 26.4.
  • Окно контекста общее для ввода и вывода: 4096 токенов на macOS 26 и на M1 или M2, 8192 на macOS 27 с чипом M3 и новее и памятью от 12 ГБ. Модель одна, около 3 млрд параметров, сменить ее нельзя. `apfel --model-info` покажет ваше окно, ответ занимает несколько секунд.
  • Эмбеддингов нет, `/v1/completions` отвечает 501, а `logprobs`, `n` больше 1, `stop`, `presence_penalty` и `frequency_penalty` отклоняются с кодом 400.
  • Фильтры безопасности Apple иногда блокируют безобидные запросы. Флаг `--permissive` снижает число ложных срабатываний.
  • Модель не знает текущую дату и выдумывает ее, дату стоит подставлять в системный промпт. Изображения доходят до модели только на macOS 27, на macOS 26 читается лишь распознанный текст. Лицензия MIT.

Как отключить. Остановите сервер: Ctrl-C в окне с `apfel --serve` или `brew services stop apfel` для фоновой службы. Удалите программу командой `brew uninstall apfel`. Скрипты, выписанные командой `apfel demos`, останутся в указанной папке.

Частые вопросы

Как подключить OpenCode к apfel?

Запустите `apfel --serve` и укажите в настройках OpenCode адрес `http://localhost:11434/v1` и модель `apple-foundationmodel`. OpenCode вставляет глобальный `~/.claude/CLAUDE.md` в системный промпт, и он переполняет окно модели. Поможет `export OPENCODE_DISABLE_CLAUDE_CODE_PROMPT=1`.

Что будет, если запрос не помещается в окно?

Генерация не начнется: сервер вернет ошибку `[context overflow]` с кодом 400, а команда завершится с кодом 4. Заранее оценить запрос можно флагом `--count-tokens`.

Как получить из ответа только код?

Флаг `--code` убирает пояснения и обрамление Markdown, поэтому ответ можно сразу перенаправить в файл или в `pbcopy`. Если кода нет, команда завершается с кодом 7.

Как закрыть локальный сервер от посторонних программ?

Запустите сервер с токеном, флагом `--token` или переменной `APFEL_TOKEN`, тогда запросы без заголовка `Authorization` не пройдут. Проверку происхождения запроса и CORS описывает документ `docs/server-security.md`, CORS включается флагом `--cors`.

Можно ли привязать удаленный MCP-сервер?

Да, `--mcp` принимает адрес по Streamable HTTP. Токен лучше передавать переменной `APFEL_MCP_TOKEN`, потому что флаг виден в `ps aux`. По открытому `http://` apfel токен отправлять отказывается.

Умеет ли apfel работать с PDF и фотографиями?

Флаг `-f` принимает PDF, изображения и текст. Из PDF и снимков apfel достает текст распознаванием на устройстве, и вопрос можно задать по получившемуся тексту, например про сумму в чеке.

Обсуждение

Вопросов и отзывов пока нет.

Официальный

Локальный сервер моделей для Mac на Apple Silicon в форматах OpenAI, Anthropic и Ollama: к нему подключают Claude Code, Codex и OpenCode одной командой

CLIШирокий доступ2 тыс.Звезды репозитория

Локальная память для Claude Code, Codex и Cursor Agent: учится на вашей активности на Mac и отдает агентам контекст со ссылками на источники по MCP

MCP-серверШирокий доступ1,3 тыс.Звезды репозитория
Официальный

Локальный сервер моделей для Mac с Apple Silicon: Qwen 3.8 и Gemma 4 с MTP-декодированием, API OpenAI и Anthropic для Claude Code, Codex и Cursor

CLIШирокий доступ2,6 тыс.Звезды репозитория

oterm — терминальный чат с Ollama, OpenAI, Anthropic и другими провайдерами: сессии в SQLite, MCP-серверы, встроенные и собственные инструменты

CLIШирокий доступ2,4 тыс.Звезды репозитория

Локальный ИИ-агент, который работает на своем железе через llama.cpp, водит браузер, правит файлы, выполняет разрешенные команды и помнит контекст между сессиям

CLIШирокий доступ3,4 тыс.Звезды репозитория
Нужен VPN

MCP-сервер, через который Claude Code, Codex и другие агенты зовут Gemini, GPT, Grok и локальные модели для ревью, отладки и консенсуса

MCP-серверРасширенный доступ11,8 тыс.Звезды репозитория

Сравнение с похожими

Записи с тем же главным запросом: чем они отличаются.

ЗаписьОфициальныйЗвезды репозиторияГлавное отличие
apfel (эта запись)да6 514
Ollamaда184 341запускает открытые модели разных размеров на Mac, Windows и Linux, а apfel открывает одну встроенную модель Apple
LM Studioдаприложение с окном для скачивания и запуска открытых моделей, а apfel остается командой терминала без загрузки моделей

Коротко о README

Главная страница репозитория показывает два режима работы, требования и установку через Homebrew, затем примеры команд, поддержку MCP и таблицу совместимости с OpenAI API. Отдельные разделы описывают ограничения и справочные документы: установка, все флаги и коды выхода, фоновая служба, безопасность сервера и руководства по вызову из Python, Node.js, Bash и других языков. Дальше идут перечень проектов вокруг apfel и список проектов сообщества. В репозитории лежат исходники на Swift, интеграционные тесты, примеры и демонстрационные скрипты.

Бейдж для README

Сообщить о проблеме

Foxx AIapfel
Foxx AI

Я Foxx AI и уже разобрал этот инструмент. Спросите про установку, настройку или что угодно еще, отвечу простыми словами.