Pełne odniesienia do wszystkich opcji konfiguracyjnych w ~/.autohand/config.json (lub .toml/.yaml/.yml).
Wskazówka: większość poniższych ustawień można zmienić interaktywnie za pomocą polecenia
/settingszamiast ręcznej edycji pliku.
Zlokalizowane odniesienia:
- English
- 日本語
- 简体中文
- 繁體中文
- 한국어
- Deutsch
- Español
- Français
- Italiano
- Polski
- Русский
- Português (Brasil)
- Türkçe
- Čeština
- Magyar
- हिन्दी
- Bahasa Indonesia
- Lokalizacja pliku konfiguracyjnego
- Zmienne środowiskowe
- Tryb goły
- Ustawienia dostawcy
- Ustawienia obszaru roboczego
- Ustawienia interfejsu użytkownika
- Ustawienia agenta
- Ustawienia uprawnień
- Tryb poprawki
- Ustawienia sieciowe
- Ustawienia telemetrii
- Agenci zewnętrzni
- System umiejętności
- Ustawienia API
- Ustawienia uwierzytelniania
- Ustawienia umiejętności społeczności
- Ustawienia udostępniania
- Synchronizacja ustawień
- Ustawienia haków
- Ustawienia MCP
- Ustawienia rozszerzenia Chrome
- Kompletny przykład
Autohand szuka konfiguracji w następującej kolejności:
AUTOHAND_CONFIGzmienna środowiskowa (ścieżka niestandardowa)- AH_KOD_6
- AH_KOD_7
- AH_KOD_8
~/.autohand/config.json(domyślnie)
Możesz także zastąpić katalog podstawowy:
export AUTOHAND_HOME=/custom/path # Changes ~/.autohand to /custom/path| Zmienna | Opis | Przykład |
|---|---|---|
| AH_KOD_0 | Katalog bazowy dla wszystkich danych Autohand | AH_KOD_1 |
| AH_KOD_2 | Niestandardowa ścieżka pliku konfiguracyjnego | AH_KOD_3 |
| AH_KOD_4 | Punkt końcowy API (zastępuje konfigurację) | AH_KOD_5 |
AUTOHAND_AUTH_URL |
Adres źródłowy logowania i synchronizacji konta (niezależny od AUTOHAND_API_URL) |
https://autohand.ai |
| AH_KOD_6 | Tajny klucz firmy/zespołu | AH_KOD_7 |
| AH_KOD_8 | Adres URL wywołania zwrotnego pozwolenia (eksperymentalny) | AH_KOD_9 |
| AH_KOD_10 | Limit czasu dla wywołania zwrotnego pozwolenia w ms | AH_KOD_11 |
| AH_KOD_12 | Uruchom w trybie nieinteraktywnym | AH_KOD_13 |
| AH_KOD_14 | Automatyczne potwierdzanie wszystkich monitów | AH_KOD_15 |
| AH_KOD_16 | Wyłącz baner startowy | AH_KOD_17 |
| AH_KOD_18 | Przesyłaj strumieniowo dane wyjściowe narzędzia w czasie rzeczywistym | AH_KOD_19 |
| AH_KOD_20 | Włącz rejestrowanie debugowania | AH_KOD_21 |
| AH_KOD_22 | Ustaw poziom głębi rozumowania | AH_KOD_23 |
| AH_KOD_24 | Identyfikator klienta/edytora (ustawiony przez rozszerzenia ACP) | AH_KOD_25 |
| AH_KOD_26 | Wersja klienta (ustawiana przez rozszerzenia ACP) | AH_KOD_27 |
| AH_KOD_28 | Flaga wykrycia środowiska (ustawiana automatycznie) | AH_KOD_29 |
| AH_KOD_30 | Włącz tryb pusty bez przekazywania --bare |
AH_KOD_32 |
Zmienna środowiskowa AUTOHAND_THINKING_LEVEL kontroluje głębokość rozumowania wykorzystywanego przez model:
| Wartość | Opis |
|---|---|
| AH_KOD_34 | Bezpośrednie odpowiedzi bez widocznego uzasadnienia |
| AH_KOD_35 | Standardowa głębokość rozumowania (domyślna) |
| AH_KOD_36 | Głębokie rozumowanie w przypadku złożonych zadań pokazuje bardziej szczegółowy proces myślowy |
Jest to zwykle ustawiane przez rozszerzenia klienta ACP (takie jak Zed) za pomocą menu rozwijanego konfiguracji.
# Example: Use extended thinking for complex tasks
AUTOHAND_THINKING_LEVEL=extended autohand --prompt "refactor this module"Tryb Bare uruchamia się Autohand tylko z jawnie żądaną integracją kontekstu i środowiska wykonawczego. Włącz to za pomocą:
autohand --bare
AUTOHAND_CODE_SIMPLE=1 autohandPo przekazaniu --bare Autohand ustawia również AUTOHAND_CODE_SIMPLE=1 dla działającego procesu.
Tryb nagi wyłącza automatyczne uruchamianie i interaktywne integracje:
- haki i powiadomienia o hakach
- Uruchomienie LSP
- synchronizacja wtyczek, automatyczne ładowanie wtyczek i automatyczne ładowanie metanarzędzi
- atrybucja, telemetria, synchronizacja sesji, automatyczne raportowanie i pingi w tle
- kontekst automatycznego ładowania pamięci/sesji
- sugestie podpowiedzi w tle, sprawdzanie aktualizacji, pobieranie flag funkcji i wstępne pobieranie metadanych modelu
- rezerwowe uwierzytelnianie OAuth w pęku kluczy i przeglądarce
- automatyczne wykrywanie
AGENTS.mdi instrukcji dostawcy - wszystkie polecenia ukośnikowe, łącznie z pustym
/wpisanym w wierszu zachęty
Bezwzględne ścieżki plików w kształcie ukośnika, takie jak /Users/alex/project/file.ts, są nadal traktowane jako zwykły tekst zachęty. Dane wejściowe w postaci ukośnika w kształcie polecenia, takie jak /help, /model lub /mcp, wypisują Slash commands are disabled in bare mode. i nie są wykonywane.
Uwierzytelnianie w trybie czystym jest wyłącznie jawne. Autohand czyta najpierw AUTOHAND_API_KEY, a następnie auth.apiKeyHelper, jeśli jest skonfigurowany. Nie odczytuje danych uwierzytelniających pęku kluczy ani nie rozpoczyna logowania OAuth/przeglądarki. Dostawcy zewnętrzni w dalszym ciągu korzystają ze swoich kluczy API i konfiguracji specyficznych dla dostawcy.
Te jawne dane wejściowe pozostają dostępne w trybie prostym:
| Wejście | Opis |
|---|---|
| AH_KOD_11 | Zastąp monit systemowy tekstem wbudowanym lub wartością przypominającą ścieżkę |
| AH_KOD_12 | Zastąp monit systemowy zawartością pliku |
| AH_KOD_13 | Dołącz tekst osadzony lub wartość przypominającą ścieżkę do znaku zachęty |
| AH_KOD_14 | Dołącz zawartość pliku do zachęty systemowej |
| AH_KOD_15 | Dodaj jawne katalogi do zakresu obszaru roboczego |
| AH_KOD_16 | Załaduj jawny plik konfiguracyjny MCP |
| AH_KOD_17 | Otwórz ustawienia bezpośrednio z flagi CLI |
| AH_KOD_18 | Użyj jawnego pliku konfiguracyjnego Autohand |
| AH_KOD_19 | Załaduj jawnych agentów wbudowanych JSON lub katalog jawnych agentów |
| AH_KOD_20 | Załaduj jawny katalog wtyczek/meta-narzędzi |
Aktywny dostawca LLM do użycia.
| Wartość | Opis |
|---|---|
| AH_KOD_22 | Interfejs API OpenRouter (domyślny) |
| AH_KOD_23 | Lokalna instancja Ollama |
| AH_KOD_24 | Lokalny serwer lama.cpp |
| AH_KOD_25 | Bezpośrednio API OpenAI |
| AH_KOD_26 | MLX na Apple Silicon (lokalnie) |
| AH_KOD_27 | Ujednolicony interfejs API bramy LLM |
| AH_KOD_28 | API DeepSeek |
| AH_KOD_29 | Z.ai GLM API |
| AH_KOD_30 | Sakana.AI Fugu API |
| AH_KOD_31 | Podstawa AWS |
| AH_KOD_32 | Zdefiniowany przez użytkownika dostawca zgodny z OpenAI z customProviders |
Konfiguracja dostawcy OpenRouter.
{
"openrouter": {
"apiKey": "sk-or-v1-xxx",
"baseUrl": "https://openrouter.ai/api/v1",
"model": "your-modelcard-id-here",
"contextWindow": 262144
}
}| Pole | Wpisz | Wymagane | Domyślne | Opis |
|---|---|---|---|---|
| AH_KOD_0 | ciąg | Tak | - | Twój klucz API OpenRouter |
| AH_KOD_1 | ciąg | Nie | AH_KOD_2 | Punkt końcowy API |
| AH_KOD_3 | ciąg | Tak | - | Identyfikator modelu (np. your-modelcard-id-here) |
| AH_KOD_5 | numer | Nie | Automat | Dokładne okno kontekstowe modelu. Autohand wypełnia to z OpenRouter, jeśli jest znane. |
Konfiguracja dostawcy Z.ai.
{
"zai": {
"apiKey": "your-zai-api-key",
"baseUrl": "https://api.z.ai/api/paas/v4",
"model": "glm-5.2",
"contextWindow": 1000000
}
}| Pole | Wpisz | Wymagane | Domyślne | Opis |
|---|---|---|---|---|
| AH_KOD_0 | ciąg | Tak | - | Twój klucz API Z.ai |
| AH_KOD_1 | ciąg | Nie | AH_KOD_2 | Punkt końcowy API |
| AH_KOD_3 | ciąg | Tak | AH_KOD_4 | Identyfikator modelu, na przykład glm-5.2, glm-5.1 lub glm-4.5 |
| AH_KOD_8 | numer | Nie | Automat | Dokładne okno kontekstowe modelu. Autohand zakłada 1M dla GLM-5.2 i 200K dla GLM-5.1. |
Konfiguracja dostawcy Sakana.AI. Interfejs API jest kompatybilny z OpenAI i używa https://api.sakana.ai/v1 jako podstawowego adresu URL.
{
"sakana": {
"apiKey": "your-sakana-api-key",
"baseUrl": "https://api.sakana.ai/v1",
"model": "fugu",
"contextWindow": 1000000
}
}| Pole | Wpisz | Wymagane | Domyślne | Opis |
|---|---|---|---|---|
| AH_KOD_0 | ciąg | Tak | - | Twój klucz API Sakana |
| AH_KOD_1 | ciąg | Nie | AH_KOD_2 | Punkt końcowy API |
| AH_KOD_3 | ciąg | Tak | AH_KOD_4 | Identyfikator modelu, na przykład fugu lub fugu-ultra |
| AH_KOD_7 | numer | Nie | Automat | Dokładne okno kontekstowe modelu. Autohand zakłada 1M dla modeli Fugu. |
Dostawcy niestandardowi umożliwiają użytkownikom korzystanie z punktu końcowego zgodnego z OpenAI bez zmiany kodu lub nowego dostawcy pakietu. Dodaj dostawcę w obszarze customProviders, a następnie wybierz go za pomocą provider: "custom:<id>". Ten sam przepływ jest dostępny od /model z Nowym dostawcą.... Podczas konfiguracji Autohand weryfikuje podstawowy adres URL, uwierzytelnianie i wybrany model za pośrednictwem punktu końcowego /models zgodnego z OpenAI przed zapisaniem dostawcy.
{
"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"
}
]
}
}
}W przypadku lokalnych serwerów zgodnych z OpenAI, które nie wymagają uwierzytelniania, ustaw apiKeyRequired na false i pomiń apiKey.
| Pole | Wpisz | Wymagane | Domyślne | Opis |
|---|---|---|---|---|
| AH_KOD_3 | ciąg | Tak | - | Stabilny identyfikator dostawcy. Musi pasować do klucza obiektu i jest wybrany jako custom:<id>. |
| AH_KOD_5 | ciąg | Tak | - | Nazwa wyświetlana w /model i ustawieniach dostawcy. |
| AH_KOD_7 | ciąg | Tak | - | Musi być openai-compatible. |
| AH_KOD_9 | ciąg | Tak | - | Główny punkt końcowy, taki jak https://api.example.com/v1. Autohand weryfikuje /models i wywołuje /chat/completions. |
| AH_KOD_13 | ciąg | Warunkowe | - | Token nośnika dla hostowanych punktów końcowych. Wymagane, gdy apiKeyRequired ma wartość true. |
| AH_KOD_15 | wartość logiczna | Nie | AH_KOD_16 | Ustaw wartość false dla bram lokalnych lub już uwierzytelnionych. |
| AH_KOD_17 | ciąg | Tak | - | Aktywny identyfikator modelu. |
| AH_KOD_18 | numer | Nie | Automat | Dokładne okno kontekstowe do budżetowania tokenów, stanu, telemetrii i synchronizowania metadanych. |
| AH_KOD_19 | ciąg | Nie | - | Opcjonalnie none, low, medium, high lub xhigh. Wysyłane jako reasoning_effort w przypadku niestandardowych żądań zgodnych z OpenAI. |
| AH_KOD_26 | tablica | Nie | - | Opcjonalne wpisy selektora modelu z kontekstem dla każdego modelu i metadanymi rozumowania. |
Konfiguracja dostawcy Ollama.
{
"ollama": {
"baseUrl": "http://localhost:11434",
"port": 11434,
"model": "llama3.2"
}
}| Pole | Wpisz | Wymagane | Domyślne | Opis |
|---|---|---|---|---|
| AH_KOD_0 | ciąg | Nie | AH_KOD_1 | Adres URL serwera Ollama |
| AH_KOD_2 | numer | Nie | AH_KOD_3 | Port serwera (alternatywa dla baseUrl) |
| AH_KOD_4 | ciąg | Tak | - | Nazwa modelu (np. llama3.2, codellama) |
Konfiguracja serwera llama.cpp.
{
"llamacpp": {
"baseUrl": "http://localhost:8080",
"port": 8080,
"model": "default"
}
}| Pole | Wpisz | Wymagane | Domyślne | Opis |
|---|---|---|---|---|
| AH_KOD_0 | ciąg | Nie | AH_KOD_1 | Adres URL serwera llama.cpp |
| AH_KOD_2 | numer | Nie | AH_KOD_3 | Port serwera |
| AH_KOD_4 | ciąg | Tak | - | Identyfikator modelu |
Konfiguracja API OpenAI.
{
"openai": {
"authMode": "api-key",
"apiKey": "sk-xxx",
"baseUrl": "https://api.openai.com/v1",
"model": "gpt-5.4"
}
}OpenAI może także korzystać z Twojej subskrypcji ChatGPT poprzez wbudowany proces logowania OpenAI Autohand:
{
"openai": {
"authMode": "chatgpt",
"baseUrl": "https://api.openai.com/v1",
"contextWindow": 1050000,
"model": "gpt-5.4",
"chatgptAuth": {
"accessToken": "...",
"refreshToken": "...",
"accountId": "..."
}
}
}| Pole | Wpisz | Wymagane | Domyślne | Opis |
|---|---|---|---|---|
| AH_KOD_0 | ciąg | Nie | AH_KOD_1 | Tryb uwierzytelniania: api-key lub chatgpt |
| AH_KOD_4 | ciąg | Tak dla trybu api-key |
- | Klucz API OpenAI |
| AH_KOD_6 | ciąg | Nie | AH_KOD_7 | Punkt końcowy API |
| AH_KOD_8 | ciąg | Tak | - | Nazwa modelu (np. gpt-5.4, gpt-5.4-mini) |
| AH_KOD_11 | numer | Nie | Automat | Dokładne okno kontekstowe modelu. Ustaw tę opcję, aby zastąpić nieaktualne założenia lokalne. |
| AH_KOD_12 | obiekt | Tak dla trybu chatgpt |
- | Przechowywane tokeny autoryzacji ChatGPT/Codex i identyfikator konta |
Dostawca MLX dla komputerów Mac Apple Silicon (wnioskowanie lokalne).
{
"mlx": {
"baseUrl": "http://localhost:8080",
"port": 8080,
"model": "mlx-community/Llama-3.2-3B-Instruct-4bit"
}
}| Pole | Wpisz | Wymagane | Domyślne | Opis |
|---|---|---|---|---|
| AH_KOD_0 | ciąg | Nie | AH_KOD_1 | Adres URL serwera MLX |
| AH_KOD_2 | numer | Nie | AH_KOD_3 | Port serwera |
| AH_KOD_4 | ciąg | Tak | - | Identyfikator modelu MLX |
Ujednolicona konfiguracja API LLM Gateway. Zapewnia dostęp do wielu dostawców LLM za pośrednictwem jednego interfejsu API.
{
"llmgateway": {
"apiKey": "your-llmgateway-api-key",
"baseUrl": "https://api.llmgateway.io/v1",
"model": "gpt-4o"
}
}| Pole | Wpisz | Wymagane | Domyślne | Opis |
|---|---|---|---|---|
| AH_KOD_0 | ciąg | Tak | - | Klucz API bramy LLM |
| AH_KOD_1 | ciąg | Nie | AH_KOD_2 | Punkt końcowy API |
| AH_KOD_3 | ciąg | Tak | - | Nazwa modelu (np. gpt-4o, claude-3-5-sonnet-20241022) |
Uzyskiwanie klucza API: Odwiedź llmgateway.io/dashboard, aby utworzyć konto i uzyskać klucz API.
Obsługiwane modele: LLM Gateway obsługuje modele od wielu dostawców, w tym:
- OpenAI:
gpt-4o,gpt-4o-mini,gpt-4-turboAH_KOD_9 - Google:
gemini-1.5-pro,gemini-1.5-flash
Konfiguracja dostawcy DeepSeek. Interfejs API jest kompatybilny z OpenAI i używa https://api.deepseek.com jako podstawowego adresu URL.
{
"deepseek": {
"apiKey": "your-deepseek-api-key",
"baseUrl": "https://api.deepseek.com",
"model": "deepseek-v4-flash"
}
}| Pole | Wpisz | Wymagane | Domyślne | Opis |
|---|---|---|---|---|
| AH_KOD_0 | ciąg | Tak | - | Klucz API DeepSeek |
| AH_KOD_1 | ciąg | Nie | AH_KOD_2 | Punkt końcowy API |
| AH_KOD_3 | ciąg | Tak | - | Nazwa modelu, na przykład deepseek-v4-flash lub deepseek-v4-pro |
Konfiguracja dostawcy AWS Bedrock. converse jest trybem domyślnym i korzysta z łańcucha danych uwierzytelniających AWS SDK. Tryby kompatybilne z OpenAI wykorzystują klucze Bedrock API i punkty końcowe kompatybilne z 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:0provider = "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"| Pole | Wpisz | Wymagane | Domyślne | Opis |
|---|---|---|---|---|
| AH_KOD_0 | ciąg | Tak | - | Identyfikator modelu skały macierzystej, identyfikator profilu wnioskowania lub ARN |
| AH_KOD_1 | ciąg | Tak | AWS_REGION, następnie AWS_DEFAULT_REGION, następnie us-east-1 w konfiguracji |
Region AWS |
| AH_KOD_5 | ciąg | Nie | AH_KOD_6 | converse, openai-chat lub openai-responses |
| AH_KOD_10 | ciąg | Nie | aws-credentials dla converse, bedrock-api-key dla trybów kompatybilnych z OpenAI |
Tryb uwierzytelniania |
| AH_KOD_14 | ciąg | Nie | - | Opcjonalny profil AWS do uwierzytelniania za pomocą łańcucha danych |
| AH_KOD_15 | ciąg | Nie | Pochodzi z trybu i regionu | Niestandardowy/prywatny punkt końcowy Bedrock |
| AH_KOD_16 | ciąg | Tak dla trybów zgodnych z OpenAI | - | Klucz API Bedrock. Nie używaj kluczy OpenAI API. |
Uruchom aws configure sso lub ustaw AWS_PROFILE=enterprise-prod autohand dla uwierzytelniania AWS opartego na profilu. Rola IAM, kontener i poświadczenia metadanych instancji są obsługiwane przez pakiet AWS SDK. Włącz dostęp do modelu w konsoli AWS przed użyciem modelu.
{
"workspace": {
"defaultRoot": "/path/to/projects",
"allowDangerousOps": false
}
}| Pole | Wpisz | Domyślne | Opis |
|---|---|---|---|
| AH_KOD_0 | ciąg | Aktualny katalog | Domyślny obszar roboczy, gdy nie określono żadnego |
| AH_KOD_1 | wartość logiczna | AH_KOD_2 | Zezwalaj na destrukcyjne operacje bez potwierdzenia |
Autohand automatycznie blokuje działanie w niebezpiecznych katalogach, aby zapobiec przypadkowym uszkodzeniom:
- Podstawy systemu plików (
/,C:\,D:\itd.) - Katalogi domowe (
~,/Users/<user>,/home/<user>,C:\Users\<user>) - Katalogi systemowe (
/etc,/var,/System,C:\Windowsitd.) - WSL Mocowania Windows (
/mnt/c,/mnt/c/Users/<user>)
Tej kontroli nie da się ominąć. Jeśli spróbujesz uruchomić autohand w niebezpiecznym katalogu, zobaczysz błąd i będziesz musiał określić bezpieczny katalog projektu.
# This will be blocked
cd ~ && autohand
# Error: Unsafe Workspace Directory
# This works
cd ~/projects/my-app && autohandAby uzyskać szczegółowe informacje, zobacz Bezpieczeństwo miejsca pracy.
{
"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
}
}| Pole | Wpisz | Domyślne | Opis |
|---|---|---|---|
| AH_KOD_0 | ciąg | AH_KOD_1 | Motyw kolorystyczny dla wyjścia terminala. Wbudowane funkcje obejmują dark, light, dracula, sandy, tui, github-dark, cappadocia, rio i australia. Starsze wartości turkey i brazil nadal są ładowane jako aliasy. |
| AH_KOD_13 | obiekt | AH_KOD_14 | Wbudowane niestandardowe definicje motywów oznaczone nazwą motywu. Ustaw theme na ten sam klucz, aby go użyć. |
| AH_KOD_16 | wartość logiczna | AH_KOD_17 | Pomiń monity o potwierdzenie bezpiecznych operacji |
| AH_KOD_18 | numer | AH_KOD_19 | Maksymalna liczba znaków do wyświetlenia z wyników narzędzia odczytu/wyszukiwania (pełna treść jest nadal wysyłana do modelu) |
| AH_KOD_20 | wartość logiczna | AH_KOD_21 | Ukryj bloki wyjściowe narzędzia w terminalu, zachowując jednocześnie wyniki narzędzia dla modelu/sesji |
| AH_KOD_22 | ciąg lub ciąg [] | wbudowany basen | Niestandardowy czasownik działania lub pula czasowników dla wskaźnika roboczego, renderowana jako Verb... |
| AH_KOD_24 | wartość logiczna | AH_KOD_25 | Wyświetlaj rotacyjne czasowniki czynności, takie jak Compiling..., gdy agent pracuje |
| AH_KOD_27 | ciąg | AH_KOD_28 | Symbol pokazany przed czasownikiem aktywności na wyjściu wskaźnika aktywności |
| AH_KOD_29 | wartość logiczna | AH_KOD_30 | Pokaż aktywnego dostawcę i model w linii statusu kompozytora |
| AH_KOD_31 | wartość logiczna | AH_KOD_32 | Pokaż procent kontekstu w linii statusu kompozytora |
| AH_KOD_33 | wartość logiczna | AH_KOD_34 | Pokaż polecenia, wzmianki, umiejętności i wskazówki dotyczące wejścia do terminala w linii statusu kompozytora |
| AH_KOD_35 | wartość logiczna | AH_KOD_36 | Pokaż powiązany numer żądania ściągnięcia lub PR #123, jeśli nie powiązano żadnego PR |
| AH_KOD_38 | wartość logiczna | AH_KOD_39 | Pokaż linie dodane i usunięte podczas bieżącej sesji |
| AH_KOD_40 | wartość logiczna | AH_KOD_41 | Pokaż liczbę żądań oczekujących w kolejce w wierszu stanu |
| AH_KOD_42 | wartość logiczna | AH_KOD_43 | Pokaż tekst statusu aktywnej tury, gdy agent pracuje |
| AH_KOD_44 | wartość logiczna | AH_KOD_45 | Pokaż czas, który upłynął i metryki tokenów, gdy agent pracował |
| AH_KOD_46 | wartość logiczna | AH_KOD_47 | Pokaż wskazówkę dotyczącą anulowania Esc, gdy agent pracuje |
| AH_KOD_48 | wartość logiczna | AH_KOD_49 | Poproś modela o dołączenie zwięzłego raportu o ukończeniu po ukończonych turach akcji |
| AH_KOD_50 | wartość logiczna | AH_KOD_51 | Pokaż powiadomienie systemowe po zakończeniu zadania |
| AH_KOD_52 | wartość logiczna | AH_KOD_53 | Wyświetl rozumowanie/proces myślowy LLM |
| AH_KOD_54 | wartość logiczna | AH_KOD_55 | Zadzwoń dzwonkiem terminala po zakończeniu zadania (pokazuje plakietkę na karcie terminala/doku) |
| AH_KOD_56 | wartość logiczna | AH_KOD_57 | Sprawdź aktualizacje CLI podczas uruchamiania |
| AH_KOD_58 | numer | AH_KOD_59 | Godziny pomiędzy sprawdzaniem aktualizacji (wykorzystuje wyniki z pamięci podręcznej w określonym przedziale czasu) |
Motywy niestandardowe mogą zastąpić dowolny semantyczny token koloru. Brakujące tokeny są dziedziczone z ciemnego motywu:
{
"ui": {
"theme": "company",
"customThemes": {
"company": {
"vars": {
"brand": "#7c3aed",
"brandSoft": "#a78bfa"
},
"colors": {
"accent": "brand",
"borderAccent": "brandSoft",
"mdHeading": "brand"
}
}
}
}
}Uwaga: readFileCharLimit i silentToolOutput wpływają tylko na wyświetlanie terminala. Pełna treść jest nadal wysyłana do modelu i przechowywana w komunikatach narzędzi.
Możesz przełączać ciche wyjście narzędzia bez edytowania pliku:
autohand config set silent_tool_output true
autohand config set silent_tool_output falseMożesz przełączać czasowniki czynności rotacyjnych bez edytowania pliku:
autohand config set verbs activity true
autohand config set verbs activity falseDostosuj czasowniki w pliku konfiguracyjnym, jeśli chcesz mieć stałą etykietę statusu lub małą rotację specyficzną dla projektu:
{
"ui": {
"activityVerbs": "Compiling"
}
}{
"ui": {
"activityVerbs": ["Indexing", "Reviewing", "Testing"],
"activitySymbol": ">"
}
}activityVerbs akceptuje pojedynczy ciąg znaków lub niepustą tablicę ciągów. Kiedy activityVerbsEnabled ma wartość false, Autohand powraca do Working... zamiast zmieniać czasowniki niestandardowe lub wbudowane.
Możesz przełączać raporty ukończenia, w tym ustrukturyzowany monit SITREP, bez edytowania pliku:
autohand config set sitrep true
autohand config set sitrep falseGdy terminalBell jest włączone (domyślnie), Autohand dzwoni dzwonkiem terminala (\x07) po zakończeniu zadania. To wyzwala:
- Znak na karcie terminala - Pokazuje wizualny wskaźnik zakończenia pracy
- Odbicie ikony Docka - Przyciąga Twoją uwagę, gdy terminal jest w tle (macOS)
- Dźwięk - Jeśli w ustawieniach terminala włączone są dźwięki terminala
Ustawienia specyficzne dla terminala:
- Terminal macOS: Preferencje > Profile > Zaawansowane > Dzwonek (wizualny/dźwiękowy)
- iTerm2: Preferencje > Profile > Terminal > Powiadomienia
- Terminal VS Code: Ustawienia > Terminal > Zintegrowany: Włącz dzwonek
Aby wyłączyć:
{
"ui": {
"terminalBell": false
}
}Autohand domyślnie używa modułu renderującego Ink 7 + React 19 dla terminali interaktywnych. Starsze pole konfiguracyjne ui.useInkRenderer jest ignorowane, więc stare pliki konfiguracyjne nie mogą wymusić zwykłego kompozytora terminala. Atrament zapewnia:
- Wyjście wolne od migotania: Wszystkie aktualizacje interfejsu użytkownika są grupowane w ramach uzgadniania React
- Funkcja kolejki roboczej: Wpisz instrukcje, gdy agent pracuje
- Lepsza obsługa danych wejściowych: Brak konfliktów pomiędzy procedurami obsługi readline
- Komponowany interfejs użytkownika: Podstawa przyszłych zaawansowanych funkcji interfejsu użytkownika
Awaryjne przywracanie zgodności terminala:
AUTOHAND_LEGACY_UI=1 autohandUwaga: ta funkcja jest eksperymentalna i może mieć przypadki Edge. Domyślny interfejs użytkownika oparty na ora pozostaje stabilny i w pełni funkcjonalny.
Gdy checkForUpdates jest włączone (domyślnie), Autohand sprawdza dostępność nowych wersji podczas uruchamiania:
> Autohand v0.6.8 (abc1234) ✓ Up to date
Jeśli dostępna jest aktualizacja:
> Autohand v0.6.7 (abc1234) ⬆ Update available: v0.6.8
↳ Run: curl -fsSL https://autohand.ai/install.sh | sh
Jak to działa:
— Pobiera najnowszą wersję z interfejsu API GitHub
- Wyniki pamięci podręcznej to
~/.autohand/version-check.json - Sprawdza tylko raz na
updateCheckIntervalgodzin (domyślnie: 24) - Brak blokowania: uruchamianie jest kontynuowane nawet w przypadku niepowodzenia kontroli
Aby wyłączyć:
{
"ui": {
"checkForUpdates": false
}
}Lub poprzez zmienną środowiskową:
export AUTOHAND_SKIP_UPDATE_CHECK=1Kontroluj zachowanie agenta i limity iteracji.
{
"agent": {
"maxIterations": 100,
"enableRequestQueue": true,
"toolSelectionCache": true,
"autoMemory": true,
"idleLogoutEnabled": true,
"idleTimeoutMs": 3600000,
"debug": false
}
}| Pole | Wpisz | Domyślne | Opis |
|---|---|---|---|
| AH_KOD_0 | numer | AH_KOD_1 | Maksymalna liczba iteracji narzędzia na żądanie użytkownika przed zatrzymaniem |
| AH_KOD_2 | wartość logiczna | AH_KOD_3 | Zezwalaj użytkownikom na wpisywanie i kolejkowanie żądań podczas pracy agenta |
| AH_KOD_4 | wartość logiczna | AH_KOD_5 | Buforuj lokalny wybór schematu narzędzia na obrót dla równoważnych danych wejściowych dotyczących wyboru narzędzia |
| AH_KOD_6 | wartość logiczna | AH_KOD_7 | Wyodrębniaj i zapisuj trwałe wspomnienia użytkowników/projektów po udanych interaktywnych turach |
idleLogoutEnabled |
wartość logiczna | true |
Wyloguj uwierzytelnione sesje interaktywne po upływie limitu czasu bezczynności |
idleTimeoutMs |
numer | 3600000 |
Milisekundy bezczynności przed wylogowaniem uwierzytelnionej sesji (60 minut) |
| AH_KOD_10 | wartość logiczna | AH_KOD_11 | Włącz szczegółowe dane wyjściowe debugowania (loguje stan wewnętrzny agenta na stderr) |
{
"sessions": {
"awareness": "warn"
}
}| Pole | Typ | Domyślnie | Opis |
|---|---|---|---|
awareness |
ciąg | "warn" |
passive pokazuje inne sesje, warn dodatkowo ostrzega o ryzykownych operacjach Git i kolizjach plików, a coordinate prosi o potwierdzenie przed zapisem ścieżki zajętej przez inną aktywną sesję |
Autohand nie wysyła każdego pełnego schematu narzędzia na każde żądanie LLM. Podpowiedź systemowa zawiera kompaktowy katalog możliwości narzędzi, a każde żądanie udostępnia tylko niewielki zestaw konkretnych schematów wybranych spośród:
- Podstawowe narzędzia do wykrywania, takie jak
tool_search,read_file,fff_findifff_grep - Dopasowane narzędzia do edycji, weryfikacji, git, przeglądarki, sieci, zależności lub śledzenia projektów
- Narzędzia wymagane w ramach ostatnich wywołań
tool_searchlub wyraźnie wymienione z nazwy
Pozwala to uniknąć dużych początkowych kosztów związanych z wysyłaniem wszystkich schematów narzędzi, zanim znane będą intencje użytkownika. toolSelectionCache kontroluje tylko lokalną pamięć podręczną selektora dla równoważnych obrotów; nie wykonuje rozgrzewki LLM przed użytkownikiem i nie wymusza dużego prefiksu monitu w pamięci podręcznej.
Aby wyłączyć lokalną pamięć podręczną selektora:
{
"agent": {
"toolSelectionCache": false
}
}Aby utrzymać uwierzytelnione, długotrwałe sesje agentów podczas oczekiwania na pracę:
{
"agent": {
"idleLogoutEnabled": false
}
}Dla pojedynczego procesu użyj autohand --no-idle-logout lub ustaw AUTOHAND_NO_IDLE_LOGOUT=1.
Ustaw idleTimeoutMs na dodatni czas w milisekundach, aby zmienić okres bezczynności. Wartość domyślna to 3600000 (60 minut); nieprawidłowe wartości używają wartości domyślnej.
Włącz tryb debugowania, aby wyświetlić szczegółowe rejestrowanie wewnętrznego stanu agenta (iteracje pętli reakcji, budowanie podpowiedzi, szczegóły sesji). Dane wyjściowe trafiają na stderr, aby uniknąć zakłócania normalnego wyjścia.
Trzy sposoby włączania trybu debugowania (w kolejności ważności):
- Flaga CLI:
autohand -dlubautohand --debug - Zmienna środowiskowa:
AUTOHAND_DEBUG=1 - Plik konfiguracyjny: Ustaw
agent.debug: true
Po włączeniu enableRequestQueue możesz kontynuować wpisywanie wiadomości, podczas gdy agent przetwarza poprzednie żądanie. Twoje dane wejściowe zostaną umieszczone w kolejce i przetworzone automatycznie po zakończeniu bieżącego zadania.
- Wpisz wiadomość i naciśnij klawisz Enter, aby dodać ją do kolejki
- Linia stanu pokazuje, ile żądań znajduje się w kolejce
- Żądania przetwarzane są w kolejności FIFO (pierwsze weszło, pierwsze wyszło).
- Maksymalny rozmiar kolejki to 10 żądań
Szczegółowa kontrola nad uprawnieniami narzędzi.
{
"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
}
}| Wartość | Opis |
|---|---|
| AH_KOD_1 | Monituj o zatwierdzenie niebezpiecznych operacji (domyślnie) |
| AH_KOD_2 | Brak podpowiedzi, zezwól na wszystko |
| AH_KOD_3 | Odmów wszystkim niebezpiecznym operacjom |
Szereg wzorów narzędzi, które nigdy nie wymagają zatwierdzenia.
["run_command:npm *", "run_command:bun test"]Tablica wzorów narzędzi, które są zawsze zablokowane.
["run_command:rm -rf /", "run_command:sudo *"]Szczegółowe zasady uprawnień.
| Pole | Wpisz | Opis | | --------- | --------- | ------------------------------------------- | ---------- | -------------- | | AH_KOD_1 | ciąg | Nazwa narzędzia pasująca | | AH_KOD_2 | ciąg | Opcjonalny wzorzec dopasowywania do argumentów | | AH_KOD_3 | AH_KOD_4 | AH_KOD_5 | AH_KOD_6 | Działania, które należy podjąć |
| Wpisz | Domyślne | Opis |
|---|---|---|
| wartość logiczna | AH_KOD_8 | Zapamiętaj decyzje zatwierdzające sesję |
Każdy projekt może mieć własne ustawienia uprawnień, które zastępują konfigurację globalną. Są one przechowywane w .autohand/settings.local.json w katalogu głównym projektu.
Kiedy zatwierdzisz operację na pliku (edycję, zapis, usunięcie), zostanie ona automatycznie zapisana w tym pliku, więc nie będziesz ponownie pytany o tę samą operację w tym projekcie.
{
"version": 1,
"permissions": {
"whitelist": [
"apply_patch:src/components/Button.tsx",
"write_file:package.json",
"run_command:bun test"
]
}
}Jak to działa:
- Po zatwierdzeniu operacji jest ona zapisywana w
.autohand/settings.local.json - Następnym razem ta sama operacja zostanie automatycznie zatwierdzona
- Lokalne ustawienia projektu są łączone z ustawieniami globalnymi (lokalne mają pierwszeństwo)
- Dodaj
.autohand/settings.local.jsondo.gitignore, aby zachować prywatność ustawień osobistych
Format wzoru:
tool_name:path- Do operacji na plikach (np.apply_patch:src/file.ts)tool_name:command args- Dla poleceń (np.run_command:npm test)
Możesz wyświetlić swoje bieżące ustawienia uprawnień na dwa sposoby:
Flaga CLI (nieinteraktywna):
autohand --permissionsWyświetla się:
- Aktualny tryb uprawnień (interaktywny, nieograniczony, ograniczony)
- Ścieżki plików roboczych i konfiguracyjnych
- Wszystkie zatwierdzone wzorce (biała lista)
- Wszystkie odrzucone wzorce (czarna lista)
- Statystyki podsumowujące
Interaktywne polecenie:
/permissions
W trybie interaktywnym komenda /permissions udostępnia te same informacje oraz opcje umożliwiające:
- Usuń elementy z białej listy
- Usuń elementy z czarnej listy
- Wyczyść wszystkie zapisane uprawnienia
Tryb łatek umożliwia wygenerowanie udostępnianej łatki kompatybilnej z git bez modyfikowania plików obszaru roboczego. Jest to przydatne dla:
- Przegląd kodu przed zastosowaniem zmian
- Udostępnianie zmian wygenerowanych przez sztuczną inteligencję członkom zespołu
- Tworzenie powtarzalnych zestawów zmian
- Potoki CI/CD, które muszą wychwytywać zmiany bez ich stosowania
# 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.patchGdy określono --patch:
- Automatyczne potwierdzenie: Wszystkie potwierdzenia są akceptowane automatycznie (dorozumiany
--yes) - Brak monitów: nie są wyświetlane żadne monity o zatwierdzenie (dorozumiany
--unrestricted) - Tylko podgląd: Zmiany są przechwytywane, ale NIE zapisywane na dysku
- Wymuszone bezpieczeństwo: Operacje na czarnej liście (
.env, klucze SSH, niebezpieczne polecenia) są nadal blokowane
Odbiorcy mogą zastosować łatkę za pomocą standardowych poleceń 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.patchWygenerowana łatka jest zgodna z ujednoliconym formatem różnic gita:
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);| Kod | Znaczenie |
|---|---|
| AH_KOD_0 | Sukces, wygenerowano łatkę |
| AH_KOD_1 | Błąd (brak --prompt, odmowa pozwolenia itp.) |
# 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
}
}| Pole | Wpisz | Domyślne | Maks | Opis |
|---|---|---|---|---|
| AH_KOD_0 | numer | AH_KOD_1 | AH_KOD_2 | Ponów próbę w przypadku nieudanych żądań API |
| AH_KOD_3 | numer | AH_KOD_4 | - | Limit czasu żądania w milisekundach |
| AH_KOD_5 | numer | AH_KOD_6 | - | Opóźnienie między ponownymi próbami w milisekundach |
Telemetria jest domyślnie wyłączona (opcja). Włącz ją, aby pomóc ulepszyć Autohand.
{
"telemetry": {
"enabled": false,
"apiBaseUrl": "https://api.autohand.ai",
"batchSize": 20,
"flushIntervalMs": 60000,
"maxQueueSize": 500,
"maxRetries": 3,
"enableSessionSync": true,
"companySecret": ""
}
}| Pole | Wpisz | Domyślne | Opis |
|---|---|---|---|
| AH_KOD_0 | wartość logiczna | AH_KOD_1 | Włącz/wyłącz telemetrię (opcja) |
| AH_KOD_2 | ciąg | AH_KOD_3 | Punkt końcowy interfejsu API telemetrii |
| AH_KOD_4 | numer | AH_KOD_5 | Liczba zdarzeń do partii przed automatycznym płukaniem |
| AH_KOD_6 | numer | AH_KOD_7 | Interwał spłukiwania w milisekundach (1 minuta) |
| AH_KOD_8 | numer | AH_KOD_9 | Maksymalny rozmiar kolejki przed usunięciem starych wydarzeń |
| AH_KOD_10 | numer | AH_KOD_11 | Ponów próbę w przypadku nieudanych żądań telemetrycznych |
| AH_KOD_12 | wartość logiczna | AH_KOD_13 | Synchronizuj sesje z chmurą dla funkcji zespołu, gdy włączona jest telemetria |
| AH_KOD_14 | ciąg | AH_KOD_15 | Tajemnica firmowa dotycząca uwierzytelniania API |
Dane telemetryczne dostawcy/modelu obejmują identyfikator aktywnego dostawcy, identyfikator modelu i dostępne nietajne metadane, takie jak niestandardowa nazwa wyświetlana dostawcy, format interfejsu API, wysiłek wnioskowania i okno kontekstu. Klucze API i tokeny okaziciela nigdy nie są uwzględniane.
Załaduj niestandardowe definicje agentów z katalogów zewnętrznych.
{
"externalAgents": {
"enabled": true,
"paths": ["~/.autohand/agents", "/team/shared/agents"]
}
}| Pole | Wpisz | Domyślne | Opis |
|---|---|---|---|
| AH_KOD_0 | wartość logiczna | AH_KOD_1 | Włącz ładowanie agenta zewnętrznego |
| AH_KOD_2 | ciąg[] | AH_KOD_3 | Katalogi do ładowania agentów z |
Umiejętności to pakiety instrukcji zawierające specjalistyczne instrukcje dla agenta AI. Działają jak pliki AGENTS.md na żądanie, które można aktywować do określonych zadań.
Umiejętności są odkrywane w wielu miejscach, przy czym pierwszeństwo mają późniejsze źródła:
| Lokalizacja | Identyfikator źródła | Opis |
|---|---|---|
| AH_KOD_5 | AH_KOD_6 | Umiejętności Kodeksu na poziomie użytkownika (rekurencyjne) |
| AH_KOD_7 | AH_KOD_8 | Umiejętności Claude na poziomie użytkownika (jeden poziom) |
| AH_KOD_9 | AH_KOD_10 | Umiejętności Autohand na poziomie użytkownika (rekurencyjne) |
| AH_KOD_11 | AH_KOD_12 | Umiejętności Claude na poziomie projektu (jeden poziom) |
| AH_KOD_13 | AH_KOD_14 | Umiejętności Autohand na poziomie projektu (rekurencyjne) |
Umiejętności odkryte w lokalizacjach Codex lub Claude są automatycznie kopiowane do odpowiedniej lokalizacji Autohand:
~/.codex/skills/i~/.claude/skills/→~/.autohand/skills/<project>/.claude/skills/→<project>/.autohand/skills/
Istniejące umiejętności w lokalizacjach Autohand nigdy nie są nadpisywane.
Umiejętności wykorzystują frontmaterię YAML, po której następuje treść przeceny:
---
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...| Pole | Wymagane | Maksymalna długość | Opis |
|---|---|---|---|
| AH_KOD_0 | Tak | 64 znaki | Małe litery alfanumeryczne, tylko z łącznikami |
| AH_KOD_1 | Tak | 1024 znaki | Krótki opis umiejętności |
| AH_KOD_2 | Nie | - | Identyfikator licencji (np. MIT, Apache-2.0) |
| AH_KOD_3 | Nie | 500 znaków | Uwagi dotyczące zgodności |
| AH_KOD_4 | Nie | - | Rozdzielana spacjami lista dozwolonych narzędzi |
| AH_KOD_5 | Nie | - | Dodatkowe metadane typu klucz-wartość |
Autohand obsługuje specjalne przedrostki w wierszu poleceń:
| Przedrostek | Opis | Przykład |
|---|---|---|
| AH_KOD_6 | Polecenia z ukośnikiem | /help, /model, /quit, /exit |
| AH_KOD_11 | Wzmianki o plikach (autouzupełnianie) | AH_KOD_12 |
| AH_KOD_13 | Wzmianki o umiejętnościach (autouzupełnianie) | $frontend-design, $code-review |
| AH_KOD_16 | Uruchom bezpośrednio polecenia terminala | ! git status, ! ls -la |
Wzmianki o umiejętnościach ($):
- Wpisz
$, a następnie znaki, aby wyświetlić dostępne umiejętności z funkcją autouzupełniania - Zakładka akceptuje górną sugestię (np.
$frontend-design) - Umiejętności są odkrywane z
~/.autohand/skills/i<project>/.autohand/skills/ - Aktywowane umiejętności są dołączone do podpowiedzi jako specjalne instrukcje dla bieżącej sesji
- Panel podglądu pokazuje metadane umiejętności (nazwa, opis, stan aktywacji)
Polecenia powłoki (!):
- Polecenia uruchamiane są w bieżącym katalogu roboczym
- Dane wyjściowe są wyświetlane bezpośrednio w terminalu
- Nie idzie do LLM
- 30 sekund przerwy
- Powraca do monitu po wykonaniu
| Polecenie | Opis |
|---|---|
| AH_KOD_26 | Lista wszystkich dostępnych umiejętności |
| AH_KOD_27 | Aktywuj umiejętność na bieżącą sesję |
| AH_KOD_28 | Dezaktywuj umiejętność |
| AH_KOD_29 | Pokaż szczegółowe informacje o umiejętnościach |
| AH_KOD_30 | Przeglądaj i instaluj z rejestru społeczności |
| AH_KOD_31 | Zainstaluj umiejętność społeczności według ślimaka |
| AH_KOD_32 | Przeszukaj rejestr umiejętności społeczności |
| AH_KOD_33 | Pokaż popularne umiejętności społeczności |
| AH_KOD_34 | Odinstaluj umiejętność społeczności |
| AH_KOD_35 | Utwórz nową umiejętność interaktywnie |
| AH_KOD_36 | Oceń umiejętność społeczności |
| Polecenie | Opis |
|---|---|
| AH_KOD_38 | Przeanalizuj projekt i zarekomenduj umiejętności (szybki skan) |
| AH_KOD_39 | Dogłębne skanowanie projektu (odczytuje pliki źródłowe) w celu uzyskania bardziej ukierunkowanych wyników |
| AH_KOD_40 | Ponowna analiza projektu i regeneracja przestarzałych umiejętności wygenerowanych w ramach LLM |
/learn wykorzystuje dwufazowy przepływ LLM:
- Faza 1 — Analiza + Ranga + Audyt: Skanuje strukturę projektu, sprawdza zainstalowane umiejętności pod kątem nadmiarowości/konfliktów i klasyfikuje umiejętności społeczności według trafności (0-100).
- Faza 2 – Generowanie (warunkowo): Jeśli żadna umiejętność społeczności nie osiągnie wyniku powyżej 60, zaoferuje wygenerowanie niestandardowej umiejętności dostosowanej do Twojego projektu.
Wygenerowane umiejętności obejmują metadane (
agentskill-source: llm-generated,agentskill-project-hash), dzięki czemu/learn updatemoże wykryć zmiany w kodzie i zregenerować nieaktualne umiejętności.
Flaga --auto-skill CLI generuje umiejętności bez przepływu interaktywnego doradcy:
autohand --auto-skillTo będzie:
- Przeanalizuj strukturę swojego projektu (pakiet.json, wymagania.txt itp.)
- Wykrywaj języki, struktury i wzorce
- Wygeneruj 3 odpowiednie umiejętności, korzystając z LLM
- Zapisz umiejętności w
<project>/.autohand/skills/
Aby uzyskać bardziej ukierunkowane, interaktywne wrażenia, zamiast tego użyj /learn w sesji.
Wykryte wzorce obejmują:
- Języki: TypeScript, JavaScript, Python, Rust, Go
- Frameworks: React, Next.js, Vue, Express, Flask, Django
- Wzorce: narzędzia CLI, testowanie, monorepo, Docker, CI/CD
Konfiguracja interfejsu API zaplecza dla funkcji zespołu.
{
"api": {
"baseUrl": "https://api.autohand.ai",
"companySecret": "sk-team-xxx"
}
}| Pole | Wpisz | Domyślne | Opis |
|---|---|---|---|
| AH_KOD_0 | ciąg | AH_KOD_1 | Punkt końcowy API |
| AH_KOD_2 | ciąg | - | Sekret zespołu/firmy dotyczący funkcji współdzielonych |
Można również ustawić za pomocą zmiennych środowiskowych:
AUTOHAND_API_URL→api.baseUrlAUTOHAND_SECRET→api.companySecret
Uwierzytelnianie i konfiguracja sesji użytkownika.
{
"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"
}
}| Pole | Wpisz | Domyślne | Opis |
|---|---|---|---|
| AH_KOD_0 | ciąg | - | Token uwierzytelniający dla dostępu API |
| AH_KOD_1 | obiekt | - | Uwierzytelnione informacje o użytkowniku |
| AH_KOD_2 | ciąg | - | Identyfikator użytkownika |
| AH_KOD_3 | ciąg | - | Adres e-mail użytkownika |
| AH_KOD_4 | ciąg | - | Wyświetlana nazwa użytkownika |
| AH_KOD_5 | ciąg | - | Adres URL awatara użytkownika (opcjonalnie) |
| AH_KOD_6 | ciąg | - | Znacznik czasu ważności tokena (format ISO 8601) |
Konfiguracja wykrywania i zarządzania umiejętnościami społeczności.
{
"communitySkills": {
"enabled": true,
"showSuggestionsOnStartup": true,
"autoBackup": true
}
}| Pole | Wpisz | Domyślne | Opis |
|---|---|---|---|
| AH_KOD_0 | wartość logiczna | AH_KOD_1 | Włącz funkcje umiejętności społeczności |
| AH_KOD_2 | wartość logiczna | AH_KOD_3 | Pokaż sugestie dotyczące umiejętności przy uruchomieniu, gdy nie istnieją żadne umiejętności dostawcy |
| AH_KOD_4 | wartość logiczna | AH_KOD_5 | Automatycznie twórz kopie zapasowe odkrytych umiejętności dostawców w API |
Konfiguracja udostępniania sesji za pomocą polecenia /share. Sesje są hostowane pod adresem autohand.link.
{
"share": {
"enabled": true
}
}| Pole | Wpisz | Domyślne | Opis |
|---|---|---|---|
| AH_KOD_0 | wartość logiczna | AH_KOD_1 | Włącz/wyłącz polecenie /share |
share:
enabled: trueJeśli chcesz wyłączyć udostępnianie sesji ze względów bezpieczeństwa lub prywatności:
{
"share": {
"enabled": false
}
}Gdy wyłączone, uruchomienie /share wyświetli:
Session sharing is disabled.
To enable, set share.enabled: true in your config file.
Autohand może zsynchronizować Twoją konfigurację na różnych urządzeniach dla zalogowanych użytkowników. Ustawienia są bezpiecznie przechowywane w Cloudflare R2 i szyfrowane przed przesłaniem.
{
"sync": {
"enabled": true,
"interval": 300000,
"exclude": [],
"includeTelemetry": false,
"includeFeedback": false
}
}| Pole | Wpisz | Domyślne | Opis |
|---|---|---|---|
| AH_KOD_0 | wartość logiczna | true (zalogowany) |
Włącz/wyłącz synchronizację ustawień |
| AH_KOD_2 | numer | AH_KOD_3 | Interwał synchronizacji w milisekundach (domyślnie: 5 minut) |
| AH_KOD_4 | ciąg[] | AH_KOD_5 | Wzory globalne do wykluczenia z synchronizacji |
| AH_KOD_6 | wartość logiczna | AH_KOD_7 | Synchronizuj dane telemetryczne (wymaga zgody użytkownika) |
| AH_KOD_8 | wartość logiczna | AH_KOD_9 | Synchronizuj dane zwrotne (wymaga zgody użytkownika) |
# Disable sync for this session
autohand --sync-settings=false
# Enable sync (default for logged users)
autohand --sync-settingsDomyślnie te elementy są synchronizowane dla zalogowanych użytkowników:
- Konfiguracja (
config.json) – klucze API są szyfrowane przed przesłaniem - Agenci celni (
agents/) - Umiejętności społecznościowe (
community-skills/) - Haki użytkownika (
hooks/) - Pamięć (
memory/) - Wiedza projektowa (
projects/) - Historia sesji (
sessions/) - Udostępniona treść (
share/) - Umiejętności niestandardowe (
skills/)
- Identyfikator urządzenia (
device-id) - Unikalny dla każdego urządzenia - Dzienniki błędów (
error.log) - Tylko lokalnie - Pamięć podręczna wersji (
version-*.json) - Pliki lokalnej pamięci podręcznej
Te elementy wymagają wyraźnej zgody w konfiguracji:
- Dane telemetryczne - Ustaw
sync.includeTelemetry: truena synchronizację - Dane zwrotne - Ustaw
sync.includeFeedback: truena synchronizację
{
"sync": {
"enabled": true,
"includeTelemetry": true,
"includeFeedback": true
}
}W przypadku wystąpienia konfliktów (ten sam plik zmodyfikowany na wielu urządzeniach) wersja w chmurze wygrywa. Zapewnia to spójność podczas logowania na nowych urządzeniach.
Klucze API i inne wrażliwe dane w config.json są szyfrowane przy użyciu Twojego tokena uwierzytelniającego przed przesłaniem. Można je odszyfrować jedynie za pomocą danych uwierzytelniających.
Zdalne nazwy plików są akceptowane wyłącznie jako względne ścieżki POSIX w ramach włączonych kategorii synchronizacji. Synchronizacja odrzuca przechodzenie poza katalog, ścieżki bezwzględne lub w stylu Windows, zduplikowane albo puste segmenty oraz miejsca docelowe przekierowane przez dowiązania symboliczne poza włączony katalog główny.
Token logowania aplikacji jest wysyłany w nagłówku Authorization wyłącznie do adresów URL transferu o tym samym pochodzeniu co skonfigurowane API synchronizacji. Wstępnie podpisane adresy HTTPS z innego źródła nigdy nie otrzymują tego tokenu; niezabezpieczone lub nieprawidłowe adresy między źródłami są odrzucane.
Co jest zaszyfrowane:
- Pola o nazwach
apiKey - Pola kończące się na
Key,Token,Secret - Pole
password
- Przy uruchomieniu: Jeśli jesteś zalogowany, usługa synchronizacji uruchomi się automatycznie
- Co 5 minut: Ustawienia są porównywane z danymi przechowywanymi w chmurze
- Chmura wygrywa: Najpierw pobierane są zmiany zdalne
- Przesłanie lokalne: Przesyłane są nowe zmiany lokalne
- Przy wyjściu: Usługa synchronizacji zatrzymuje się płynnie
Możesz wykluczyć określone pliki lub wzorce z synchronizacji:
{
"sync": {
"enabled": true,
"exclude": ["custom-local-config.json", "temp/*"]
}
}sync:
enabled: true
interval: 300000
exclude: []
includeTelemetry: false
includeFeedback: falseSkonfiguruj serwery MCP (Model Context Protocol), aby rozszerzyć Autohand za pomocą narzędzi zewnętrznych.
{
"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
}
]
}
}- Typ:
boolean - Domyślnie:
true - Opis: Włącz lub wyłącz całą obsługę MCP. Gdy
false, podczas uruchamiania nie są podłączone żadne serwery, a narzędzia MCP są niedostępne.
- Typ:
McpServerConfigEntry[] - Domyślnie:
[] - Opis: Tablica konfiguracji serwerów MCP.
| Pole | Wpisz | Wymagane | Domyślne | Opis |
|---|---|---|---|---|
| AH_KOD_7 | AH_KOD_8 | Tak | - | Unikalny identyfikator serwera |
| AH_KOD_9 | AH_KOD_10 | AH_KOD_11 | AH_KOD_12 | Tak | - | Rodzaj transportu |
| AH_KOD_13 | AH_KOD_14 | Tak (stdio) | - | Polecenie uruchomienia procesu serwera |
| AH_KOD_15 | AH_KOD_16 | Nie | AH_KOD_17 | Argumenty polecenia |
| AH_KOD_18 | AH_KOD_19 | Tak (sse/http) | - | Adres URL punktu końcowego serwera |
| AH_KOD_20 | AH_KOD_21 | Nie | AH_KOD_22 | Niestandardowe nagłówki HTTP dla transportu http/sse (np. tokeny uwierzytelniające) |
| AH_KOD_23 | AH_KOD_24 | Nie | AH_KOD_25 | Zmienne środowiskowe przekazane do serwera |
| AH_KOD_26 | AH_KOD_27 | Nie | AH_KOD_28 | Czy łączyć się automatycznie przy uruchomieniu |
Serwery łączą się asynchronicznie w tle podczas uruchamiania, nie blokując monitu. Użyj
/mcpdo interaktywnego zarządzania serwerami lub/mcp adddo przeglądania rejestru społeczności lub dodawania niestandardowych serwerów.
Pełna dokumentacja MCP znajduje się w docs/mcp.md.
Konfiguracja haków cyklu życia, które uruchamiają polecenia powłoki na zdarzeniach agenta. Aby uzyskać szczegółowe informacje, zobacz Dokumentację Hooks.
{
"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
}
]
}
}| Pole | Wpisz | Domyślne | Opis |
|---|---|---|---|
| AH_KOD_1 | wartość logiczna | AH_KOD_2 | Włącz/wyłącz wszystkie hooki globalnie |
| AH_KOD_3 | tablica | AH_KOD_4 | Tablica definicji haków |
| Pole | Wpisz | Wymagane | Domyślne | Opis |
|---|---|---|---|---|
| AH_KOD_5 | ciąg | Tak | - | Wydarzenie, do którego można się podłączyć |
| AH_KOD_6 | ciąg | Tak | - | Polecenie powłoki do wykonania |
| AH_KOD_7 | ciąg | Nie | - | Opis wyświetlacza /hooks |
| AH_KOD_9 | wartość logiczna | Nie | AH_KOD_10 | Czy hak jest aktywny |
| AH_KOD_11 | numer | Nie | AH_KOD_12 | Limit czasu w milisekundach |
| AH_KOD_13 | wartość logiczna | Nie | AH_KOD_14 | Uruchom bez blokowania |
| AH_KOD_15 | obiekt | Nie | - | Filtruj według narzędzia lub ścieżki |
| Wydarzenie | Kiedy zwolniony |
|---|---|
| AH_KOD_16 | Przed wykonaniem dowolnego narzędzia |
| AH_KOD_17 | Po zakończeniu działania narzędzia |
| AH_KOD_18 | Kiedy plik jest tworzony/modyfikowany/usunięty |
| AH_KOD_19 | Przed wysłaniem do LLM |
| AH_KOD_20 | Po odpowiedzi LLM |
| AH_KOD_21 | Kiedy wystąpi błąd |
Po uruchomieniu hooków dostępne są następujące zmienne środowiskowe:
| Zmienna | Opis |
|---|---|
| AH_KOD_22 | Nazwa wydarzenia |
| AH_KOD_23 | Ścieżka główna obszaru roboczego |
| AH_KOD_24 | Nazwa narzędzia (zdarzenia narzędzia) |
| AH_KOD_25 | Argumenty narzędzi zakodowane w formacie JSON |
| AH_KOD_26 | prawda/fałsz (narzędzie końcowe) |
| AH_KOD_27 | Ścieżka pliku (zmodyfikowany plik) |
| AH_KOD_28 | Wykorzystane tokeny (po odpowiedzi) |
Kontroluj integrację rozszerzenia Autohand Chrome. Zobacz pełny przewodnik na stronie Autohand w przeglądarce Chrome.
{
"chrome": {
"extensionId": "your-extension-id",
"enabledByDefault": false,
"browser": "auto",
"userDataDir": "/path/to/chrome/user-data",
"profileDirectory": "Default",
"installUrl": "https://autohand.ai/chrome"
}
}| Klucz | Wpisz | Domyślne | Opis |
|---|---|---|---|
| AH_KOD_0 | AH_KOD_1 | — | Zainstalowany identyfikator rozszerzenia Chrome do bezpośredniego przekazywania |
| AH_KOD_2 | AH_KOD_3 | AH_KOD_4 | Uruchom most przeglądarki automatycznie za pomocą interfejsu CLI |
| AH_KOD_5 | AH_KOD_6 | AH_KOD_7 | Preferowana przeglądarka Chromium: auto, chrome, chromium, brave, edge |
| AH_KOD_13 | AH_KOD_14 | — | Katalog danych użytkownika przeglądarki, aby wybrać odpowiedni profil |
| AH_KOD_15 | AH_KOD_16 | — | Nazwa katalogu profilu przeglądarki (np. "Default", "Profile 1") |
| AH_KOD_19 | AH_KOD_20 | — | Zastępczy adres URL, gdy identyfikator rozszerzenia nie jest skonfigurowany |
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
{
"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
}
}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: falseprovider = "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 = trueAutohand przechowuje dane w ~/.autohand/ (lub $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
Katalog na poziomie projektu (w katalogu głównym obszaru roboczego):
<project>/.autohand/
├── settings.local.json # Local project permissions (gitignore this)
├── memory/ # Project-specific memory
├── skills/ # Project-specific skills
└── tools/ # Project-specific meta-tools
Te flagi zastępują ustawienia pliku konfiguracyjnego:
| Flaga | Opis |
|---|---|
| AH_KOD_0 | Wyprowadź bieżącą wersję |
| AH_KOD_1 | Uruchom pojedynczą instrukcję w trybie poleceń |
| AH_KOD_2 | Zastąp katalog główny obszaru roboczego |
| AH_KOD_3 | Użyj niestandardowego pliku konfiguracyjnego |
| AH_KOD_4 | Zastąp model |
| AH_KOD_5 | Ustaw temperaturę pobierania próbek (0-1) |
| AH_KOD_6 | Ustaw głębokość myślenia/rozumowania (brak, normalna, rozszerzona) |
| AH_KOD_7 | Monity automatycznego potwierdzenia |
| AH_KOD_8 | Podgląd bez wykonywania |
| AH_KOD_9 | Włącz szczegółowe wyniki debugowania |
| AH_KOD_10 | Minimalny tryb jawny; ustawia również AUTOHAND_CODE_SIMPLE=1 i wyłącza polecenia ukośnika |
| Flaga | Opis |
|---|---|
| AH_KOD_12 | Brak monitów o zatwierdzenie |
| AH_KOD_13 | Odmawiaj niebezpiecznych operacji |
| AH_KOD_14 | Wyświetl aktualne ustawienia uprawnień i wyjdź |
| AH_KOD_15 | Wyłącz uwierzytelnione wylogowywanie w stanie bezczynności dla długotrwałych sesji agenta |
| AH_KOD_16 | Automatyczne zatwierdzanie wywołań narzędzi pasujących do wzorca (np. allow:read,write lub deny:delete) |
| AH_KOD_19 | Limit czasu w sekundach dla trybu automatycznego zatwierdzania |
| Flaga | Opis |
|---|---|
| AH_KOD_20 | Uruchom sesję w izolowanym drzewie roboczym git (opcjonalna nazwa drzewa roboczego/oddziału) |
| AH_KOD_21 | Uruchom w dedykowanej sesji tmux (oznacza --worktree; nie można używać z --no-worktree) |
| AH_KOD_24 | Wyłącz izolację drzewa roboczego git w trybie automatycznym |
| AH_KOD_25 | Automatyczne zatwierdzanie zmian po ukończeniu zadań |
| AH_KOD_26 | Wygeneruj łatkę git bez stosowania zmian |
| AH_KOD_27 | Plik wyjściowy łatki (używany z --patch) |
| Flaga | Opis |
|---|---|
| AH_KOD_0 | Włącz interaktywny tryb automatyczny lub rozpocznij samodzielną pętlę z wbudowanym zadaniem |
| AH_KOD_1 | Maksymalna liczba iteracji w trybie automatycznym (domyślnie: 50) |
| AH_KOD_2 | Tekst znacznika zakończenia (domyślnie: „GOTOWE”) |
| AH_KOD_3 | Git zatwierdza co N iteracji (domyślnie: 5) |
| AH_KOD_4 | Maksymalny czas działania w minutach (domyślnie: 120) |
| AH_KOD_5 | Maksymalny koszt API w dolarach (domyślnie: 10) |
| AH_KOD_6 | Po zakończeniu trybu automatycznego przejdź bezpośrednio do trybu interaktywnego (tylko TTY) |
| Flaga | Opis |
|---|---|
| AH_KOD_7 | Automatyczne generowanie umiejętności na podstawie analizy projektu (patrz także /learn dla interaktywnego doradcy) |
| AH_KOD_9 | Uruchom doradcę umiejętności /learn w sposób nieinteraktywny (przeanalizuj i zainstaluj zalecane umiejętności) |
| AH_KOD_11 | Ponowna analiza projektu i regeneracja przestarzałych umiejętności wygenerowanych przez LLM w sposób nieinteraktywny |
| AH_KOD_12 | Zainstaluj umiejętność społeczności (otwiera przeglądarkę, jeśli nie podano nazwy) |
| AH_KOD_13 | Zainstaluj umiejętność na poziomie projektu (za pomocą --skill-install) |
| Flaga | Opis |
|---|---|
| AH_KOD_14 | Zaloguj się na swoje konto Autohand |
| AH_KOD_15 | Wyloguj się ze swojego konta Autohand |
| AH_KOD_16 | Włącz/wyłącz synchronizację ustawień (domyślnie: true dla zalogowanych użytkowników) |
| Flaga | Opis |
|---|---|
| AH_KOD_17 | Uruchom kreatora instalacji, aby skonfigurować lub ponownie skonfigurować Autohand |
| AH_KOD_18 | Pokaż informacje o Autohand (wersja, linki, informacje o wkładzie) |
| AH_KOD_19 | Prześlij opinię zespołowi Autohand |
| AH_KOD_20 | Skonfiguruj ustawienia Autohand (tak samo jak /settings w trybie interaktywnym) |
| Flaga | Opis |
|---|---|
| AH_KOD_0 | Dodaj dodatkowe katalogi do zakresu obszaru roboczego (można ich używać wielokrotnie) |
| Flaga | Opis |
|---|---|
| AH_KOD_1 | Tryb uruchamiania: interaktywny (domyślny), rpc lub acp |
| AH_KOD_2 | Skrót od --mode acp (protokół klienta agenta przez stdio) |
| AH_KOD_3 | Tryb wyświetlania zespołu: automatyczny, w trakcie lub tmux |
| Flaga | Opis |
|---|---|
| AH_KOD_4 | Ustaw język wyświetlania (np. en, id, zh-cn, fr, de, ja) |
| AH_KOD_5 | Ustaw dostawcę wyszukiwania internetowego (google, odważny, duckduckgo, równoległy) |
| AH_KOD_6 | Włącz zagęszczanie kontekstu (domyślnie: włączone) |
| AH_KOD_7 | Wyłącz zagęszczanie kontekstu |
| Flaga | Opis |
|---|---|
--browser |
Włącz integrację z przeglądarką (tak samo jak /browser) |
--no-browser |
Wyłącz integrację z przeglądarką |
| Flaga | Opis |
|---|---|
| AH_KOD_11 | Zastąp cały monit systemowy (ciąg wbudowany lub ścieżkę pliku) |
| AH_KOD_12 | Dołącz do zachęty systemowej (ciąg wbudowany lub ścieżka pliku) |
| AH_KOD_13 | Zastąp cały monit systemowy (ciąg wbudowany lub ścieżkę pliku) |
| AH_KOD_14 | Zastąp cały monit systemowy zawartością pliku |
| AH_KOD_15 | Dołącz do zachęty systemowej (ciąg wbudowany lub ścieżka pliku) |
| AH_KOD_16 | Dołącz zawartość pliku do zachęty systemowej |
| AH_KOD_17 | Załaduj jawny plik konfiguracyjny MCP |
| AH_KOD_18 | Załaduj jawnych agentów wbudowanych JSON lub katalog jawnych agentów |
| AH_KOD_19 | Załaduj jawny katalog wtyczek/meta-narzędzi |
| Polecenie | Opis |
|---|---|
| AH_KOD_20 | Wyświetla identyfikatory funkcji lokalnych i zdalnych, źródło, etap cyklu życia i stan |
| AH_KOD_0 | Pokaż jeden przełącznik funkcji, ścieżkę konfiguracji lub zdalne metadane i stan |
| AH_KOD_1 | Pobierz flagi funkcji zdalnych z interfejsu API Autohand |
| AH_KOD_2 | Włącz przełącznik funkcji oparty na konfiguracji |
| AH_KOD_3 | Wyłącz przełącznik funkcji oparty na konfiguracji |
Zdalne flagi funkcji są pobierane z /v1/feature-flags/evaluate, buforowane w ~/.autohand/feature-flags.json i odświeżane po wygaśnięciu TTL dostarczonego przez API. Użyj features.environment, aby wybrać zdalne środowisko flag i features.remoteOverrides, aby lokalnie zrezygnować ze zdalnych flag, które można zastąpić przez użytkownika.
usage_v2 to eksperymentalny przełącznik funkcji dla pulpitu nawigacyjnego /usage i ulepszonej karty /status Użycie. Włącz to za pomocą autohand experiments enable usage_v2.
token_usage_status to eksperymentalny przełącznik funkcji (ścieżka konfiguracyjna features.tokenUsageStatus, domyślnie wyłączona), który pokazuje użycie tokena w czasie rzeczywistym w działającej linii stanu — skumulowane tokeny w górę (↑) i w dół (↓) plus zajętość okna kontekstowego, np. AH_KOD_16. Okno kontekstowe jest rozpoznawane według modelu u wszystkich dostawców. Włącz to za pomocą autohand experiments enable token_usage_status.
Autohand zapewnia bogaty zestaw poleceń ukośnikowych do użytku interaktywnego. Wpisz / w REPL, aby zobaczyć sugestie.
| Polecenie | Opis |
|---|---|
| AH_KOD_19 | Wyjdź z bieżącej sesji |
| AH_KOD_20 | Wyjdź z bieżącej sesji |
| AH_KOD_21 | Rozpocznij nową rozmowę (z ekstrakcją pamięci) |
| AH_KOD_22 | Wyczyść rozmowę dzięki automatycznemu wyodrębnianiu pamięci |
| AH_KOD_23 | Pokaż szczegóły bieżącej sesji |
| AH_KOD_24 | Lista poprzednich sesji |
| AH_KOD_25 | Wznów poprzednią sesję |
| AH_KOD_26 | Przeglądaj historię sesji z paginacją |
| AH_KOD_27 | Cofnij zmiany git i ostatnią turę |
| AH_KOD_28 | Eksportuj sesję do Markdown/JSON/HTML |
| AH_KOD_29 | Udostępnij bieżącą sesję |
| AH_KOD_30 | Pokaż status sesji |
| AH_KOD_31 | Pokaż model, dostawcę, kontekst i limity użytkowania |
| Polecenie | Opis |
|---|---|
| AH_KOD_32 | Przełącz lub skonfiguruj model LLM |
| AH_KOD_33 | Kompaktuj kontekst ręcznie |
| Polecenie | Opis |
|---|---|
| AH_KOD_34 | Utwórz plik AGENTS.md w bieżącym katalogu |
| AH_KOD_36 | Uruchom kreatora instalacji, aby skonfigurować Autohand |
| AH_KOD_37 | Dodaj katalogi do zakresu obszaru roboczego |
| Polecenie | Opis |
|---|---|
| AH_KOD_38 | Lista dostępnych sub-agentów |
| AH_KOD_39 | Utwórz nowego agenta za pomocą kreatora |
| AH_KOD_40 | Otwórz/zarządzaj samodzielnym środowiskiem wykonawczym Autohand Squad |
| AH_KOD_41 | Zarządzaj zespołem do pracy równoległej |
| AH_KOD_42 | Zarządzaj zadaniami w zespole |
| AH_KOD_43 | Wyślij wiadomość do kolegi z drużyny |
| Polecenie | Opis |
|---|---|
| AH_KOD_0 | Lista i zarządzanie umiejętnościami |
| AH_KOD_1 | Utwórz nową umiejętność |
| AH_KOD_2 | Naucz się i zainstaluj zalecane umiejętności |
| Polecenie | Opis |
|---|---|
| AH_KOD_3 | Przeglądaj i zarządzaj zapisanymi wspomnieniami |
| AH_KOD_4 | Skonfiguruj ustawienia Autohand |
| AH_KOD_5 | Skonfiguruj pola linii stanu kompozytora |
| AH_KOD_6 | Przełącz przełączniki funkcji eksperymentalnych |
| AH_KOD_7 | Synchronizuj ustawienia między urządzeniami |
| AH_KOD_8 | Importuj sesje, ustawienia, MCP, pamięć, umiejętności i zaczepy z obsługiwanych agentów |
| Polecenie | Opis |
|---|---|
| AH_KOD_9 | Zarządzaj uprawnieniami narzędzi |
| AH_KOD_10 | Zarządzaj hakami cyklu życia |
| Polecenie | Opis |
|---|---|
| AH_KOD_11 | Uwierzytelnij się za pomocą API Autohand |
| AH_KOD_12 | Wyloguj się z konta Autohand |
| Polecenie | Opis |
|---|---|
| AH_KOD_13 | Przeszukaj sieć |
| AH_KOD_14 | Lista dostępnych formaterów kodu |
| AH_KOD_15 | Lista dostępnych lintersów |
| AH_KOD_16 | Generuj skrypty uzupełniania powłoki |
| AH_KOD_17 | Utwórz plan wdrożenia |
| AH_KOD_18 | Wykonaj przegląd kodu |
| AH_KOD_19 | Przejrzyj żądanie ściągnięcia |
| Polecenie | Opis |
|---|---|
| AH_KOD_20 | Wykryj i połącz się z działającymi IDE |
| Polecenie | Opis |
|---|---|
| AH_KOD_21 | Interaktywny menedżer serwerów MCP |
| Polecenie | Opis |
|---|---|
| AH_KOD_22 | Uruchom autonomiczny tryb kodowania |
| AH_KOD_23 | Zaplanuj powtarzające się zadania |
| AH_KOD_24 | Przełącz tryb yolo (narzędzia automatycznego zatwierdzania) |
| Polecenie | Opis |
|---|---|
/browser |
Włącz integrację z przeglądarką |
| Polecenie | Opis |
|---|---|
| AH_KOD_26 | Wyświetl dostępne polecenia i wskazówki ukośnika |
| AH_KOD_27 | Pokaż informacje o Autohand |
| AH_KOD_28 | Zmień motyw kolorystyczny |
| AH_KOD_29 | Zmień język wyświetlania |
| AH_KOD_30 | Wyślij opinię do zespołu Autohand |
Autohand pozwala dostosować monit systemowy używany przez agenta AI. Jest to przydatne w przypadku specjalistycznych przepływów pracy, niestandardowych instrukcji lub integracji z innymi systemami.
| Flaga | Opis |
|---|---|
| AH_KOD_0 | Zastąp cały monit systemowy |
| AH_KOD_1 | Dołącz treść do domyślnego monitu systemowego |
Obie flagi akceptują:
- Ciąg wbudowany: Bezpośrednia treść tekstowa
- Ścieżka pliku: Ścieżka do pliku zawierającego zachętę (wykrywana automatycznie)
Wartość jest traktowana jako ścieżka pliku, jeśli:
- Zaczyna się od
./,../,/lub~/ - Rozpoczyna się literą dysku systemu Windows (np.
C:\) - Kończy się na
.txt,.mdlub.prompt - Zawiera separatory ścieżek bez spacji
W przeciwnym razie jest traktowany jako ciąg wbudowany.
Jeśli jest podany, całkowicie zastępuje domyślny monit systemowy. Agent NIE załaduje:
- Domyślne instrukcje Autohand
- Instrukcje projektu AGENTS.md
- Pamięci użytkowników/projektów
- Umiejętności aktywne
# 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"Przykładowy niestandardowy plik zachęty (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
Jeśli jest podany, dołącza treść do pełnego domyślnego monitu systemowego. Agent nadal będzie ładować:
- Domyślne instrukcje Autohand
- Instrukcje projektu AGENTS.md
- Pamięci użytkowników/projektów
- Umiejętności aktywne
Dołączona treść jest dodawana na samym końcu.
# 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"Przykładowy plik dołączania (team-guidelines.md):
## Team Guidelines
- Use 2-space indentation
- Prefer functional patterns
- Add JSDoc comments to public APIs
- Run tests before committing
Gdy dostępne są obie flagi:
--sys-promptma pełne pierwszeństwo--append-sys-promptjest ignorowany
# --append-sys-prompt is ignored in this case
autohand --sys-prompt "Custom only" --append-sys-prompt "This is ignored"| Przypadek użycia | Polecana flaga |
|---|---|
| Niestandardowa osobowość agenta | AH_KOD_0 |
| Minimalne instrukcje | AH_KOD_1 |
| Dodaj wytyczne zespołu | AH_KOD_2 |
| Dodaj konwencje projektu | AH_KOD_3 |
| Integracja z systemami zewnętrznymi | AH_KOD_4 |
| Specjalistyczne debugowanie | AH_KOD_5 |
| Scenariusz | Zachowanie |
|---|---|
| Pusta wartość | Błąd |
| Nie znaleziono pliku | Traktowane jako ciąg znaków |
| Pusty plik | Błąd |
| Plik > 1 MB | Błąd |
| Odmowa pozwolenia | Błąd |
| Ścieżka katalogu | Błąd |
# 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 może pracować z wieloma katalogami poza głównym obszarem roboczym. Jest to przydatne, gdy projekt ma zależności, biblioteki współdzielone lub powiązane projekty w różnych katalogach.
Użyj --add-dir, aby dodać dodatkowe katalogi (można użyć wiele razy):
# 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 --unrestrictedUżyj /add-dir podczas sesji interaktywnej:
/add-dir # Show current directories
/add-dir /path/to/dir # Add a new directory
Nie można dodać następujących katalogów:
- Katalog domowy (
~lub$HOME) - Katalog główny (
/) - Katalogi systemowe (
/etc,/var,/usr,/bin,/sbin) - Katalogi systemu Windows (
C:\Windows,C:\Program Files) - Katalogi użytkowników systemu Windows (
C:\Users\username) - Uchwyty WSL Windows (
/mnt/c,/mnt/c/Windows)