Autohand Справочник по конфигурации
June 23, 2026 · View on GitHub
Полный справочник по всем параметрам конфигурации в ~/.autohand/config.json (или .toml/.yaml/.yml).
Совет. Большинство приведенных ниже настроек можно изменить в интерактивном режиме с помощью команды
/settingsвместо редактирования файла вручную.
Локализованные ссылки:
- English
- 日本語
- 简体中文
- 繁體中文
- 한국어
- Deutsch
- Español
- Français
- Italiano
- Polski
- Русский
- Português (Brasil)
- Türkçe
- Čeština
- Magyar
- हिन्दी
- Bahasa Indonesia
Содержание
- Расположение файла конфигурации
- Переменные среды
- Базовый режим
- Настройки провайдера
- Настройки рабочей области
- Настройки пользовательского интерфейса
- Настройки агента
- Настройки разрешений
- Режим исправления
- Настройки сети
- Настройки телеметрии
- Внешние агенты
- Система навыков
- Настройки API
- Настройки аутентификации
- Настройки навыков сообщества
- Настройки общего доступа
- Синхронизация настроек
- Настройки хуков
- Настройки MCP
- Настройки расширения Chrome
- Полный пример
Расположение файла конфигурации
Autohand ищет конфигурацию в следующем порядке:
- Переменная среды
AUTOHAND_CONFIG(пользовательский путь) ~/.autohand/config.toml~/.autohand/config.yaml~/.autohand/config.yml~/.autohand/config.json(по умолчанию)
Вы также можете переопределить базовый каталог:
export AUTOHAND_HOME=/custom/path # Changes ~/.autohand to /custom/path
Переменные среды
| Переменная | Описание | Пример |
|---|---|---|
AUTOHAND_HOME | Базовый каталог для всех данных Autohand | /custom/path |
AUTOHAND_CONFIG | Пользовательский путь к файлу конфигурации | /path/to/config.toml |
AUTOHAND_API_URL | Конечная точка API (переопределяет конфигурацию) | https://api.autohand.ai |
AUTOHAND_SECRET | Секретный ключ компании/команды | sk-xxx |
AUTOHAND_PERMISSION_CALLBACK_URL | URL-адрес для обратного вызова разрешения (экспериментальный) | http://localhost:3000/callback |
AUTOHAND_PERMISSION_CALLBACK_TIMEOUT | Таймаут для обратного вызова разрешения в мс | 5000 |
AUTOHAND_NON_INTERACTIVE | Запуск в неинтерактивном режиме | 1 |
AUTOHAND_YES | Автоподтверждение всех запросов | 1 |
AUTOHAND_NO_BANNER | Отключить баннер при запуске | 1 |
AUTOHAND_STREAM_TOOL_OUTPUT | Потоковая передача результатов инструмента в режиме реального времени | 1 |
AUTOHAND_DEBUG | Включить ведение журнала отладки | 1 |
AUTOHAND_THINKING_LEVEL | Установить уровень глубины рассуждений | normal |
AUTOHAND_CLIENT_NAME | Идентификатор клиента/редактора (устанавливается расширениями ACP) | zed |
AUTOHAND_CLIENT_VERSION | Версия клиента (устанавливается расширениями ACP) | 0.169.0 |
AUTOHAND_CODE | Флаг обнаружения окружающей среды (устанавливается автоматически) | 1 |
AUTOHAND_CODE_SIMPLE | Включить простой режим без передачи --bare | 1 |
Уровень мышления
Переменная среды AUTOHAND_THINKING_LEVEL контролирует глубину рассуждений, используемых моделью:
| Значение | Описание |
|---|---|
none | Прямые ответы без видимых аргументов |
normal | Стандартная глубина рассуждений (по умолчанию) |
extended | Глубокое обоснование сложных задач, более подробный мыслительный процесс |
Обычно это задается клиентскими расширениями ACP (например, Zed) через раскрывающийся список конфигурации.
# Example: Use extended thinking for complex tasks
AUTOHAND_THINKING_LEVEL=extended autohand --prompt "refactor this module"
Голый режим
Простой режим запускает Autohand только с явно запрошенной интеграцией контекста и среды выполнения. Включите его одним из следующих способов:
autohand --bare
AUTOHAND_CODE_SIMPLE=1 autohand
Когда передается --bare, Autohand также устанавливает AUTOHAND_CODE_SIMPLE=1 для запущенного процесса.
Режим Bare отключает автоматический запуск и интерактивную интеграцию:
- крючки и уведомления о крючках
- запуск ЛСП
- синхронизация плагинов, автоматическая загрузка плагинов и автозагрузка мета-инструментов.
- атрибуция, телеметрия, синхронизация сеансов, автоматические отчеты и фоновые пинги
- автоматический контекст начальной загрузки памяти/сессии
- предложения фоновых подсказок, проверки обновлений, выборка флагов функций и предварительная выборка метаданных модели.
- резервная аутентификация OAuth для ключей и браузера
- автоматическое обнаружение
AGENTS.mdи инструкций поставщика - все команды с косой чертой, включая пустой
/, введенный в командную строку
Абсолютные пути к файлам в форме косой черты, например /Users/alex/project/file.ts, по-прежнему рассматриваются как обычный текст подсказки. Ввод косой черты в форме команды, например /help, /model или /mcp, печатает Slash commands are disabled in bare mode. и не выполняется.
Аутентификация в простом режиме является только явной. Autohand сначала считывает AUTOHAND_API_KEY, затем auth.apiKeyHelper, если настроено. Он не считывает учетные данные связки ключей и не запускает вход в OAuth/браузер. Сторонние поставщики продолжают использовать ключи API и конфигурацию своего поставщика.
Эти явные входные данные остаются доступными в простом режиме:
| Ввод | Описание |
|---|---|
--system-prompt <value> | Замените системное приглашение встроенным текстом или значением в виде пути |
--system-prompt-file <path> | Заменить системное приглашение содержимым файла |
--append-system-prompt <value> | Добавить встроенный текст или значение, подобное пути, в системную подсказку |
--append-system-prompt-file <path> | Добавить содержимое файла в системное приглашение |
--add-dir <path...> | Добавить явные каталоги в область рабочей области |
--mcp-config <path> | Загрузить явный файл конфигурации MCP |
--settings | Открыть настройки прямо из флага CLI |
--config <path> | Используйте явный файл конфигурации Autohand |
--agents <json|path> | Загрузить явные встроенные агенты в формате JSON или каталог явных агентов |
--plugin-dir <path> | Загрузить явный каталог плагинов/мета-инструментов |
Настройки провайдера
provider
Активный поставщик LLM для использования.
| Значение | Описание |
|---|---|
"openrouter" | API OpenRouter (по умолчанию) |
"ollama" | Локальный экземпляр Ollama |
"llamacpp" | Локальный сервер llama.cpp |
"openai" | OpenAI API напрямую |
"mlx" | MLX на Apple Silicon (локально) |
"llmgateway" | Единый API LLM Gateway |
"deepseek" | API DeepSeek |
"zai" | Z.ai GLM API |
"sakana" | Sakana.AI Фугу API |
"bedrock" | Основа AWS |
"custom:<id>" | Пользовательский поставщик, совместимый с OpenAI, из customProviders |
openrouter
Конфигурация провайдера OpenRouter.
{
"openrouter": {
"apiKey": "sk-or-v1-xxx",
"baseUrl": "https://openrouter.ai/api/v1",
"model": "your-modelcard-id-here",
"contextWindow": 262144
}
}
| Поле | Тип | Требуется | По умолчанию | Описание |
|---|---|---|---|---|
apiKey | строка | Да | - | Ваш ключ API OpenRouter |
baseUrl | строка | Нет | https://openrouter.ai/api/v1 | Конечная точка API |
model | строка | Да | - | Идентификатор модели (например, your-modelcard-id-here) |
contextWindow | номер | Нет | Авто | Окно контекста точной модели. Autohand заполняет это значение из OpenRouter, если оно известно. |
zai
Конфигурация провайдера Z.ai.
{
"zai": {
"apiKey": "your-zai-api-key",
"baseUrl": "https://api.z.ai/api/paas/v4",
"model": "glm-5.2",
"contextWindow": 1000000
}
}
| Поле | Тип | Требуется | По умолчанию | Описание |
|---|---|---|---|---|
apiKey | строка | Да | - | Ваш API-ключ Z.ai |
baseUrl | строка | Нет | https://api.z.ai/api/paas/v4 | Конечная точка API |
model | строка | Да | glm-5.2 | Идентификатор модели, например glm-5.2, glm-5.1 или glm-4.5 |
contextWindow | номер | Нет | Авто | Окно контекста точной модели. Autohand предполагает 1 миллион для GLM-5.2 и 200 тысяч для GLM-5.1. |
sakana
Конфигурация провайдера Sakana.AI. API совместим с OpenAI и использует https://api.sakana.ai/v1 в качестве базового URL-адреса.
{
"sakana": {
"apiKey": "your-sakana-api-key",
"baseUrl": "https://api.sakana.ai/v1",
"model": "fugu",
"contextWindow": 1000000
}
}
| Поле | Тип | Требуется | По умолчанию | Описание |
|---|---|---|---|---|
apiKey | строка | Да | - | Ваш ключ API Sakana |
baseUrl | строка | Нет | https://api.sakana.ai/v1 | Конечная точка API |
model | строка | Да | fugu | Идентификатор модели, например fugu или fugu-ultra |
contextWindow | номер | Нет | Авто | Окно контекста точной модели. Autohand предполагает 1 миллион для моделей Fugu. |
customProviders
Пользовательские поставщики позволяют пользователям использовать конечную точку, совместимую с OpenAI, без изменения кода или нового связанного поставщика. Добавьте поставщика в customProviders, затем выберите его с помощью provider: "custom:<id>". Тот же поток доступен из /model с Новым поставщиком.... Во время установки Autohand проверяет базовый URL-адрес, аутентификацию и выбранную модель через OpenAI-совместимую конечную точку /models перед сохранением поставщика.
{
"provider": "custom:acme",
"customProviders": {
"acme": {
"id": "acme",
"displayName": "Acme AI",
"apiFormat": "openai-compatible",
"baseUrl": "https://api.acme.example/v1",
"apiKey": "acme-api-key",
"apiKeyRequired": true,
"model": "acme-code-1",
"contextWindow": 256000,
"reasoningEffort": "high",
"models": [
{
"id": "acme-code-1",
"label": "Acme Code 1",
"contextWindow": 256000,
"reasoningEffort": "high"
}
]
}
}
}
Для локальных серверов, совместимых с OpenAI, которые не требуют аутентификации, установите для apiKeyRequired значение false и опустите apiKey.
| Поле | Тип | Требуется | По умолчанию | Описание |
|---|---|---|---|---|
id | строка | Да | - | Стабильный идентификатор провайдера. Он должен соответствовать ключу объекта и выбирается как custom:<id>. |
displayName | строка | Да | - | Имя отображается в /model и настройках провайдера. |
apiFormat | строка | Да | - | Должно быть openai-compatible. |
baseUrl | строка | Да | - | Корень конечной точки, например https://api.example.com/v1. Autohand проверяет /models и вызывает /chat/completions. |
apiKey | строка | Условное | - | Токен носителя для размещенных конечных точек. Требуется, если apiKeyRequired истинно. |
apiKeyRequired | логическое | Нет | true | Установите false для локальных или уже прошедших проверку подлинности шлюзов. |
model | строка | Да | - | Идентификатор активной модели. |
contextWindow | номер | Нет | Авто | Точное контекстное окно для планирования бюджета токенов, статуса, телеметрии и синхронизации метаданных. |
reasoningEffort | строка | Нет | - | Необязательные none, low, medium, high или xhigh. Отправляется как reasoning_effort для пользовательских запросов, совместимых с OpenAI. |
models | массив | Нет | - | Дополнительные записи выбора модели с контекстом каждой модели и метаданными обоснования. |
ollama
Конфигурация провайдера Ollama.
{
"ollama": {
"baseUrl": "http://localhost:11434",
"port": 11434,
"model": "llama3.2"
}
}
| Поле | Тип | Требуется | По умолчанию | Описание |
|---|---|---|---|---|
baseUrl | строка | Нет | http://localhost:11434 | URL-адрес сервера Оллама |
port | номер | Нет | 11434 | Порт сервера (альтернатива baseUrl) |
model | строка | Да | - | Название модели (например, llama3.2, codellama) |
llamacpp
Конфигурация сервера llama.cpp.
{
"llamacpp": {
"baseUrl": "http://localhost:8080",
"port": 8080,
"model": "default"
}
}
| Поле | Тип | Требуется | По умолчанию | Описание |
|---|---|---|---|---|
baseUrl | строка | Нет | http://localhost:8080 | URL-адрес сервера llama.cpp |
port | номер | Нет | 8080 | Порт сервера |
model | строка | Да | - | Идентификатор модели |
openai
Конфигурация API OpenAI.
{
"openai": {
"authMode": "api-key",
"apiKey": "sk-xxx",
"baseUrl": "https://api.openai.com/v1",
"model": "gpt-5.4"
}
}
OpenAI также может использовать вашу подписку на ChatGPT через встроенный процесс входа в систему OpenAI Autohand:
{
"openai": {
"authMode": "chatgpt",
"baseUrl": "https://api.openai.com/v1",
"contextWindow": 1050000,
"model": "gpt-5.4",
"chatgptAuth": {
"accessToken": "...",
"refreshToken": "...",
"accountId": "..."
}
}
}
| Поле | Тип | Требуется | По умолчанию | Описание |
|---|---|---|---|---|
authMode | строка | Нет | api-key | Режим аутентификации: api-key или chatgpt |
apiKey | строка | Да для режима api-key | - | Ключ API OpenAI |
baseUrl | строка | Нет | https://api.openai.com/v1 | Конечная точка API |
model | строка | Да | - | Название модели (например, gpt-5.4, gpt-5.4-mini) |
contextWindow | номер | Нет | Авто | Окно контекста точной модели. Установите этот параметр, чтобы переопределить устаревшие локальные предположения. |
chatgptAuth | объект | Да для режима chatgpt | - | Сохраненные токены аутентификации ChatGPT/Codex и идентификатор учетной записи |
mlx
Поставщик MLX для компьютеров Apple Silicon Mac (локальный вывод).
{
"mlx": {
"baseUrl": "http://localhost:8080",
"port": 8080,
"model": "mlx-community/Llama-3.2-3B-Instruct-4bit"
}
}
| Поле | Тип | Требуется | По умолчанию | Описание |
|---|---|---|---|---|
baseUrl | строка | Нет | http://localhost:8080 | URL-адрес сервера MLX |
port | номер | Нет | 8080 | Порт сервера |
model | строка | Да | - | Идентификатор модели MLX |
llmgateway
Конфигурация унифицированного API LLM Gateway. Предоставляет доступ к нескольким поставщикам LLM через единый API.
{
"llmgateway": {
"apiKey": "your-llmgateway-api-key",
"baseUrl": "https://api.llmgateway.io/v1",
"model": "gpt-4o"
}
}
| Поле | Тип | Требуется | По умолчанию | Описание |
|---|---|---|---|---|
apiKey | строка | Да | - | Ключ API шлюза LLM |
baseUrl | строка | Нет | https://api.llmgateway.io/v1 | Конечная точка API |
model | строка | Да | - | Название модели (например, gpt-4o, claude-3-5-sonnet-20241022) |
Получение ключа API: Посетите llmgateway.io/dashboard, чтобы создать учетную запись и получить ключ API.
Поддерживаемые модели: LLM Gateway поддерживает модели от нескольких поставщиков, включая:
- OpenAI:
gpt-4o,gpt-4o-mini,gpt-4-turboclaude-3-5-haiku-20241022– Google:gemini-1.5-pro,gemini-1.5-flash
deepseek
Конфигурация провайдера DeepSeek. API совместим с OpenAI и использует https://api.deepseek.com в качестве базового URL-адреса.
{
"deepseek": {
"apiKey": "your-deepseek-api-key",
"baseUrl": "https://api.deepseek.com",
"model": "deepseek-v4-flash"
}
}
| Поле | Тип | Требуется | По умолчанию | Описание |
|---|---|---|---|---|
apiKey | строка | Да | - | Ключ API DeepSeek |
baseUrl | строка | Нет | https://api.deepseek.com | Конечная точка API |
model | строка | Да | - | Название модели, например deepseek-v4-flash или deepseek-v4-pro |
bedrock
Конфигурация поставщика AWS Bedrock. converse — это режим по умолчанию, в котором используется цепочка учетных данных AWS SDK. В режимах, совместимых с OpenAI, используются ключи API Bedrock и конечные точки, совместимые с OpenAI.
{
"bedrock": {
"apiMode": "converse",
"authMode": "aws-credentials",
"profile": "enterprise-prod",
"region": "us-east-1",
"model": "anthropic.claude-3-5-sonnet-20241022-v2:0"
}
}
provider: bedrock
bedrock:
apiMode: openai-chat
authMode: bedrock-api-key
apiKey: bedrock-api-key
region: us-east-1
model: openai.gpt-oss-120b-1:0
provider = "bedrock"
[bedrock]
apiMode = "openai-responses"
authMode = "bedrock-api-key"
apiKey = "bedrock-api-key"
region = "us-west-2"
endpoint = "https://vpce-abc123.bedrock-runtime.us-west-2.vpce.amazonaws.com/openai/v1"
model = "arn:aws:bedrock:us-west-2:123456789012:inference-profile/us.anthropic.claude-3-5-sonnet-20241022-v2:0"
| Поле | Тип | Требуется | По умолчанию | Описание |
|---|---|---|---|---|
model | строка | Да | - | Идентификатор модели Bedrock, идентификатор профиля вывода или ARN |
region | строка | Да | AWS_REGION, затем AWS_DEFAULT_REGION, затем us-east-1 в настройке | Регион AWS |
apiMode | строка | Нет | converse | converse, openai-chat или openai-responses |
authMode | строка | Нет | aws-credentials для converse, bedrock-api-key для режимов, совместимых с OpenAI | Режим аутентификации |
profile | строка | Нет | - | Дополнительный профиль AWS для аутентификации по цепочке учетных данных |
endpoint | строка | Нет | На основе режима и региона | Пользовательская/частная конечная точка Bedrock |
apiKey | строка | Да для режимов, совместимых с OpenAI | - | Ключ API Bedrock. Не используйте ключи API OpenAI. |
Запустите aws configure sso или установите AWS_PROFILE=enterprise-prod autohand для аутентификации AWS на основе профиля. Учетные данные метаданных роли IAM, контейнера и экземпляра поддерживаются AWS SDK. Прежде чем использовать модель, включите доступ к модели в консоли AWS.
Настройки рабочей области
{
"workspace": {
"defaultRoot": "/path/to/projects",
"allowDangerousOps": false
}
}
| Поле | Тип | По умолчанию | Описание |
|---|---|---|---|
defaultRoot | строка | Текущий каталог | Рабочая область по умолчанию, если ничего не указано |
allowDangerousOps | логическое | false | Разрешить деструктивные операции без подтверждения |
Безопасность на рабочем месте
Autohand автоматически блокирует работу в опасных каталогах, чтобы предотвратить случайное повреждение:
- Корни файловой системы (
/,C:\,D:\и т. д.) - Домашние каталоги (
~,/Users/<user>,/home/<user>,C:\Users\<user>) - Системные каталоги (
/etc,/var,/System,C:\Windowsи т. д.) - Монтирование Windows WSL (
/mnt/c,/mnt/c/Users/<user>)
Эту проверку невозможно обойти. Если вы попытаетесь запустить autohand в опасном каталоге, вы увидите ошибку и должны будете указать безопасный каталог проекта.
# This will be blocked
cd ~ && autohand
# Error: Unsafe Workspace Directory
# This works
cd ~/projects/my-app && autohand
Подробную информацию см. в разделе Безопасность на рабочем месте.
Настройки пользовательского интерфейса
{
"ui": {
"theme": "dark",
"customThemes": {
"company": {
"colors": {
"accent": "#7c3aed",
"success": "#22c55e"
}
}
},
"autoConfirm": false,
"readFileCharLimit": 300,
"silentToolOutput": false,
"activityVerbs": ["Compiling", "Parsing", "Reviewing"],
"activityVerbsEnabled": true,
"activitySymbol": "✳",
"statusLine": {
"showProviderModel": true,
"showContext": true,
"showCommandHint": true,
"showPullRequest": true,
"showSessionLines": false,
"showQueue": true,
"showActiveStatus": true,
"showActiveMetrics": true,
"showCancelHint": true
},
"showCompletionNotification": true,
"showThinking": true,
"terminalBell": true,
"checkForUpdates": true,
"updateCheckInterval": 24
}
}
| Поле | Тип | По умолчанию | Описание |
|---|---|---|---|
theme | строка | "dark" | Цветовая тема для вывода через терминал. Встроенные модули включают dark, light, dracula, sandy, tui, github-dark, cappadocia, rio и australia. Устаревшие значения turkey и brazil по-прежнему загружаются как псевдонимы. |
customThemes | объект | {} | Встроенные определения пользовательских тем, привязанные к имени темы. Установите для theme тот же ключ, чтобы использовать его. |
autoConfirm | логическое | false | Пропускайте запросы на подтверждение для безопасной работы |
readFileCharLimit | номер | 300 | Максимальное количество символов для отображения в выходных данных инструмента чтения/поиска (полное содержимое по-прежнему отправляется в модель) |
silentToolOutput | логическое | false | Скрыть блоки вывода инструмента в терминале, сохраняя при этом результаты инструмента для модели/сеанса |
activityVerbs | строка или строка[] | встроенный бассейн | Пользовательский глагол активности или пул глаголов для рабочего индикатора, отображаемый как Verb... |
activityVerbsEnabled | логическое | true | Показывать глаголы смены действий, например Compiling..., во время работы агента |
activitySymbol | строка | "✳" | Символ, отображаемый перед глаголом активности в выходных данных индикатора активности |
statusLine.showProviderModel | логическое | true | Показать активного поставщика и модель в строке состояния композитора |
statusLine.showContext | логическое | true | Показать процент контекста в строке состояния композитора |
statusLine.showCommandHint | логическое | true | Показывать подсказки по командам, упоминаниям, навыкам и входу в терминал в строке состояния композитора |
statusLine.showPullRequest | логическое | true | Показать связанный номер запроса на включение или PR #123, если PR не связан |
statusLine.showSessionLines | логическое | false | Показать строки, добавленные и удаленные во время текущего сеанса |
statusLine.showQueue | логическое | true | Показывать количество запросов в очереди в строке состояния |
statusLine.showActiveStatus | логическое | true | Показывать текст статуса активной очереди во время работы агента |
statusLine.showActiveMetrics | логическое | true | Отображение затраченного времени и показателей токенов во время работы агента |
statusLine.showCancelHint | логическое | true | Показывать подсказку отмены Esc во время работы агента |
completionReportEnabled | логическое | true | Попросите модель включить краткий отчет о завершении после выполненных ходов действий |
showCompletionNotification | логическое | true | Показывать системное уведомление о завершении задачи |
showThinking | логическое | true | Отображение рассуждений/мысленного процесса LLM |
terminalBell | логическое | true | Звонок терминала, когда задача завершена (показывает значок на вкладке/док-станции терминала) |
checkForUpdates | логическое | true | Проверка обновлений CLI при запуске |
updateCheckInterval | номер | 24 | Часы между проверками обновлений (использует кэшированный результат в пределах интервала) |
Пользовательские темы могут переопределять любой семантический токен цвета. Недостающие токены унаследованы от темной темы:
{
"ui": {
"theme": "company",
"customThemes": {
"company": {
"vars": {
"brand": "#7c3aed",
"brandSoft": "#a78bfa"
},
"colors": {
"accent": "brand",
"borderAccent": "brandSoft",
"mdHeading": "brand"
}
}
}
}
}
Примечание. readFileCharLimit и silentToolOutput влияют только на отображение терминала. Полный контент по-прежнему отправляется в модель и сохраняется в сообщениях инструмента.
Вы можете переключить вывод инструмента без звука, не редактируя файл:
autohand config set silent_tool_output true
autohand config set silent_tool_output false
Вы можете переключать глаголы ротации активности, не редактируя файл:
autohand config set verbs activity true
autohand config set verbs activity false
Настройте глаголы в файле конфигурации, если вам нужна фиксированная метка статуса или небольшая ротация для конкретного проекта:
{
"ui": {
"activityVerbs": "Compiling"
}
}
{
"ui": {
"activityVerbs": ["Indexing", "Reviewing", "Testing"],
"activitySymbol": ">"
}
}
activityVerbs принимает либо одну строку, либо непустой массив строк. Если activityVerbsEnabled равен false, Autohand возвращается к Working... вместо смены пользовательских или встроенных глаголов.
Вы можете переключать отчеты о завершении, включая структурированное приглашение SITREP, без редактирования файла:
autohand config set sitrep true
autohand config set sitrep false
Терминальный звонок
Если terminalBell включен (по умолчанию), Autohand подает звуковой сигнал терминала (\x07) после завершения задачи. Это вызывает:
- Значок на вкладке терминала — Показывает визуальный индикатор завершения работы.
- Значок на панели подпрыгивает - Привлекает ваше внимание, когда терминал находится в фоновом режиме (macOS).
- Звук – если в настройках терминала включены звуки терминала.
Настройки терминала:
- Терминал macOS: «Настройки» > «Профили» > «Дополнительно» > «Звонок» (визуальный/звуковой).
- iTerm2: Настройки > Профили > Терминал > Уведомления.
- Терминал VS Code: Настройки > Терминал > Интегрировано: Включить звонок.
Чтобы отключить:
{
"ui": {
"terminalBell": false
}
}
Рендеринг чернил
Autohand по умолчанию использует средство рендеринга Ink 7 + React 19 для интерактивных терминалов. Устаревшее поле конфигурации ui.useInkRenderer игнорируется, поэтому старые файлы конфигурации не могут принудительно использовать простой композитор терминала. Чернила обеспечивают:
- Вывод без мерцания: все обновления пользовательского интерфейса группируются посредством согласования React.
- Функция рабочей очереди: вводите инструкции, пока агент работает.
- Улучшенная обработка ввода: нет конфликтов между обработчиками строки чтения.
- Компонуемый пользовательский интерфейс: основа для будущих расширенных функций пользовательского интерфейса.
Аварийный резерв для совместимости терминала:
AUTOHAND_LEGACY_UI=1 autohand
Примечание. Эта функция является экспериментальной и может иметь крайние случаи. Пользовательский интерфейс на основе ora по умолчанию остается стабильным и полностью функциональным.
Проверка обновлений
Когда checkForUpdates включен (по умолчанию), Autohand проверяет наличие новых выпусков при запуске:
> Autohand v0.6.8 (abc1234) ✓ Up to date
Если доступно обновление:
> Autohand v0.6.7 (abc1234) ⬆ Update available: v0.6.8
↳ Run: curl -fsSL https://autohand.ai/install.sh | sh
Как это работает:
- Получает последнюю версию из API GitHub.
- Кэширует результат
~/.autohand/version-check.json. - Проверяется только один раз в
updateCheckIntervalчасов (по умолчанию: 24). - Неблокирующий: запуск продолжается, даже если проверка не удалась.
Чтобы отключить:
{
"ui": {
"checkForUpdates": false
}
}
Или через переменную среды:
export AUTOHAND_SKIP_UPDATE_CHECK=1
Настройки агента
Управляйте поведением агента и ограничениями итераций.
{
"agent": {
"maxIterations": 100,
"enableRequestQueue": true,
"toolSelectionCache": true,
"autoMemory": true,
"idleLogoutEnabled": true,
"debug": false
}
}
| Поле | Тип | По умолчанию | Описание |
|---|---|---|---|
maxIterations | номер | 100 | Максимальное количество итераций инструмента по запросу пользователя до остановки |
enableRequestQueue | логическое | true | Разрешить пользователям вводить и ставить запросы в очередь во время работы агента |
toolSelectionCache | логическое | true | Кэшировать локальный выбор схемы инструмента для каждого оборота для эквивалентного ввода выбора инструмента |
autoMemory | логическое | true | Извлечение и сохранение долговременных воспоминаний пользователя/проекта после успешных интерактивных поворотов |
idleLogoutEnabled | логическое | true | Выход из интерактивных сеансов с проверкой подлинности по истечении времени простоя |
debug | логическое | false | Включить подробный вывод отладки (внутреннее состояние агента регистрируется в stderr) |
Выбор схемы инструмента
Autohand не отправляет каждую полную схему инструмента при каждом запросе LLM. Системное приглашение включает компактный каталог возможностей инструмента, и каждый запрос предоставляет только небольшой набор конкретных схем, выбранных из:
- Основные инструменты обнаружения, такие как
tool_search,read_file,fff_findиfff_grep. - Инструменты, соответствующие намерениям, для редактирования, проверки, работы с Git, браузером, Интернетом, зависимостями или отслеживания проектов.
– Инструменты, запрошенные посредством недавних вызовов
tool_searchили явно упомянутые по имени.
Это позволяет избежать больших предварительных контекстных затрат на отправку всех схем инструментов до того, как станет известно намерение пользователя. toolSelectionCache управляет только локальным кэшем селектора для эквивалентных поворотов; он не выполняет предварительную пользовательскую прогрев LLM и не требует принудительного использования большого префикса кэшированного приглашения.
Чтобы отключить локальный кэш селектора:
{
"agent": {
"toolSelectionCache": false
}
}
Чтобы сохранить аутентифицированные длительные сеансы агентов, пока они ожидают работы:
{
"agent": {
"idleLogoutEnabled": false
}
}
Для одного процесса используйте autohand --no-idle-logout или установите AUTOHAND_NO_IDLE_LOGOUT=1.
Режим отладки
Включите режим отладки, чтобы просмотреть подробную регистрацию внутреннего состояния агента (итерации цикла реагирования, построение подсказок, сведения о сеансе). Вывод поступает в stderr, чтобы не мешать нормальному выводу.
Три способа включения режима отладки (в порядке приоритета):
- Флаг CLI:
autohand -dилиautohand --debug. - Переменная среды:
AUTOHAND_DEBUG=1 - Файл конфигурации: установите
agent.debug: true.
Очередь запросов
Если enableRequestQueue включен, вы можете продолжать вводить сообщения, пока агент обрабатывает предыдущий запрос. Ваш ввод будет поставлен в очередь и обработан автоматически после завершения текущей задачи.
- Введите свое сообщение и нажмите Enter, чтобы добавить его в очередь.
- В строке состояния показано, сколько запросов находится в очереди.
- Запросы обрабатываются в порядке FIFO (первым поступил – первым обслужен).
- Максимальный размер очереди - 10 запросов.
Настройки разрешений
Детальный контроль над разрешениями инструментов.
{
"permissions": {
"mode": "interactive",
"whitelist": [
"run_command:npm *",
"run_command:bun *",
"run_command:git status"
],
"blacklist": ["run_command:rm -rf *", "run_command:sudo *"],
"rules": [
{
"tool": "run_command",
"pattern": "npm test",
"action": "allow"
}
],
"rememberSession": true
}
}
mode
| Значение | Описание |
|---|---|
"interactive" | Запрос на одобрение опасных операций (по умолчанию) |
"unrestricted" | Никаких подсказок, разрешить всё |
"restricted" | Запретить все опасные операции |
whitelist
Массив шаблонов инструментов, которые никогда не требуют утверждения.
["run_command:npm *", "run_command:bun test"]
blacklist
Массив шаблонов инструментов, которые всегда блокируются.
["run_command:rm -rf /", "run_command:sudo *"]
rules
Детализированные правила разрешений.
| Поле | Тип | Описание |
| --------- | --------- | ------------------------------------------- | ---------- | -------------- |
| tool | строка | Название инструмента, соответствующее |
| pattern | строка | Необязательный шаблон для сопоставления с аргументами |
| action | "allow" | "deny" | "prompt" | Действия, которые необходимо предпринять |
rememberSession
| Тип | По умолчанию | Описание |
|---|---|---|
| логическое | true | Запомните решения об утверждении сессии |
Разрешения локального проекта
Каждый проект может иметь свои собственные настройки разрешений, которые переопределяют глобальную конфигурацию. Они хранятся в .autohand/settings.local.json в корне вашего проекта.
Когда вы утверждаете операцию с файлом (редактирование, запись, удаление), она автоматически сохраняется в этом файле, поэтому вам больше не будет предложено выполнить ту же операцию в этом проекте.
{
"version": 1,
"permissions": {
"whitelist": [
"apply_patch:src/components/Button.tsx",
"write_file:package.json",
"run_command:bun test"
]
}
}
Как это работает:
– Когда вы одобряете операцию, она сохраняется в .autohand/settings.local.json.
– В следующий раз та же операция будет одобрена автоматически.
- Локальные настройки проекта объединены с глобальными настройками (локальные имеют приоритет)
– Добавьте
.autohand/settings.local.jsonк.gitignore, чтобы сохранить конфиденциальность личных настроек.
Формат шаблона:
tool_name:path— для операций с файлами (например,apply_patch:src/file.ts)tool_name:command args— для команд (например,run_command:npm test)
Разрешения на просмотр
Вы можете просмотреть текущие настройки разрешений двумя способами:
Флаг CLI (неинтерактивный):
autohand --permissions
Это отображает:
- Текущий режим разрешений (интерактивный, неограниченный, ограниченный)
- Пути к рабочему пространству и файлам конфигурации.
- Все одобренные шаблоны (белый список)
- Все запрещенные шаблоны (черный список)
- Сводная статистика
Интерактивная команда:
/permissions
В интерактивном режиме команда /permissions предоставляет ту же информацию, а также следующие возможности:
- Удаление элементов из белого списка
- Удаление элементов из черного списка
- Очистить все сохраненные разрешения
Режим исправления
Режим исправлений позволяет создавать общедоступные патчи, совместимые с git, без изменения файлов рабочей области. Это полезно для:
- Проверка кода перед применением изменений.
- Обмен изменениями, созданными ИИ, с членами команды.
- Создание воспроизводимых наборов изменений
- Конвейеры CI/CD, которым необходимо фиксировать изменения, не применяя их.
Использование
# Generate patch to stdout
autohand --prompt "add user authentication" --patch
# Save to file
autohand --prompt "add user authentication" --patch --output auth.patch
# Pipe to file (alternative)
autohand --prompt "refactor api handlers" --patch > refactor.patch
Поведение
Если указан --patch:
- Автоподтверждение: все подтверждения принимаются автоматически (подразумевается
--yes). - Нет запросов: запросы на утверждение не отображаются (подразумевается
--unrestricted). - Только предварительный просмотр: изменения фиксируются, но НЕ записываются на диск.
- Принудительная безопасность: операции из черного списка (
.env, ключи SSH, опасные команды) по-прежнему блокируются.
Применение патчей
Получатели могут применить патч, используя стандартные команды git:
# Check what would be applied (dry-run)
git apply --check changes.patch
# Apply the patch
git apply changes.patch
# Apply with 3-way merge (handles conflicts better)
git apply -3 changes.patch
# Apply and stage changes
git apply --index changes.patch
# Reverse a patch
git apply -R changes.patch
Формат патча
Сгенерированный патч соответствует унифицированному формату различий git:
diff --git a/src/auth.ts b/src/auth.ts
new file mode 100644
--- /dev/null
+++ b/src/auth.ts
@@ -0,0 +1,15 @@
+export function authenticate(user: string, password: string) {
+ // Implementation here
+}
diff --git a/src/index.ts b/src/index.ts
--- a/src/index.ts
+++ b/src/index.ts
@@ -1,5 +1,7 @@
import express from 'express';
+import { authenticate } from './auth';
const app = express();
+app.use(authenticate);
Коды выхода
| Код | Значение |
|---|---|
0 | Успех, патч создан |
1 | Ошибка (отсутствует --prompt, отказ в разрешении и т. д.) |
Объединение с другими флагами
# Use specific model
autohand --prompt "optimize queries" --patch --model gpt-4o
# Specify workspace
autohand --prompt "add tests" --patch --path ./my-project
# Use custom config
autohand --prompt "refactor" --patch --config ~/.autohand/work.json
Пример рабочего процесса команды
# Developer A: Generate patch for a feature
autohand --prompt "implement user dashboard with charts" --patch --output dashboard.patch
# Share via git (create PR with just the patch file)
git checkout -b patch/dashboard
git add dashboard.patch
git commit -m "Add dashboard feature patch"
git push
# Developer B: Review and apply
git fetch origin patch/dashboard
git apply dashboard.patch
# Run tests, review code, then commit
git add -A && git commit -m "feat: add user dashboard with charts"
Настройки сети
{
"network": {
"maxRetries": 3,
"timeout": 30000,
"retryDelay": 1000
}
}
| Поле | Тип | По умолчанию | Макс | Описание |
|---|---|---|---|---|
maxRetries | номер | 3 | 5 | Повторные попытки для неудачных запросов API |
timeout | номер | 30000 | - | Таймаут запроса в миллисекундах |
retryDelay | номер | 1000 | - | Задержка между повторными попытками в миллисекундах |
Настройки телеметрии
Телеметрия отключена по умолчанию (по желанию). Включите его, чтобы улучшить Autohand.
{
"telemetry": {
"enabled": false,
"apiBaseUrl": "https://api.autohand.ai",
"batchSize": 20,
"flushIntervalMs": 60000,
"maxQueueSize": 500,
"maxRetries": 3,
"enableSessionSync": true,
"companySecret": ""
}
}
| Поле | Тип | По умолчанию | Описание |
|---|---|---|---|
enabled | логическое | false | Включить/отключить телеметрию (по желанию) |
apiBaseUrl | строка | https://api.autohand.ai | Конечная точка API телеметрии |
batchSize | номер | 20 | Количество событий для пакетной обработки перед автоматической очисткой |
flushIntervalMs | номер | 60000 | Интервал промывки в миллисекундах (1 минута) |
maxQueueSize | номер | 500 | Максимальный размер очереди перед удалением старых событий |
maxRetries | номер | 3 | Повторные попытки для неудачных запросов телеметрии |
enableSessionSync | логическое | true | Синхронизируйте сеансы с облаком для функций команды, если включена телеметрия |
companySecret | строка | "" | Секрет компании для аутентификации API |
Телеметрия поставщика/модели включает в себя идентификатор активного поставщика, идентификатор модели и доступные несекретные метаданные, такие как отображаемое имя пользовательского поставщика, формат API, усилия по обоснованию и контекстное окно. Ключи API и токены на предъявителя никогда не включаются.
Внешние агенты
Загрузите определения пользовательских агентов из внешних каталогов.
{
"externalAgents": {
"enabled": true,
"paths": ["~/.autohand/agents", "/team/shared/agents"]
}
}
| Поле | Тип | По умолчанию | Описание |
|---|---|---|---|
enabled | логическое | false | Включить загрузку внешнего агента |
paths | строка[] | [] | Каталоги для загрузки агентов |
Система навыков
Навыки — это пакеты инструкций, которые предоставляют специализированные инструкции агенту ИИ. Они работают как файлы AGENTS.md по требованию, которые можно активировать для конкретных задач.
Места открытия навыков
Навыки обнаруживаются из разных мест, причем более поздние источники имеют приоритет:
| Местоположение | Идентификатор источника | Описание |
|---|---|---|
~/.codex/skills/**/SKILL.md | codex-user | Навыки Кодекса на уровне пользователя (рекурсивно) |
~/.claude/skills/*/SKILL.md | claude-user | Навыки Клода на уровне пользователя (один уровень) |
~/.autohand/skills/**/SKILL.md | autohand-user | Навыки Autohand уровня пользователя (рекурсивно) |
<project>/.claude/skills/*/SKILL.md | claude-project | Навыки Клода на уровне проекта (один уровень) |
<project>/.autohand/skills/**/SKILL.md | autohand-project | Навыки Autohand уровня проекта (рекурсивно) |
Поведение автоматического копирования
Навыки, обнаруженные в локациях Кодекса или Клода, автоматически копируются в соответствующую локацию Autohand:
~/.codex/skills/и~/.claude/skills/→~/.autohand/skills/<project>/.claude/skills/→<project>/.autohand/skills/
Существующие навыки в локациях Autohand никогда не перезаписываются.
Формат SKILL.md
В навыках используется заголовок YAML, за которым следует контент с уценкой:
---
name: my-skill-name
description: Brief description of the skill
license: MIT
compatibility: Works with Node.js 18+
allowed-tools: read_file write_file run_command
metadata:
author: your-name
version: "1.0.0"
---
# My Skill
Detailed instructions for the AI agent...
| Поле | Требуется | Максимальная длина | Описание |
|---|---|---|---|
name | Да | 64 символа | Строчные буквы и цифры, только через дефис |
description | Да | 1024 символа | Краткое описание навыка |
license | Нет | - | Идентификатор лицензии (например, MIT, Apache-2.0) |
compatibility | Нет | 500 символов | Примечания о совместимости |
allowed-tools | Нет | - | Список разрешенных инструментов, разделенный пробелами |
metadata | Нет | - | Дополнительные метаданные «ключ-значение» |
Входные префиксы
Autohand поддерживает специальные префиксы в строке ввода:
| Префикс | Описание | Пример |
|---|---|---|
/ | Слэш-команды | /help, /model, /quit, /exit |
@ | Упоминания файлов (автозаполнение) | @src/index.ts |
$ | Упоминания навыков (автозаполнение) | $frontend-design, $code-review |
! | Запускайте команды терминала напрямую | ! git status, ! ls -la |
Упоминания о навыках ($):
- Введите
$, а затем символы, чтобы увидеть доступные навыки с автозаполнением. – Tab принимает самое верхнее предложение (например,$frontend-design). - Навыки открываются из
~/.autohand/skills/и<project>/.autohand/skills/. - Активированные навыки прикреплены к подсказке как специальные инструкции для текущей сессии.
- На панели предварительного просмотра отображаются метаданные навыка (имя, описание, состояние активации).
Команды оболочки (!):
- Команды выполняются в вашем текущем рабочем каталоге.
- Выходные данные отображаются непосредственно в терминале
- Не поступает в LLM
- 30-секундный тайм-аут
- Возврат к подсказке после выполнения
Слэш-команды
/skills — Менеджер пакетов
| Команда | Описание |
|---|---|
/skills | Список всех доступных навыков |
/skills use <name> | Активировать навык для текущего сеанса |
/skills deactivate <name> | Деактивировать навык |
/skills info <name> | Показать подробную информацию о навыках |
/skills install | Просмотр и установка из реестра сообщества |
/skills install @<slug> | Установите навык сообщества с помощью слизняка |
/skills search <query> | Поиск в реестре общественных навыков |
/skills trending | Показать популярные навыки общения |
/skills remove <slug> | Удаление навыка сообщества |
/skills new | Создайте новый навык в интерактивном режиме |
/skills feedback <slug> <1-5> | Оцените навык сообщества |
/learn — Советник по навыкам на базе LLM
| Команда | Описание |
|---|---|
/learn | Проанализируйте проект и порекомендуйте навыки (быстрое сканирование) |
/learn deep | Проект глубокого сканирования (читает исходные файлы) для более целевых результатов |
/learn update | Повторно проанализировать проект и восстановить устаревшие навыки, полученные в рамках LLM |
/learn использует двухфазный поток LLM:
- Этап 1 — Анализ + Ранжирование + Аудит: сканирует структуру вашего проекта, проверяет установленные навыки на наличие избыточности/конфликтов и ранжирует навыки сообщества по релевантности (0–100).
- Этап 2 — Создание (условно): если ни один навык сообщества не набрал более 60 баллов, предлагается создать собственный навык, адаптированный к вашему проекту.
Сгенерированные навыки включают метаданные (
agentskill-source: llm-generated,agentskill-project-hash), поэтому/learn updateможет обнаруживать изменения в вашей кодовой базе и восстанавливать устаревшие навыки.
Автоматическое создание навыков (--auto-skill)
Флаг CLI --auto-skill генерирует навыки без потока интерактивного советника:
autohand --auto-skill
Это будет:
- Проанализируйте структуру вашего проекта (package.json, require.txt и т. д.).
- Обнаружение языков, фреймворков и шаблонов
- Создайте 3 соответствующих навыка с помощью LLM.
- Сохраните навыки в
<project>/.autohand/skills/.
Для более целенаправленного интерактивного взаимодействия вместо этого используйте /learn внутри сеанса.
Обнаруженные закономерности включают в себя:
- Языки: TypeScript, JavaScript, Python, Rust, Go.
- Фреймворки: React, Next.js, Vue, Express, Flask, Django.
- Шаблоны: инструменты CLI, тестирование, монорепозиторий, Docker, CI/CD.
Настройки API
Конфигурация серверного API для функций команды.
{
"api": {
"baseUrl": "https://api.autohand.ai",
"companySecret": "sk-team-xxx"
}
}
| Поле | Тип | По умолчанию | Описание |
|---|---|---|---|
baseUrl | строка | https://api.autohand.ai | Конечная точка API |
companySecret | строка | - | Секрет команды/компании для общих функций |
Также можно установить через переменные среды:
AUTOHAND_API_URL→api.baseUrlAUTOHAND_SECRET→api.companySecret
Настройки аутентификации
Аутентификация и настройка сеанса пользователя.
{
"auth": {
"token": "your-auth-token",
"user": {
"id": "user-id",
"email": "user@example.com",
"name": "User Name",
"avatar": "https://example.com/avatar.png"
},
"expiresAt": "2025-12-31T23:59:59Z"
}
}
| Поле | Тип | По умолчанию | Описание |
|---|---|---|---|
token | строка | - | Токен аутентификации для доступа к API |
user | объект | - | Информация о подтвержденном пользователе |
user.id | строка | - | Идентификатор пользователя |
user.email | строка | - | Адрес электронной почты пользователя |
user.name | строка | - | Отображаемое имя пользователя |
user.avatar | строка | - | URL-адрес аватара пользователя (необязательно) |
expiresAt | строка | - | Временная метка истечения срока действия токена (формат ISO 8601) |
Настройки навыков сообщества
Конфигурация для обнаружения и управления навыками сообщества.
{
"communitySkills": {
"enabled": true,
"showSuggestionsOnStartup": true,
"autoBackup": true
}
}
| Поле | Тип | По умолчанию | Описание |
|---|---|---|---|
enabled | логическое | true | Включить функции общественных навыков |
showSuggestionsOnStartup | логическое | true | Показывать предложения по навыкам при запуске, когда навыков у поставщика нет |
autoBackup | логическое | true | Автоматическое резервное копирование выявленных навыков поставщиков в API |
Настройки общего доступа
Настройка совместного использования сеанса с помощью команды /share. Сеансы проводятся по адресу autohand.link.
{
"share": {
"enabled": true
}
}
| Поле | Тип | По умолчанию | Описание |
|---|---|---|---|
enabled | логическое | true | Включить/отключить команду /share |
Формат YAML
share:
enabled: true
Отключение общего доступа к сеансу
Если вы хотите отключить совместное использование сеансов по соображениям безопасности или конфиденциальности:
{
"share": {
"enabled": false
}
}
Если этот параметр отключен, при запуске /share будет отображаться:
Session sharing is disabled.
To enable, set share.enabled: true in your config file.
Синхронизация настроек
Autohand может синхронизировать вашу конфигурацию между устройствами для вошедших в систему пользователей. Настройки надежно хранятся в Cloudflare R2 и шифруются перед загрузкой.
{
"sync": {
"enabled": true,
"interval": 300000,
"exclude": [],
"includeTelemetry": false,
"includeFeedback": false
}
}
| Поле | Тип | По умолчанию | Описание |
|---|---|---|---|
enabled | логическое | true (зарегистрировано) | Включить/выключить синхронизацию настроек |
interval | номер | 300000 | Интервал синхронизации в миллисекундах (по умолчанию: 5 минут) |
exclude | строка[] | [] | Шаблоны Glob для исключения из синхронизации |
includeTelemetry | логическое | false | Синхронизировать данные телеметрии (требуется согласие пользователя) |
includeFeedback | логическое | false | Синхронизировать данные обратной связи (требуется согласие пользователя) |
Флаг CLI
# Disable sync for this session
autohand --sync-settings=false
# Enable sync (default for logged users)
autohand --sync-settings
Что синхронизируется
По умолчанию эти элементы синхронизируются для вошедших в систему пользователей:
- Конфигурация (
config.json) — ключи API шифруются перед загрузкой. - Пользовательские агенты (
agents/) - Коммуникабельность (
community-skills/) - Пользовательские перехватчики (
hooks/) - Память (
memory/) - Знание проекта (
projects/) - История сеансов (
sessions/) - Общий контент (
share/) - Пользовательские навыки (
skills/)
Что не синхронизируется (по умолчанию)
- Идентификатор устройства (
device-id) – уникальный для каждого устройства. – Журналы ошибок (error.log) – Только локально. - Кэш версий (
version-*.json) - Файлы локального кэша
Синхронизация на основе согласия
Эти элементы требуют явного согласия в вашей конфигурации:
– Данные телеметрии – Установите sync.includeTelemetry: true для синхронизации.
– Данные обратной связи – Установите sync.includeFeedback: true для синхронизации.
{
"sync": {
"enabled": true,
"includeTelemetry": true,
"includeFeedback": true
}
}
Разрешение конфликтов
При возникновении конфликтов (один и тот же файл изменяется на нескольких устройствах) побеждает облачная версия. Это обеспечивает согласованность при входе в систему на новых устройствах.
Безопасность
Ключи API и другие конфиденциальные данные в config.json перед загрузкой шифруются с использованием вашего токена аутентификации. Их можно расшифровать только с помощью ваших учетных данных.
Что зашифровано:
- Поля с именем
apiKey. – Поля, заканчивающиеся наKey,Token,Secret. - Поле
password.
Как это работает
- При запуске: если вы вошли в систему, служба синхронизации запускается автоматически.
- Каждые 5 минут: настройки сравниваются с облачным хранилищем.
- Облако побеждает: удаленные изменения загружаются первыми.
- Локальные загрузки: загружаются новые локальные изменения.
- При выходе: служба синхронизации корректно останавливается.
Исключение файлов
Вы можете исключить определенные файлы или шаблоны из синхронизации:
{
"sync": {
"enabled": true,
"exclude": ["custom-local-config.json", "temp/*"]
}
}
Формат YAML
sync:
enabled: true
interval: 300000
exclude: []
includeTelemetry: false
includeFeedback: false
Настройки MCP
Настройте серверы MCP (Model Context Protocol) для расширения Autohand с помощью внешних инструментов.
{
"mcp": {
"enabled": true,
"servers": [
{
"name": "filesystem",
"transport": "stdio",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"],
"env": {},
"autoConnect": true
},
{
"name": "context7",
"transport": "http",
"url": "https://mcp.context7.com/mcp",
"headers": {
"CONTEXT7_API_KEY": "ctx7sk-your-api-key"
},
"autoConnect": true
}
]
}
}
mcp.enabled
- Тип:
boolean - По умолчанию:
true - Описание: включение или отключение всей поддержки MCP. Если
false, при запуске серверы не подключаются, а инструменты MCP недоступны.
mcp.servers
- Тип:
McpServerConfigEntry[] - По умолчанию:
[] - Описание: Массив конфигураций сервера MCP.
Поля ввода сервера
| Поле | Тип | Требуется | По умолчанию | Описание |
|---|---|---|---|---|
name | string | Да | - | Уникальный идентификатор сервера |
transport | "stdio" | "sse" | "http" | Да | - | Тип транспорта |
command | string | Да (стдио) | - | Команда запуска серверного процесса |
args | string[] | Нет | [] | Аргументы для команды |
url | string | Да (sse/http) | - | URL-адрес конечной точки сервера |
headers | Record<string, string> | Нет | {} | Пользовательские заголовки HTTP для транспорта http/sse (например, токены аутентификации) |
env | Record<string, string> | Нет | {} | Переменные среды, передаваемые на сервер |
autoConnect | boolean | Нет | true | Нужно ли автоматически подключаться при запуске |
Серверы подключаются асинхронно в фоновом режиме во время запуска, не блокируя приглашение. Используйте
/mcpдля интерактивного управления серверами или/mcp addдля просмотра реестра сообщества или добавления собственных серверов.
Полную документацию MCP см. в docs/mcp.md.
Настройки хуков
Конфигурация перехватчиков жизненного цикла, которые запускают команды оболочки при событиях агента. Подробную информацию см. в Документации по хукам.
{
"hooks": {
"enabled": true,
"hooks": [
{
"event": "pre-tool",
"command": "echo \"Running tool: $HOOK_TOOL\" >> ~/.autohand/hooks.log",
"description": "Log all tool executions",
"enabled": true
},
{
"event": "file-modified",
"command": "./scripts/on-file-change.sh",
"description": "Custom file change handler",
"filter": { "path": ["src/**/*.ts"] }
},
{
"event": "post-response",
"command": "curl -X POST https://api.example.com/webhook -d '{\"tokens\": $HOOK_TOKENS}'",
"description": "Track token usage",
"async": true
}
]
}
}
hooks
| Поле | Тип | По умолчанию | Описание |
|---|---|---|---|
enabled | логическое | true | Включить/отключить все перехватчики глобально |
hooks | массив | [] | Массив определений хуков |
Определение хука
| Поле | Тип | Требуется | По умолчанию | Описание |
|---|---|---|---|---|
event | строка | Да | - | Событие для подключения |
command | строка | Да | - | Команда оболочки для выполнения |
description | строка | Нет | - | Описание дисплея /hooks |
enabled | логическое | Нет | true | Активен ли хук |
timeout | номер | Нет | 5000 | Тайм-аут в миллисекундах |
async | логическое | Нет | false | Запуск без блокировки |
filter | объект | Нет | - | Фильтровать по инструменту или пути |
События перехвата
| Событие | Когда уволен |
|---|---|
pre-tool | Перед выполнением любого инструмента |
post-tool | После завершения работы инструмента |
file-modified | При создании/изменении/удалении файла |
pre-prompt | Перед отправкой в LLM |
post-response | После ответа LLM |
session-error | При возникновении ошибки |
Переменные среды
При выполнении перехватчиков доступны следующие переменные среды:
| Переменная | Описание |
|---|---|
HOOK_EVENT | Название события |
HOOK_WORKSPACE | Корневой путь рабочей области |
HOOK_TOOL | Имя инструмента (события инструмента) |
HOOK_ARGS | Инструмент в формате JSON args |
HOOK_SUCCESS | правда/ложь (пост-инструмент) |
HOOK_PATH | Путь к файлу (измененный файлом) |
HOOK_TOKENS | Используемые токены (пост-ответ) |
Настройки расширения Chrome
Управляйте интеграцией расширения Autohand Chrome. Полное руководство см. в Autohand в Chrome.
{
"chrome": {
"extensionId": "your-extension-id",
"enabledByDefault": false,
"browser": "auto",
"userDataDir": "/path/to/chrome/user-data",
"profileDirectory": "Default",
"installUrl": "https://autohand.ai/chrome"
}
}
| Ключ | Тип | По умолчанию | Описание |
|---|---|---|---|
extensionId | string | — | Установлен идентификатор расширения Chrome для прямой передачи |
enabledByDefault | boolean | false | Автоматический запуск браузерного моста с помощью CLI |
browser | string | "auto" | Предпочитаемый браузер Chromium: auto, chrome, chromium, brave, edge |
userDataDir | string | — | Каталог пользовательских данных браузера для выбора правильного профиля |
profileDirectory | string | — | Имя каталога профиля браузера (например, "Default", "Profile 1") |
installUrl | string | — | Резервный URL-адрес, если идентификатор расширения не настроен |
Флаги CLI
autohand --chrome # Start with browser bridge enabled
autohand --no-chrome # Start with browser bridge disabled
Слэш-команды
/chrome # Open Chrome integration panel
/chrome disconnect # Close the browser bridge connection
Полный пример
Формат JSON (~/.autohand/config.json)
{
"provider": "openrouter",
"openrouter": {
"apiKey": "sk-or-v1-your-key-here",
"baseUrl": "https://openrouter.ai/api/v1",
"model": "your-modelcard-id-here"
},
"ollama": {
"baseUrl": "http://localhost:11434",
"model": "llama3.2"
},
"workspace": {
"defaultRoot": "~/projects",
"allowDangerousOps": false
},
"ui": {
"theme": "dark",
"autoConfirm": false,
"showCompletionNotification": true,
"showThinking": true,
"terminalBell": true,
"checkForUpdates": true,
"updateCheckInterval": 24
},
"agent": {
"maxIterations": 100,
"enableRequestQueue": true,
"toolSelectionCache": true,
"idleLogoutEnabled": true,
"debug": false
},
"permissions": {
"mode": "interactive",
"whitelist": ["run_command:npm *", "run_command:bun *"],
"blacklist": ["run_command:rm -rf /"],
"rememberSession": true
},
"network": {
"maxRetries": 3,
"timeout": 30000,
"retryDelay": 1000
},
"telemetry": {
"enabled": false,
"apiBaseUrl": "https://api.autohand.ai",
"batchSize": 20,
"flushIntervalMs": 60000,
"maxQueueSize": 500,
"maxRetries": 3,
"enableSessionSync": true
},
"externalAgents": {
"enabled": false,
"paths": []
},
"api": {
"baseUrl": "https://api.autohand.ai"
},
"auth": {
"token": "your-auth-token",
"user": {
"id": "user-id",
"email": "user@example.com",
"name": "User Name"
}
},
"communitySkills": {
"enabled": true,
"showSuggestionsOnStartup": true,
"autoBackup": true
},
"share": {
"enabled": true
},
"sync": {
"enabled": true,
"interval": 300000,
"includeTelemetry": false,
"includeFeedback": false
}
}
Формат YAML (~/.autohand/config.yaml)
provider: openrouter
openrouter:
apiKey: sk-or-v1-your-key-here
baseUrl: https://openrouter.ai/api/v1
model: your-modelcard-id-here
ollama:
baseUrl: http://localhost:11434
model: llama3.2
workspace:
defaultRoot: ~/projects
allowDangerousOps: false
ui:
theme: dark
autoConfirm: false
showCompletionNotification: true
showThinking: true
terminalBell: true
checkForUpdates: true
updateCheckInterval: 24
agent:
maxIterations: 100
enableRequestQueue: true
toolSelectionCache: true
idleLogoutEnabled: true
debug: false
permissions:
mode: interactive
whitelist:
- "run_command:npm *"
- "run_command:bun *"
blacklist:
- "run_command:rm -rf /"
rememberSession: true
network:
maxRetries: 3
timeout: 30000
retryDelay: 1000
telemetry:
enabled: false
apiBaseUrl: https://api.autohand.ai
batchSize: 20
flushIntervalMs: 60000
maxQueueSize: 500
maxRetries: 3
enableSessionSync: true
externalAgents:
enabled: false
paths: []
api:
baseUrl: https://api.autohand.ai
auth:
token: your-auth-token
user:
id: user-id
email: user@example.com
name: User Name
communitySkills:
enabled: true
showSuggestionsOnStartup: true
autoBackup: true
share:
enabled: true
sync:
enabled: true
interval: 300000
includeTelemetry: false
includeFeedback: false
Формат TOML (~/.autohand/config.toml)
provider = "openrouter"
[openrouter]
apiKey = "sk-or-v1-your-key-here"
baseUrl = "https://openrouter.ai/api/v1"
model = "your-modelcard-id-here"
[ollama]
baseUrl = "http://localhost:11434"
model = "llama3.2"
[workspace]
defaultRoot = "~/projects"
allowDangerousOps = false
[ui]
theme = "dark"
autoConfirm = false
showCompletionNotification = true
showThinking = true
terminalBell = true
checkForUpdates = true
updateCheckInterval = 24
[ui.customThemes.company.vars]
brand = "#7c3aed"
brandSoft = "#a78bfa"
[ui.customThemes.company.colors]
accent = "brand"
borderAccent = "brandSoft"
mdHeading = "brand"
[agent]
maxIterations = 100
enableRequestQueue = true
toolSelectionCache = true
idleLogoutEnabled = true
debug = false
[permissions]
mode = "interactive"
whitelist = ["run_command:npm *", "run_command:bun *"]
blacklist = ["run_command:rm -rf /"]
rememberSession = true
Структура каталогов
Autohand хранит данные в ~/.autohand/ (или $AUTOHAND_HOME):
~/.autohand/
├── config.json # Main configuration
├── config.toml # Alternative TOML config
├── config.yaml # Alternative YAML config
├── device-id # Unique device identifier
├── error.log # Error log
├── feedback.log # Feedback submissions
├── sessions/ # Session history
├── projects/ # Project knowledge base
├── memory/ # User-level memory
├── commands/ # Custom commands
├── agents/ # Agent definitions
├── tools/ # Custom meta-tools
├── feedback/ # Feedback state
└── telemetry/ # Telemetry data
├── queue.json
└── session-sync-queue.json
Каталог уровня проекта (в корне рабочей области):
<project>/.autohand/
├── settings.local.json # Local project permissions (gitignore this)
├── memory/ # Project-specific memory
├── skills/ # Project-specific skills
└── tools/ # Project-specific meta-tools
Флаги CLI (переопределить конфигурацию)
Эти флаги переопределяют настройки файла конфигурации:
Флаги ядра
| Флаг | Описание |
|---|---|
-v, --version | Вывести текущую версию |
-p, --prompt [text] | Запуск одной инструкции в командном режиме |
--path <path> | Переопределить корень рабочей области |
--config <path> | Использовать собственный файл конфигурации |
--model <model> | Переопределить модель |
--temperature <n> | Установить температуру отбора проб (0-1) |
--thinking [level] | Установить глубину мышления/рассуждения (нет, нормальная, расширенная) |
-y, --yes | Подсказки автоподтверждения |
--dry-run | Предварительный просмотр без выполнения |
-d, --debug | Включить подробный вывод отладки |
--bare | Минимальный явный режим; также устанавливает AUTOHAND_CODE_SIMPLE=1 и отключает команды слэша |
Разрешения и безопасность
| Флаг | Описание |
|---|---|
--unrestricted | Никаких запросов на одобрение |
--restricted | Запретить опасные операции |
--permissions | Отобразить текущие настройки разрешений и выйти |
--no-idle-logout | Отключить выход из системы при простое с проверкой подлинности для длительных сеансов агента |
--yolo [pattern] | Инструмент автоматического одобрения вызывает соответствующий шаблон (например, allow:read,write или deny:delete) |
--timeout <seconds> | Тайм-аут в секундах для режима автоматического одобрения |
Git и рабочее дерево
| Флаг | Описание |
|---|---|
--worktree [name] | Запустить сеанс в изолированном рабочем дереве git (необязательное рабочее дерево/имя ветки) |
--tmux | Запуск в выделенном сеансе tmux (подразумевается --worktree; нельзя использовать с --no-worktree) |
--no-worktree | Отключить изоляцию рабочего дерева git в автоматическом режиме |
-c, --auto-commit | Автоматическое подтверждение изменений после выполнения задач |
--patch | Создать патч git без применения изменений |
--output <file> | Выходной файл для патча (используется с --patch) |
Автоматический режим
| Флаг | Описание |
|---|---|
--auto-mode [prompt] | Включите интерактивный автоматический режим или запустите автономный цикл с помощью встроенной задачи |
--max-iterations <n> | Максимальное количество итераций в автоматическом режиме (по умолчанию: 50) |
--completion-promise <text> | Текст маркера завершения (по умолчанию: «DONE») |
--checkpoint-interval <n> | Git фиксирует каждые N итераций (по умолчанию: 5) |
--max-runtime <m> | Максимальное время работы в минутах (по умолчанию: 120) |
--max-cost <d> | Максимальная стоимость API в долларах (по умолчанию: 10) |
--interactive-on-complete | После завершения автоматического режима переключитесь непосредственно в интерактивный режим (только TTY) |
Навыки и обучение
| Флаг | Описание |
|---|---|
--auto-skill | Автоматическое создание навыков на основе анализа проекта (см. также /learn для интерактивного консультанта) |
--learn | Запустить советник по навыкам /learn в неинтерактивном режиме (проанализировать и установить рекомендуемые навыки) |
--learn-update | Повторно проанализировать проект и восстановить устаревшие навыки, полученные в ходе LLM, в неинтерактивном режиме |
--skill-install [name] | Установить навык сообщества (откроется браузер, если имя не указано) |
--project | Установить навык на уровень проекта (с помощью --skill-install) |
Аутентификация и учетная запись
| Флаг | Описание |
|---|---|
--login | Войдите в свою учетную запись Autohand |
--logout | Выйдите из своей учетной записи Autohand |
--sync-settings | Включить/отключить синхронизацию настроек (по умолчанию: true для зарегистрированных пользователей) |
Настройка и информация
| Флаг | Описание |
|---|---|
--setup | Запустите мастер установки, чтобы настроить или перенастроить Autohand |
--about | Показать информацию о Autohand (версия, ссылки, информация о вкладе) |
--feedback | Отправьте отзыв команде Autohand |
--settings | Настройте параметры Autohand (аналогично /settings в интерактивном режиме) |
Рабочая область и каталоги
| Флаг | Описание |
|---|---|
--add-dir <path...> | Добавить дополнительные каталоги в область рабочей области (можно использовать несколько раз) |
Режимы работы
| Флаг | Описание |
|---|---|
--mode <mode> | Режим выполнения: интерактивный (по умолчанию), rpc или acp |
--acp | Сокращение для --mode acp (протокол агента-клиента через stdio) |
--teammate-mode <mode> | Режим отображения команды: автоматический, в процессе или tmux |
Пользовательский интерфейс и язык
| Флаг | Описание |
|---|---|
--display-language <locale> | Установить язык отображения (например, en, id, zh-cn, fr, de, ja) |
--search-engine <provider> | Установить поставщика веб-поиска (google, Brave, Duckduckgo, Parallel) |
--cc, --context-compact | Включить сжатие контекста (по умолчанию: включено) |
--no-cc, --no-context-compact | Отключить сжатие контекста |
Интеграция с Chrome
| Флаг | Описание |
|---|---|
--chrome | Включить интеграцию с браузером Chrome (аналогично /chrome) |
--no-chrome | Отключить интеграцию браузера Chrome |
Системная подсказка
| Флаг | Описание |
|---|---|
--sys-prompt <value> | Заменить всю системную подсказку (встроенная строка или путь к файлу) |
--append-sys-prompt <value> | Добавить к системному приглашению (встроенная строка или путь к файлу) |
--system-prompt <value> | Заменить всю системную подсказку (встроенная строка или путь к файлу) |
--system-prompt-file <path> | Заменить всю системную подсказку содержимым файла |
--append-system-prompt <value> | Добавить к системному приглашению (встроенная строка или путь к файлу) |
--append-system-prompt-file <path> | Добавить содержимое файла в системную подсказку |
--mcp-config <path> | Загрузить явный файл конфигурации MCP |
--agents <json|path> | Загрузить явные встроенные агенты в формате JSON или каталог явных агентов |
--plugin-dir <path> | Загрузить явный каталог плагинов/мета-инструментов |
Команды переключения эксперимента
| Команда | Описание |
|---|---|
autohand experiments list | Перечислите идентификаторы локальных и удаленных функций, источник, этап жизненного цикла и состояние |
autohand experiments status <feature> | Показать один переключатель функций, путь конфигурации или удаленные метаданные, а также состояние |
autohand experiments refresh | Загрузите флаги удаленных функций из API Autohand |
autohand experiments enable <feature> | Включить переключение функций на основе конфигурации |
autohand experiments disable <feature> | Отключить переключатель функций, поддерживаемый конфигурацией |
Флаги удаленных функций извлекаются из /v1/feature-flags/evaluate, кэшируются в ~/.autohand/feature-flags.json и обновляются после истечения срока жизни, предоставленного API. Используйте features.environment для выбора среды удаленных флагов и features.remoteOverrides для локального отказа от удаленных флагов, переопределяемых пользователем.
usage_v2 — это экспериментальный переключатель функций для информационной панели /usage и расширенной вкладки «Использование» /status. Включите его с помощью autohand experiments enable usage_v2.
token_usage_status — это экспериментальный переключатель функции (путь конфигурации features.tokenUsageStatus, по умолчанию выключен), который показывает использование токенов в режиме реального времени в строке рабочего состояния — совокупные токены вверх (↑) и вниз (↓), а также занятость контекстного окна, например ↑15.7k ↓3.2k · context: 6.0% (15.7k/262.1k). Контекстное окно разрешается для каждой модели для всех поставщиков. Включите его с помощью autohand experiments enable token_usage_status.
Слэш-команды
Autohand предоставляет богатый набор косых команд для интерактивного использования. Введите / в REPL, чтобы увидеть предложения.
Управление сеансами
| Команда | Описание |
|---|---|
/quit | Выйти из текущего сеанса |
/exit | Выйти из текущего сеанса |
/new | Начать новый разговор (с извлечением памяти) |
/clear | Четкий разговор с автоматическим извлечением памяти |
/session | Показать детали текущего сеанса |
/sessions | Список прошлых сессий |
/resume | Возобновить предыдущую сессию |
/history | Просмотр истории сеансов с нумерацией страниц |
/undo | Отменить изменения git и последний ход |
/export | Экспортировать сессию в уценку/JSON/HTML |
/share | Поделиться текущей сессией |
/status | Показать статус сеанса |
/usage | Показать модель, поставщика, контекст и ограничения на использование |
Модель и поставщик
| Команда | Описание |
|---|---|
/model | Переключить или настроить модель LLM |
/cc | Сжать контекст вручную |
Настройка проекта
| Команда | Описание |
|---|---|
/init | Создать файл AGENTS.md в текущем каталоге |
/setup | Запустите мастер установки, чтобы настроить Autohand |
/add-dir | Добавить каталоги в область рабочей области |
Агенты и команды
| Команда | Описание |
|---|---|
/agents | Список доступных субагентов |
/agents-new | Создайте нового агента с помощью мастера |
/squad | Открытие и управление автономной средой выполнения Autohand Squad |
/team | Управление командой для параллельной работы |
/tasks | Управление задачами в команде |
/message | Отправить сообщение товарищу по команде |
Навыки
| Команда | Описание |
|---|---|
/skills | Список навыков и управление ими |
/skills-new | Создать новый навык |
/learn | Изучите и установите рекомендуемые навыки |
Память и настройки
| Команда | Описание |
|---|---|
/memory | Просмотр и управление сохраненными воспоминаниями |
/settings | Настройте параметры Autohand |
/statusline | Настройка полей строки состояния композитора |
/experiments | Переключить экспериментальные переключатели функций |
/sync | Синхронизация настроек между устройствами |
/import | Импортируйте сеансы, настройки, MCP, память, навыки и перехваты из поддерживаемых агентов |
Разрешения и хуки
| Команда | Описание |
|---|---|
/permissions | Управление разрешениями для инструментов |
/hooks | Управление перехватчиками жизненного цикла |
Аутентификация
| Команда | Описание |
|---|---|
/login | Аутентификация с помощью Autohand API |
/logout | Выйти из учетной записи Autohand |
Инструменты и утилиты
| Команда | Описание |
|---|---|
/search | Поиск в Интернете |
/formatters | Список доступных форматировщиков кода |
/lint | Список доступных линтеров кода |
/completion | Создание сценариев завершения оболочки |
/plan | Создать план реализации |
/review | Выполнить проверку кода |
/pr-review | Просмотр запроса на извлечение |
Интеграция с IDE
| Команда | Описание |
|---|---|
/ide | Обнаружение и подключение к работающим IDE |
MCP (протокол контекста модели)
| Команда | Описание |
|---|---|
/mcp | Интерактивный менеджер сервера MCP |
Автоматизация
| Команда | Описание |
|---|---|
/automode | Запустить режим автономного кодирования |
/repeat | Расписание повторяющихся заданий |
/yolo | Переключить режим yolo (инструменты автоматического одобрения) |
Интеграция с Chrome
| Команда | Описание |
|---|---|
/chrome | Включить интеграцию с браузером Chrome |
Пользовательский интерфейс и дисплей
| Команда | Описание |
|---|---|
/help | Отображение доступных косых команд и подсказок |
/about | Показать информацию о Autohand |
/theme | Изменить цветовую тему |
/language | Изменить язык отображения |
/feedback | Отправьте отзыв команде Autohand |
Настройка системных подсказок
Autohand позволяет вам настроить системную подсказку, используемую AI-агентом. Это полезно для специализированных рабочих процессов, пользовательских инструкций или интеграции с другими системами.
Флаги CLI
| Флаг | Описание |
|---|---|
--sys-prompt <value> | Заменить всю системную подсказку |
--append-sys-prompt <value> | Добавить содержимое в системную подсказку по умолчанию |
Оба флага принимают либо:
- Встроенная строка: прямое текстовое содержимое.
- Путь к файлу: путь к файлу, содержащему приглашение (определяется автоматически).
Определение пути к файлу
Значение рассматривается как путь к файлу, если оно:
– Начинается с ./, ../, / или ~/.
- Начинается с буквы диска Windows (например,
C:\). - Заканчивается на
.txt,.mdили.prompt. - Содержит разделители путей без пробелов.
В противном случае оно рассматривается как встроенная строка.
--sys-prompt (Полная замена)
Если это предусмотрено, это полностью заменяет системное приглашение по умолчанию. Агент НЕ будет загружать:
- Инструкции по умолчанию Autohand
- Инструкция проекта AGENTS.md
- Память пользователя/проекта
- Активные навыки
# Inline string
autohand --sys-prompt "You are a Python expert. Be concise." --prompt "Write hello world"
# From file
autohand --sys-prompt ./custom-prompt.txt --prompt "Explain this code"
# Home directory
autohand --sys-prompt ~/.autohand/prompts/python-expert.md --prompt "Debug this function"
Пример файла пользовательского приглашения (custom-prompt.txt):
You are a specialized Python debugging assistant.
Rules:
- Focus only on Python code
- Always explain the root cause
- Suggest fixes with code examples
- Be concise and direct
--append-sys-prompt (Добавить к значению по умолчанию)
Если это предусмотрено, это добавляет содержимое к полной системной подсказке по умолчанию. Агент все равно будет загружаться:
- Инструкции по умолчанию Autohand
- Инструкция проекта AGENTS.md
- Память пользователя/проекта
- Активные навыки
Добавленный контент добавляется в самом конце.
# Inline string
autohand --append-sys-prompt "Always use TypeScript instead of JavaScript" --prompt "Create a function"
# From file
autohand --append-sys-prompt ./team-guidelines.md --prompt "Add error handling"
Пример файла добавления (team-guidelines.md):
## Team Guidelines
- Use 2-space indentation
- Prefer functional patterns
- Add JSDoc comments to public APIs
- Run tests before committing
Приоритет
Когда указаны оба флага:
--sys-promptимеет полный приоритет.--append-sys-promptигнорируется.
# --append-sys-prompt is ignored in this case
autohand --sys-prompt "Custom only" --append-sys-prompt "This is ignored"
Варианты использования
| Вариант использования | Рекомендуемый флаг |
|---|---|
| Персонализированный агент | --sys-prompt |
| Минимальные инструкции | --sys-prompt |
| Добавить правила для команды | --append-sys-prompt |
| Добавить соглашения проекта | --append-sys-prompt |
| Интеграция с внешними системами | --sys-prompt |
| Специализированная отладка | --sys-prompt |
Обработка ошибок
| Сценарий | Поведение |
|---|---|
| Пустое значение | Ошибка |
| Файл не найден | Рассматривается как встроенная строка |
| Пустой файл | Ошибка |
| Файл > 1 МБ | Ошибка |
| Разрешение отклонено | Ошибка |
| Путь к каталогу | Ошибка |
Примеры
# Python expert mode
autohand --sys-prompt "You are a Python expert. Only write Python code." \
--prompt "Create a web scraper"
# TypeScript enforcement
autohand --append-sys-prompt "Always use TypeScript, never JavaScript." \
--prompt "Create a REST API"
# CI/CD integration (non-interactive)
autohand --sys-prompt ./ci-prompt.txt \
--prompt "Fix the failing tests" \
--unrestricted \
--patch
# Custom team workflow
autohand --append-sys-prompt ~/.company/coding-standards.md \
--prompt "Refactor this module"
Поддержка нескольких каталогов
Autohand может работать с несколькими каталогами за пределами основного рабочего пространства. Это полезно, когда ваш проект имеет зависимости, общие библиотеки или связанные проекты в разных каталогах.
Флаг CLI
Используйте --add-dir для добавления дополнительных каталогов (можно использовать несколько раз):
# Add a single additional directory
autohand --add-dir /path/to/shared-lib
# Add multiple directories
autohand --add-dir /path/to/lib1 --add-dir /path/to/lib2
# With unrestricted mode (auto-approve writes to all directories)
autohand --add-dir /path/to/shared-lib --unrestricted
Интерактивная команда
Используйте /add-dir во время интерактивного сеанса:
/add-dir # Show current directories
/add-dir /path/to/dir # Add a new directory
Ограничения безопасности
Невозможно добавить следующие каталоги:
- Домашний каталог (
~или$HOME) - Корневой каталог (
/) - Системные каталоги (
/etc,/var,/usr,/bin,/sbin) - Системные каталоги Windows (
C:\Windows,C:\Program Files) - Каталоги пользователей Windows (
C:\Users\username) - WSL монтирует Windows (
/mnt/c,/mnt/c/Windows)