Autohand Informacje o konfiguracji
June 23, 2026 · View on GitHub
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
Spis treści
- 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
Lokalizacja pliku konfiguracyjnego
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
Zmienne środowiskowe
| 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 |
| 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 |
Poziom myślenia
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 goły
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 autohand
Po 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 |
Ustawienia dostawcy
provider
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 |
openrouter
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. |
AH_KOD_6
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. |
AH_KOD_9
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. |
AH_KOD_8
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. |
ollama
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) |
AH_KOD_7
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 |
AH_KOD_5
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 |
mlx
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 |
AH_KOD_5
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
deepseek
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 |
AH_KOD_6
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: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"
| 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.
Ustawienia obszaru roboczego
{
"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 |
Bezpieczeństwo miejsca pracy
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 && autohand
Aby uzyskać szczegółowe informacje, zobacz Bezpieczeństwo miejsca pracy.
Ustawienia interfejsu użytkownika
{
"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 false
Możesz przełączać czasowniki czynności rotacyjnych bez edytowania pliku:
autohand config set verbs activity true
autohand config set verbs activity false
Dostosuj 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 false
Dzwonek terminala
Gdy 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
}
}
Moduł renderujący atrament
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 autohand
Uwaga: 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.
Sprawdź aktualizację
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=1
Ustawienia agenta
Kontroluj zachowanie agenta i limity iteracji.
{
"agent": {
"maxIterations": 100,
"enableRequestQueue": true,
"toolSelectionCache": true,
"autoMemory": true,
"idleLogoutEnabled": true,
"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 |
| AH_KOD_8 | wartość logiczna | AH_KOD_9 | Wyloguj uwierzytelnione sesje interaktywne po upływie limitu czasu bezczynności |
| AH_KOD_10 | wartość logiczna | AH_KOD_11 | Włącz szczegółowe dane wyjściowe debugowania (loguje stan wewnętrzny agenta na stderr) |
Wybór schematu narzędzia
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.
Tryb debugowania
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
Kolejka żądań
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ń
Ustawienia uprawnień
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
}
}
mode
| 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 |
AH_KOD_4
Szereg wzorów narzędzi, które nigdy nie wymagają zatwierdzenia.
["run_command:npm *", "run_command:bun test"]
blacklist
Tablica wzorów narzędzi, które są zawsze zablokowane.
["run_command:rm -rf /", "run_command:sudo *"]
rules
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ąć |
AH_KOD_7
| Wpisz | Domyślne | Opis |
|---|---|---|
| wartość logiczna | AH_KOD_8 | Zapamiętaj decyzje zatwierdzające sesję |
Lokalne uprawnienia projektu
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)
Wyświetlanie uprawnień
Możesz wyświetlić swoje bieżące ustawienia uprawnień na dwa sposoby:
Flaga CLI (nieinteraktywna):
autohand --permissions
Wyś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 poprawki
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
Użycie
# 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
Zachowanie
Gdy 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
Stosowanie poprawek
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.patch
Format poprawki
Wygenerowana ł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);
Kody wyjścia
| Kod | Znaczenie |
|---|---|
| AH_KOD_0 | Sukces, wygenerowano łatkę |
| AH_KOD_1 | Błąd (brak --prompt, odmowa pozwolenia itp.) |
Łączenie z innymi flagami
# 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
Przykład przepływu pracy zespołu
# 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"
Ustawienia sieciowe
{
"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 |
Ustawienia telemetrii
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.
Agenci zewnętrzni
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 |
System umiejętności
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ń.
Lokalizacje odkrywania umiejętności
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) |
Zachowanie automatycznego kopiowania
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.
SKILL.md Format
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ść |
Przedrostki wejściowe
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
Polecenia z ukośnikiem
/skills – Menedżer pakietów
| 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 |
/learn — Doradca ds. umiejętności oparty na LLM
| 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.
Generowanie umiejętności automatycznych (--auto-skill)
Flaga --auto-skill CLI generuje umiejętności bez przepływu interaktywnego doradcy:
autohand --auto-skill
To 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
Ustawienia API
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
Ustawienia uwierzytelniania
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) |
Ustawienia umiejętności społeczności
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 |
Ustawienia udostępniania
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 |
Format YAML
share:
enabled: true
Wyłączanie udostępniania sesji
Jeś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.
Synchronizacja ustawień
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) |
Flaga CLI
# Disable sync for this session
autohand --sync-settings=false
# Enable sync (default for logged users)
autohand --sync-settings
Co jest synchronizowane
Domyś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/)
Czego nie synchronizuje się (domyślnie)
- 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
Synchronizacja oparta na zgodzie
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
}
}
Rozwiązywanie konfliktów
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.
Bezpieczeństwo
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.
Co jest zaszyfrowane:
- Pola o nazwach
apiKey - Pola kończące się na
Key,Token,Secret - Pole
password
Jak to działa
- 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
Wykluczanie plików
Możesz wykluczyć określone pliki lub wzorce z synchronizacji:
{
"sync": {
"enabled": true,
"exclude": ["custom-local-config.json", "temp/*"]
}
}
Format YAML
sync:
enabled: true
interval: 300000
exclude: []
includeTelemetry: false
includeFeedback: false
Ustawienia MCP
Skonfiguruj 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
}
]
}
}
mcp.enabled
- 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.
AH_KOD_4
- Typ:
McpServerConfigEntry[] - Domyślnie:
[] - Opis: Tablica konfiguracji serwerów MCP.
Pola wejściowe serwera
| 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.
Ustawienia haków
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
}
]
}
}
hooks
| 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 |
Definicja haka
| 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 |
Zdarzenia związane z hakami
| 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 |
Zmienne środowiskowe
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) |
Ustawienia rozszerzenia Chrome
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 |
Flagi CLI
autohand --chrome # Start with browser bridge enabled
autohand --no-chrome # Start with browser bridge disabled
Polecenia z ukośnikiem
/chrome # Open Chrome integration panel
/chrome disconnect # Close the browser bridge connection
Kompletny przykład
Format JSON (~/.autohand/config.json)
{
"provider": "openrouter",
"openrouter": {
"apiKey": "sk-or-v1-your-key-here",
"baseUrl": "https://openrouter.ai/api/v1",
"model": "your-modelcard-id-here"
},
"ollama": {
"baseUrl": "http://localhost:11434",
"model": "llama3.2"
},
"workspace": {
"defaultRoot": "~/projects",
"allowDangerousOps": false
},
"ui": {
"theme": "dark",
"autoConfirm": false,
"showCompletionNotification": true,
"showThinking": true,
"terminalBell": true,
"checkForUpdates": true,
"updateCheckInterval": 24
},
"agent": {
"maxIterations": 100,
"enableRequestQueue": true,
"toolSelectionCache": true,
"idleLogoutEnabled": true,
"debug": false
},
"permissions": {
"mode": "interactive",
"whitelist": ["run_command:npm *", "run_command:bun *"],
"blacklist": ["run_command:rm -rf /"],
"rememberSession": true
},
"network": {
"maxRetries": 3,
"timeout": 30000,
"retryDelay": 1000
},
"telemetry": {
"enabled": false,
"apiBaseUrl": "https://api.autohand.ai",
"batchSize": 20,
"flushIntervalMs": 60000,
"maxQueueSize": 500,
"maxRetries": 3,
"enableSessionSync": true
},
"externalAgents": {
"enabled": false,
"paths": []
},
"api": {
"baseUrl": "https://api.autohand.ai"
},
"auth": {
"token": "your-auth-token",
"user": {
"id": "user-id",
"email": "user@example.com",
"name": "User Name"
}
},
"communitySkills": {
"enabled": true,
"showSuggestionsOnStartup": true,
"autoBackup": true
},
"share": {
"enabled": true
},
"sync": {
"enabled": true,
"interval": 300000,
"includeTelemetry": false,
"includeFeedback": false
}
}
Format YAML (~/.autohand/config.yaml)
provider: openrouter
openrouter:
apiKey: sk-or-v1-your-key-here
baseUrl: https://openrouter.ai/api/v1
model: your-modelcard-id-here
ollama:
baseUrl: http://localhost:11434
model: llama3.2
workspace:
defaultRoot: ~/projects
allowDangerousOps: false
ui:
theme: dark
autoConfirm: false
showCompletionNotification: true
showThinking: true
terminalBell: true
checkForUpdates: true
updateCheckInterval: 24
agent:
maxIterations: 100
enableRequestQueue: true
toolSelectionCache: true
idleLogoutEnabled: true
debug: false
permissions:
mode: interactive
whitelist:
- "run_command:npm *"
- "run_command:bun *"
blacklist:
- "run_command:rm -rf /"
rememberSession: true
network:
maxRetries: 3
timeout: 30000
retryDelay: 1000
telemetry:
enabled: false
apiBaseUrl: https://api.autohand.ai
batchSize: 20
flushIntervalMs: 60000
maxQueueSize: 500
maxRetries: 3
enableSessionSync: true
externalAgents:
enabled: false
paths: []
api:
baseUrl: https://api.autohand.ai
auth:
token: your-auth-token
user:
id: user-id
email: user@example.com
name: User Name
communitySkills:
enabled: true
showSuggestionsOnStartup: true
autoBackup: true
share:
enabled: true
sync:
enabled: true
interval: 300000
includeTelemetry: false
includeFeedback: false
Format TOML (~/.autohand/config.toml)
provider = "openrouter"
[openrouter]
apiKey = "sk-or-v1-your-key-here"
baseUrl = "https://openrouter.ai/api/v1"
model = "your-modelcard-id-here"
[ollama]
baseUrl = "http://localhost:11434"
model = "llama3.2"
[workspace]
defaultRoot = "~/projects"
allowDangerousOps = false
[ui]
theme = "dark"
autoConfirm = false
showCompletionNotification = true
showThinking = true
terminalBell = true
checkForUpdates = true
updateCheckInterval = 24
[ui.customThemes.company.vars]
brand = "#7c3aed"
brandSoft = "#a78bfa"
[ui.customThemes.company.colors]
accent = "brand"
borderAccent = "brandSoft"
mdHeading = "brand"
[agent]
maxIterations = 100
enableRequestQueue = true
toolSelectionCache = true
idleLogoutEnabled = true
debug = false
[permissions]
mode = "interactive"
whitelist = ["run_command:npm *", "run_command:bun *"]
blacklist = ["run_command:rm -rf /"]
rememberSession = true
Struktura katalogów
Autohand 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
Flagi CLI (zastąpienie konfiguracji)
Te flagi zastępują ustawienia pliku konfiguracyjnego:
Flagi podstawowe
| 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 |
Uprawnienia i bezpieczeństwo
| 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 |
Git i drzewo pracy
| 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) |
Tryb automatyczny
| 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) |
Umiejętności i nauka
| 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) |
Uwierzytelnianie i konto
| 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) |
Konfiguracja i informacje
| 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) |
Obszar roboczy i katalogi
| Flaga | Opis |
|---|---|
| AH_KOD_0 | Dodaj dodatkowe katalogi do zakresu obszaru roboczego (można ich używać wielokrotnie) |
Tryby pracy
| 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 |
Interfejs użytkownika i język
| 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 |
Integracja z Chrome
| Flaga | Opis |
|---|---|
| AH_KOD_8 | Włącz integrację z przeglądarką Chrome (tak samo jak /chrome) |
| AH_KOD_10 | Wyłącz integrację przeglądarki Chrome |
Monit systemowy
| 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 |
Komendy przełączania eksperymentów
| 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.
Polecenia z ukośnikiem
Autohand zapewnia bogaty zestaw poleceń ukośnikowych do użytku interaktywnego. Wpisz / w REPL, aby zobaczyć sugestie.
Zarządzanie sesją
| 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 |
Model i dostawca
| Polecenie | Opis |
|---|---|
| AH_KOD_32 | Przełącz lub skonfiguruj model LLM |
| AH_KOD_33 | Kompaktuj kontekst ręcznie |
Konfiguracja projektu
| 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 |
Agenci i zespoły
| 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 |
Umiejętności
| 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 |
Pamięć i ustawienia
| 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 |
Uprawnienia i haki
| Polecenie | Opis |
|---|---|
| AH_KOD_9 | Zarządzaj uprawnieniami narzędzi |
| AH_KOD_10 | Zarządzaj hakami cyklu życia |
Uwierzytelnianie
| Polecenie | Opis |
|---|---|
| AH_KOD_11 | Uwierzytelnij się za pomocą API Autohand |
| AH_KOD_12 | Wyloguj się z konta Autohand |
Narzędzia i narzędzia
| 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 |
Integracja IDE
| Polecenie | Opis |
|---|---|
| AH_KOD_20 | Wykryj i połącz się z działającymi IDE |
MCP (protokół kontekstu modelu)
| Polecenie | Opis |
|---|---|
| AH_KOD_21 | Interaktywny menedżer serwerów MCP |
Automatyzacja
| 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) |
Integracja z Chrome
| Polecenie | Opis |
|---|---|
| AH_KOD_25 | Włącz integrację przeglądarki Chrome |
Interfejs użytkownika i wyświetlacz
| 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 |
Dostosowywanie monitów systemowych
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.
Flagi CLI
| 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)
Wykrywanie ścieżki pliku
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.
--sys-prompt (Całkowita wymiana)
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
--append-sys-prompt (Dodaj do domyślnych)
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
Pierwszeństwo
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"
Przypadki użycia
| 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 |
Obsługa błędów
| 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 |
Przykłady
# 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"
Obsługa wielu katalogów
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.
Flaga CLI
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 --unrestricted
Interaktywne polecenie
Użyj /add-dir podczas sesji interaktywnej:
/add-dir # Show current directories
/add-dir /path/to/dir # Add a new directory
Ograniczenia bezpieczeństwa
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)