Skip to content

Latest commit

 

History

History
2297 lines (1917 loc) · 121 KB

File metadata and controls

2297 lines (1917 loc) · 121 KB

Autohand Справочник по конфигурации

Полный справочник по всем параметрам конфигурации в ~/.autohand/config.json (или .toml/.yaml/.yml).

Совет. Большинство приведенных ниже настроек можно изменить в интерактивном режиме с помощью команды /settings вместо редактирования файла вручную.

Локализованные ссылки:

Содержание


Расположение файла конфигурации

Autohand ищет конфигурацию в следующем порядке:

  1. Переменная среды AUTOHAND_CONFIG (пользовательский путь)
  2. ~/.autohand/config.toml
  3. ~/.autohand/config.yaml
  4. ~/.autohand/config.yml
  5. ~/.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_AUTH_URL Источник входа и синхронизации аккаунта (не зависит от AUTOHAND_API_URL) https://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-turbo claude-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,
    "idleTimeoutMs": 3600000,
    "debug": false
  }
}
Поле Тип По умолчанию Описание
maxIterations номер 100 Максимальное количество итераций инструмента по запросу пользователя до остановки
enableRequestQueue логическое true Разрешить пользователям вводить и ставить запросы в очередь во время работы агента
toolSelectionCache логическое true Кэшировать локальный выбор схемы инструмента для каждого оборота для эквивалентного ввода выбора инструмента
autoMemory логическое true Извлечение и сохранение долговременной памяти пользователя/проекта после завершённых интерактивных ходов, включая подтверждённые выводы из сбоев и отмен
idleLogoutEnabled логическое true Выход из интерактивных сеансов с проверкой подлинности по истечении времени простоя
idleTimeoutMs номер 3600000 Миллисекунды бездействия до выхода из сеанса с проверкой подлинности (60 минут)
debug логическое false Включить подробный вывод отладки (внутреннее состояние агента регистрируется в stderr)

Обнаружение параллельных сеансов

{
  "sessions": {
    "awareness": "warn"
  }
}
Поле Тип По умолчанию Описание
awareness строка "warn" passive показывает другие сеансы, warn также предупреждает о рискованных операциях Git и конфликтах файлов, а coordinate запрашивает подтверждение перед записью пути, занятого другим активным сеансом

Выбор схемы инструмента

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.

Установите idleTimeoutMs в положительное значение в миллисекундах, чтобы изменить период бездействия. Значение по умолчанию — 3600000 (60 минут); недопустимые значения заменяются значением по умолчанию.

Режим отладки

Включите режим отладки, чтобы просмотреть подробную регистрацию внутреннего состояния агента (итерации цикла реагирования, построение подсказок, сведения о сеансе). Вывод поступает в stderr, чтобы не мешать нормальному выводу.

Три способа включения режима отладки (в порядке приоритета):

  1. Флаг CLI: autohand -d или autohand --debug.
  2. Переменная среды: AUTOHAND_DEBUG=1
  3. Файл конфигурации: установите 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. Этап 1 — Анализ + Ранжирование + Аудит: сканирует структуру вашего проекта, проверяет установленные навыки на наличие избыточности/конфликтов и ранжирует навыки сообщества по релевантности (0–100).
  2. Этап 2 — Создание (условно): если ни один навык сообщества не набрал более 60 баллов, предлагается создать собственный навык, адаптированный к вашему проекту. Сгенерированные навыки включают метаданные (agentskill-source: llm-generated, agentskill-project-hash), поэтому /learn update может обнаруживать изменения в вашей кодовой базе и восстанавливать устаревшие навыки.

Автоматическое создание навыков (--auto-skill)

Флаг CLI --auto-skill генерирует навыки без потока интерактивного советника:

autohand --auto-skill

Это будет:

  1. Проанализируйте структуру вашего проекта (package.json, require.txt и т. д.).
  2. Обнаружение языков, фреймворков и шаблонов
  3. Создайте 3 соответствующих навыка с помощью LLM.
  4. Сохраните навыки в <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_URLapi.baseUrl
  • AUTOHAND_SECRETapi.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 перед загрузкой шифруются с использованием вашего токена аутентификации. Их можно расшифровать только с помощью ваших учетных данных.

Имена удаленных файлов принимаются только как относительные пути POSIX внутри включенных категорий синхронизации. Синхронизация отклоняет обход каталогов, абсолютные пути и пути в стиле Windows, повторяющиеся или пустые сегменты, а также назначения, перенаправленные символическими ссылками за пределы включенного корня.

Токен входа приложения отправляется в заголовке Authorization только на URL-адреса передачи с тем же источником, что и у настроенного API синхронизации. Предварительно подписанные URL-адреса HTTPS другого источника никогда не получают этот токен; небезопасные или некорректные URL-адреса между источниками отклоняются.

Что зашифровано:

  • Поля с именем apiKey. – Поля, заканчивающиеся на Key, Token, Secret.
  • Поле password.

Как это работает

  1. При запуске: если вы вошли в систему, служба синхронизации запускается автоматически.
  2. Каждые 5 минут: настройки сравниваются с облачным хранилищем.
  3. Облако побеждает: удаленные изменения загружаются первыми.
  4. Локальные загрузки: загружаются новые локальные изменения.
  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 При возникновении ошибки
rate-limit Когда лимит запросов завершает ход

Переменные среды

При выполнении перехватчиков доступны следующие переменные среды:

Переменная Описание
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 --browser          # Start with browser bridge enabled
autohand --no-browser       # Start with browser bridge disabled

Слэш-команды

/browser                   # Open browser integration panel
/browser 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,
    "idleTimeoutMs": 3600000,
    "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
  idleTimeoutMs: 3600000
  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
idleTimeoutMs = 3600000
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 Отключить сжатие контекста

Интеграция с браузером

Флаг Описание
--browser Включить интеграцию с браузером (аналогично /browser)
--no-browser Отключить интеграцию с браузером

Системная подсказка

Флаг Описание
--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 (инструменты автоматического одобрения)

Интеграция с браузером

Команда Описание
/browser Включить интеграцию с браузером 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

Приоритет

Когда указаны оба флага:

  1. --sys-prompt имеет полный приоритет.
  2. --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)