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 /settings zamiast ręcznej edycji pliku.

Zlokalizowane odniesienia:

Spis treści


Lokalizacja pliku konfiguracyjnego

Autohand szuka konfiguracji w następującej kolejności:

  1. AUTOHAND_CONFIG zmienna środowiskowa (ścieżka niestandardowa)
  2. AH_KOD_6
  3. AH_KOD_7
  4. AH_KOD_8
  5. ~/.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

ZmiennaOpisPrzykład
AH_KOD_0Katalog bazowy dla wszystkich danych AutohandAH_KOD_1
AH_KOD_2Niestandardowa ścieżka pliku konfiguracyjnegoAH_KOD_3
AH_KOD_4Punkt końcowy API (zastępuje konfigurację)AH_KOD_5
AH_KOD_6Tajny klucz firmy/zespołuAH_KOD_7
AH_KOD_8Adres URL wywołania zwrotnego pozwolenia (eksperymentalny)AH_KOD_9
AH_KOD_10Limit czasu dla wywołania zwrotnego pozwolenia w msAH_KOD_11
AH_KOD_12Uruchom w trybie nieinteraktywnymAH_KOD_13
AH_KOD_14Automatyczne potwierdzanie wszystkich monitówAH_KOD_15
AH_KOD_16Wyłącz baner startowyAH_KOD_17
AH_KOD_18Przesyłaj strumieniowo dane wyjściowe narzędzia w czasie rzeczywistymAH_KOD_19
AH_KOD_20Włącz rejestrowanie debugowaniaAH_KOD_21
AH_KOD_22Ustaw poziom głębi rozumowaniaAH_KOD_23
AH_KOD_24Identyfikator klienta/edytora (ustawiony przez rozszerzenia ACP)AH_KOD_25
AH_KOD_26Wersja klienta (ustawiana przez rozszerzenia ACP)AH_KOD_27
AH_KOD_28Flaga wykrycia środowiska (ustawiana automatycznie)AH_KOD_29
AH_KOD_30Włącz tryb pusty bez przekazywania --bareAH_KOD_32

Poziom myślenia

Zmienna środowiskowa AUTOHAND_THINKING_LEVEL kontroluje głębokość rozumowania wykorzystywanego przez model:

WartośćOpis
AH_KOD_34Bezpośrednie odpowiedzi bez widocznego uzasadnienia
AH_KOD_35Standardowa głębokość rozumowania (domyślna)
AH_KOD_36Głę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.md i 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ścieOpis
AH_KOD_11Zastąp monit systemowy tekstem wbudowanym lub wartością przypominającą ścieżkę
AH_KOD_12Zastąp monit systemowy zawartością pliku
AH_KOD_13Dołącz tekst osadzony lub wartość przypominającą ścieżkę do znaku zachęty
AH_KOD_14Dołącz zawartość pliku do zachęty systemowej
AH_KOD_15Dodaj jawne katalogi do zakresu obszaru roboczego
AH_KOD_16Załaduj jawny plik konfiguracyjny MCP
AH_KOD_17Otwórz ustawienia bezpośrednio z flagi CLI
AH_KOD_18Użyj jawnego pliku konfiguracyjnego Autohand
AH_KOD_19Załaduj jawnych agentów wbudowanych JSON lub katalog jawnych agentów
AH_KOD_20Załaduj jawny katalog wtyczek/meta-narzędzi

Ustawienia dostawcy

provider

Aktywny dostawca LLM do użycia.

WartośćOpis
AH_KOD_22Interfejs API OpenRouter (domyślny)
AH_KOD_23Lokalna instancja Ollama
AH_KOD_24Lokalny serwer lama.cpp
AH_KOD_25Bezpośrednio API OpenAI
AH_KOD_26MLX na Apple Silicon (lokalnie)
AH_KOD_27Ujednolicony interfejs API bramy LLM
AH_KOD_28API DeepSeek
AH_KOD_29Z.ai GLM API
AH_KOD_30Sakana.AI Fugu API
AH_KOD_31Podstawa AWS
AH_KOD_32Zdefiniowany 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
  }
}
PoleWpiszWymaganeDomyślneOpis
AH_KOD_0ciągTak-Twój klucz API OpenRouter
AH_KOD_1ciągNieAH_KOD_2Punkt końcowy API
AH_KOD_3ciągTak-Identyfikator modelu (np. your-modelcard-id-here)
AH_KOD_5numerNieAutomatDokł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
  }
}
PoleWpiszWymaganeDomyślneOpis
AH_KOD_0ciągTak-Twój klucz API Z.ai
AH_KOD_1ciągNieAH_KOD_2Punkt końcowy API
AH_KOD_3ciągTakAH_KOD_4Identyfikator modelu, na przykład glm-5.2, glm-5.1 lub glm-4.5
AH_KOD_8numerNieAutomatDokł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
  }
}
PoleWpiszWymaganeDomyślneOpis
AH_KOD_0ciągTak-Twój klucz API Sakana
AH_KOD_1ciągNieAH_KOD_2Punkt końcowy API
AH_KOD_3ciągTakAH_KOD_4Identyfikator modelu, na przykład fugu lub fugu-ultra
AH_KOD_7numerNieAutomatDokł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.

PoleWpiszWymaganeDomyślneOpis
AH_KOD_3ciągTak-Stabilny identyfikator dostawcy. Musi pasować do klucza obiektu i jest wybrany jako custom:<id>.
AH_KOD_5ciągTak-Nazwa wyświetlana w /model i ustawieniach dostawcy.
AH_KOD_7ciągTak-Musi być openai-compatible.
AH_KOD_9ciągTak-Główny punkt końcowy, taki jak https://api.example.com/v1. Autohand weryfikuje /models i wywołuje /chat/completions.
AH_KOD_13ciągWarunkowe-Token nośnika dla hostowanych punktów końcowych. Wymagane, gdy apiKeyRequired ma wartość true.
AH_KOD_15wartość logicznaNieAH_KOD_16Ustaw wartość false dla bram lokalnych lub już uwierzytelnionych.
AH_KOD_17ciągTak-Aktywny identyfikator modelu.
AH_KOD_18numerNieAutomatDokładne okno kontekstowe do budżetowania tokenów, stanu, telemetrii i synchronizowania metadanych.
AH_KOD_19ciągNie-Opcjonalnie none, low, medium, high lub xhigh. Wysyłane jako reasoning_effort w przypadku niestandardowych żądań zgodnych z OpenAI.
AH_KOD_26tablicaNie-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"
  }
}
PoleWpiszWymaganeDomyślneOpis
AH_KOD_0ciągNieAH_KOD_1Adres URL serwera Ollama
AH_KOD_2numerNieAH_KOD_3Port serwera (alternatywa dla baseUrl)
AH_KOD_4ciągTak-Nazwa modelu (np. llama3.2, codellama)

AH_KOD_7

Konfiguracja serwera llama.cpp.

{
  "llamacpp": {
    "baseUrl": "http://localhost:8080",
    "port": 8080,
    "model": "default"
  }
}
PoleWpiszWymaganeDomyślneOpis
AH_KOD_0ciągNieAH_KOD_1Adres URL serwera llama.cpp
AH_KOD_2numerNieAH_KOD_3Port serwera
AH_KOD_4ciągTak-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": "..."
    }
  }
}
PoleWpiszWymaganeDomyślneOpis
AH_KOD_0ciągNieAH_KOD_1Tryb uwierzytelniania: api-key lub chatgpt
AH_KOD_4ciągTak dla trybu api-key-Klucz API OpenAI
AH_KOD_6ciągNieAH_KOD_7Punkt końcowy API
AH_KOD_8ciągTak-Nazwa modelu (np. gpt-5.4, gpt-5.4-mini)
AH_KOD_11numerNieAutomatDokładne okno kontekstowe modelu. Ustaw tę opcję, aby zastąpić nieaktualne założenia lokalne.
AH_KOD_12obiektTak 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"
  }
}
PoleWpiszWymaganeDomyślneOpis
AH_KOD_0ciągNieAH_KOD_1Adres URL serwera MLX
AH_KOD_2numerNieAH_KOD_3Port serwera
AH_KOD_4ciągTak-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"
  }
}
PoleWpiszWymaganeDomyślneOpis
AH_KOD_0ciągTak-Klucz API bramy LLM
AH_KOD_1ciągNieAH_KOD_2Punkt końcowy API
AH_KOD_3ciągTak-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-turbo AH_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"
  }
}
PoleWpiszWymaganeDomyślneOpis
AH_KOD_0ciągTak-Klucz API DeepSeek
AH_KOD_1ciągNieAH_KOD_2Punkt końcowy API
AH_KOD_3ciągTak-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"
PoleWpiszWymaganeDomyślneOpis
AH_KOD_0ciągTak-Identyfikator modelu skały macierzystej, identyfikator profilu wnioskowania lub ARN
AH_KOD_1ciągTakAWS_REGION, następnie AWS_DEFAULT_REGION, następnie us-east-1 w konfiguracjiRegion AWS
AH_KOD_5ciągNieAH_KOD_6converse, openai-chat lub openai-responses
AH_KOD_10ciągNieaws-credentials dla converse, bedrock-api-key dla trybów kompatybilnych z OpenAITryb uwierzytelniania
AH_KOD_14ciągNie-Opcjonalny profil AWS do uwierzytelniania za pomocą łańcucha danych
AH_KOD_15ciągNiePochodzi z trybu i regionuNiestandardowy/prywatny punkt końcowy Bedrock
AH_KOD_16ciągTak 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
  }
}
PoleWpiszDomyślneOpis
AH_KOD_0ciągAktualny katalogDomyślny obszar roboczy, gdy nie określono żadnego
AH_KOD_1wartość logicznaAH_KOD_2Zezwalaj 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:\Windows itd.)
  • 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
  }
}
PoleWpiszDomyślneOpis
AH_KOD_0ciągAH_KOD_1Motyw 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_13obiektAH_KOD_14Wbudowane niestandardowe definicje motywów oznaczone nazwą motywu. Ustaw theme na ten sam klucz, aby go użyć.
AH_KOD_16wartość logicznaAH_KOD_17Pomiń monity o potwierdzenie bezpiecznych operacji
AH_KOD_18numerAH_KOD_19Maksymalna liczba znaków do wyświetlenia z wyników narzędzia odczytu/wyszukiwania (pełna treść jest nadal wysyłana do modelu)
AH_KOD_20wartość logicznaAH_KOD_21Ukryj bloki wyjściowe narzędzia w terminalu, zachowując jednocześnie wyniki narzędzia dla modelu/sesji
AH_KOD_22ciąg lub ciąg []wbudowany basenNiestandardowy czasownik działania lub pula czasowników dla wskaźnika roboczego, renderowana jako Verb...
AH_KOD_24wartość logicznaAH_KOD_25Wyświetlaj rotacyjne czasowniki czynności, takie jak Compiling..., gdy agent pracuje
AH_KOD_27ciągAH_KOD_28Symbol pokazany przed czasownikiem aktywności na wyjściu wskaźnika aktywności
AH_KOD_29wartość logicznaAH_KOD_30Pokaż aktywnego dostawcę i model w linii statusu kompozytora
AH_KOD_31wartość logicznaAH_KOD_32Pokaż procent kontekstu w linii statusu kompozytora
AH_KOD_33wartość logicznaAH_KOD_34Pokaż polecenia, wzmianki, umiejętności i wskazówki dotyczące wejścia do terminala w linii statusu kompozytora
AH_KOD_35wartość logicznaAH_KOD_36Pokaż powiązany numer żądania ściągnięcia lub PR #123, jeśli nie powiązano żadnego PR
AH_KOD_38wartość logicznaAH_KOD_39Pokaż linie dodane i usunięte podczas bieżącej sesji
AH_KOD_40wartość logicznaAH_KOD_41Pokaż liczbę żądań oczekujących w kolejce w wierszu stanu
AH_KOD_42wartość logicznaAH_KOD_43Pokaż tekst statusu aktywnej tury, gdy agent pracuje
AH_KOD_44wartość logicznaAH_KOD_45Pokaż czas, który upłynął i metryki tokenów, gdy agent pracował
AH_KOD_46wartość logicznaAH_KOD_47Pokaż wskazówkę dotyczącą anulowania Esc, gdy agent pracuje
AH_KOD_48wartość logicznaAH_KOD_49Poproś modela o dołączenie zwięzłego raportu o ukończeniu po ukończonych turach akcji
AH_KOD_50wartość logicznaAH_KOD_51Pokaż powiadomienie systemowe po zakończeniu zadania
AH_KOD_52wartość logicznaAH_KOD_53Wyświetl rozumowanie/proces myślowy LLM
AH_KOD_54wartość logicznaAH_KOD_55Zadzwoń dzwonkiem terminala po zakończeniu zadania (pokazuje plakietkę na karcie terminala/doku)
AH_KOD_56wartość logicznaAH_KOD_57Sprawdź aktualizacje CLI podczas uruchamiania
AH_KOD_58numerAH_KOD_59Godziny 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 updateCheckInterval godzin (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
  }
}
PoleWpiszDomyślneOpis
AH_KOD_0numerAH_KOD_1Maksymalna liczba iteracji narzędzia na żądanie użytkownika przed zatrzymaniem
AH_KOD_2wartość logicznaAH_KOD_3Zezwalaj użytkownikom na wpisywanie i kolejkowanie żądań podczas pracy agenta
AH_KOD_4wartość logicznaAH_KOD_5Buforuj lokalny wybór schematu narzędzia na obrót dla równoważnych danych wejściowych dotyczących wyboru narzędzia
AH_KOD_6wartość logicznaAH_KOD_7Wyodrębniaj i zapisuj trwałe wspomnienia użytkowników/projektów po udanych interaktywnych turach
AH_KOD_8wartość logicznaAH_KOD_9Wyloguj uwierzytelnione sesje interaktywne po upływie limitu czasu bezczynności
AH_KOD_10wartość logicznaAH_KOD_11Włą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_find i fff_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_search lub 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):

  1. Flaga CLI: autohand -d lub autohand --debug
  2. Zmienna środowiskowa: AUTOHAND_DEBUG=1
  3. 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_1Monituj o zatwierdzenie niebezpiecznych operacji (domyślnie)
AH_KOD_2Brak podpowiedzi, zezwól na wszystko
AH_KOD_3Odmó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

WpiszDomyślneOpis
wartość logicznaAH_KOD_8Zapamię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.json do .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

KodZnaczenie
AH_KOD_0Sukces, wygenerowano łatkę
AH_KOD_1Błą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
  }
}
PoleWpiszDomyślneMaksOpis
AH_KOD_0numerAH_KOD_1AH_KOD_2Ponów próbę w przypadku nieudanych żądań API
AH_KOD_3numerAH_KOD_4-Limit czasu żądania w milisekundach
AH_KOD_5numerAH_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": ""
  }
}
PoleWpiszDomyślneOpis
AH_KOD_0wartość logicznaAH_KOD_1Włącz/wyłącz telemetrię (opcja)
AH_KOD_2ciągAH_KOD_3Punkt końcowy interfejsu API telemetrii
AH_KOD_4numerAH_KOD_5Liczba zdarzeń do partii przed automatycznym płukaniem
AH_KOD_6numerAH_KOD_7Interwał spłukiwania w milisekundach (1 minuta)
AH_KOD_8numerAH_KOD_9Maksymalny rozmiar kolejki przed usunięciem starych wydarzeń
AH_KOD_10numerAH_KOD_11Ponów próbę w przypadku nieudanych żądań telemetrycznych
AH_KOD_12wartość logicznaAH_KOD_13Synchronizuj sesje z chmurą dla funkcji zespołu, gdy włączona jest telemetria
AH_KOD_14ciągAH_KOD_15Tajemnica 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"]
  }
}
PoleWpiszDomyślneOpis
AH_KOD_0wartość logicznaAH_KOD_1Włącz ładowanie agenta zewnętrznego
AH_KOD_2ciąg[]AH_KOD_3Katalogi 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:

LokalizacjaIdentyfikator źródłaOpis
AH_KOD_5AH_KOD_6Umiejętności Kodeksu na poziomie użytkownika (rekurencyjne)
AH_KOD_7AH_KOD_8Umiejętności Claude na poziomie użytkownika (jeden poziom)
AH_KOD_9AH_KOD_10Umiejętności Autohand na poziomie użytkownika (rekurencyjne)
AH_KOD_11AH_KOD_12Umiejętności Claude na poziomie projektu (jeden poziom)
AH_KOD_13AH_KOD_14Umieję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...
PoleWymaganeMaksymalna długośćOpis
AH_KOD_0Tak64 znakiMałe litery alfanumeryczne, tylko z łącznikami
AH_KOD_1Tak1024 znakiKrótki opis umiejętności
AH_KOD_2Nie-Identyfikator licencji (np. MIT, Apache-2.0)
AH_KOD_3Nie500 znakówUwagi dotyczące zgodności
AH_KOD_4Nie-Rozdzielana spacjami lista dozwolonych narzędzi
AH_KOD_5Nie-Dodatkowe metadane typu klucz-wartość

Przedrostki wejściowe

Autohand obsługuje specjalne przedrostki w wierszu poleceń:

PrzedrostekOpisPrzykład
AH_KOD_6Polecenia z ukośnikiem/help, /model, /quit, /exit
AH_KOD_11Wzmianki o plikach (autouzupełnianie)AH_KOD_12
AH_KOD_13Wzmianki o umiejętnościach (autouzupełnianie)$frontend-design, $code-review
AH_KOD_16Uruchom 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

PolecenieOpis
AH_KOD_26Lista wszystkich dostępnych umiejętności
AH_KOD_27Aktywuj umiejętność na bieżącą sesję
AH_KOD_28Dezaktywuj umiejętność
AH_KOD_29Pokaż szczegółowe informacje o umiejętnościach
AH_KOD_30Przeglądaj i instaluj z rejestru społeczności
AH_KOD_31Zainstaluj umiejętność społeczności według ślimaka
AH_KOD_32Przeszukaj rejestr umiejętności społeczności
AH_KOD_33Pokaż popularne umiejętności społeczności
AH_KOD_34Odinstaluj umiejętność społeczności
AH_KOD_35Utwórz nową umiejętność interaktywnie
AH_KOD_36Oceń umiejętność społeczności

/learn — Doradca ds. umiejętności oparty na LLM

PolecenieOpis
AH_KOD_38Przeanalizuj projekt i zarekomenduj umiejętności (szybki skan)
AH_KOD_39Dogłębne skanowanie projektu (odczytuje pliki źródłowe) w celu uzyskania bardziej ukierunkowanych wyników
AH_KOD_40Ponowna analiza projektu i regeneracja przestarzałych umiejętności wygenerowanych w ramach LLM

/learn wykorzystuje dwufazowy przepływ LLM:

  1. 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).
  2. 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 update moż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:

  1. Przeanalizuj strukturę swojego projektu (pakiet.json, wymagania.txt itp.)
  2. Wykrywaj języki, struktury i wzorce
  3. Wygeneruj 3 odpowiednie umiejętności, korzystając z LLM
  4. 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"
  }
}
PoleWpiszDomyślneOpis
AH_KOD_0ciągAH_KOD_1Punkt końcowy API
AH_KOD_2ciąg-Sekret zespołu/firmy dotyczący funkcji współdzielonych

Można również ustawić za pomocą zmiennych środowiskowych:

  • AUTOHAND_API_URLapi.baseUrl
  • AUTOHAND_SECRETapi.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"
  }
}
PoleWpiszDomyślneOpis
AH_KOD_0ciąg-Token uwierzytelniający dla dostępu API
AH_KOD_1obiekt-Uwierzytelnione informacje o użytkowniku
AH_KOD_2ciąg-Identyfikator użytkownika
AH_KOD_3ciąg-Adres e-mail użytkownika
AH_KOD_4ciąg-Wyświetlana nazwa użytkownika
AH_KOD_5ciąg-Adres URL awatara użytkownika (opcjonalnie)
AH_KOD_6cią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
  }
}
PoleWpiszDomyślneOpis
AH_KOD_0wartość logicznaAH_KOD_1Włącz funkcje umiejętności społeczności
AH_KOD_2wartość logicznaAH_KOD_3Pokaż sugestie dotyczące umiejętności przy uruchomieniu, gdy nie istnieją żadne umiejętności dostawcy
AH_KOD_4wartość logicznaAH_KOD_5Automatycznie 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
  }
}
PoleWpiszDomyślneOpis
AH_KOD_0wartość logicznaAH_KOD_1Włą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
  }
}
PoleWpiszDomyślneOpis
AH_KOD_0wartość logicznatrue (zalogowany)Włącz/wyłącz synchronizację ustawień
AH_KOD_2numerAH_KOD_3Interwał synchronizacji w milisekundach (domyślnie: 5 minut)
AH_KOD_4ciąg[]AH_KOD_5Wzory globalne do wykluczenia z synchronizacji
AH_KOD_6wartość logicznaAH_KOD_7Synchronizuj dane telemetryczne (wymaga zgody użytkownika)
AH_KOD_8wartość logicznaAH_KOD_9Synchronizuj 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: true na synchronizację
  • Dane zwrotne - Ustaw sync.includeFeedback: true na 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

  1. Przy uruchomieniu: Jeśli jesteś zalogowany, usługa synchronizacji uruchomi się automatycznie
  2. Co 5 minut: Ustawienia są porównywane z danymi przechowywanymi w chmurze
  3. Chmura wygrywa: Najpierw pobierane są zmiany zdalne
  4. Przesłanie lokalne: Przesyłane są nowe zmiany lokalne
  5. 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

PoleWpiszWymaganeDomyślneOpis
AH_KOD_7AH_KOD_8Tak-Unikalny identyfikator serwera
AH_KOD_9AH_KOD_10 | AH_KOD_11 | AH_KOD_12Tak-Rodzaj transportu
AH_KOD_13AH_KOD_14Tak (stdio)-Polecenie uruchomienia procesu serwera
AH_KOD_15AH_KOD_16NieAH_KOD_17Argumenty polecenia
AH_KOD_18AH_KOD_19Tak (sse/http)-Adres URL punktu końcowego serwera
AH_KOD_20AH_KOD_21NieAH_KOD_22Niestandardowe nagłówki HTTP dla transportu http/sse (np. tokeny uwierzytelniające)
AH_KOD_23AH_KOD_24NieAH_KOD_25Zmienne środowiskowe przekazane do serwera
AH_KOD_26AH_KOD_27NieAH_KOD_28Czy łączyć się automatycznie przy uruchomieniu

Serwery łączą się asynchronicznie w tle podczas uruchamiania, nie blokując monitu. Użyj /mcp do interaktywnego zarządzania serwerami lub /mcp add do 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

PoleWpiszDomyślneOpis
AH_KOD_1wartość logicznaAH_KOD_2Włącz/wyłącz wszystkie hooki globalnie
AH_KOD_3tablicaAH_KOD_4Tablica definicji haków

Definicja haka

PoleWpiszWymaganeDomyślneOpis
AH_KOD_5ciągTak-Wydarzenie, do którego można się podłączyć
AH_KOD_6ciągTak-Polecenie powłoki do wykonania
AH_KOD_7ciągNie-Opis wyświetlacza /hooks
AH_KOD_9wartość logicznaNieAH_KOD_10Czy hak jest aktywny
AH_KOD_11numerNieAH_KOD_12Limit czasu w milisekundach
AH_KOD_13wartość logicznaNieAH_KOD_14Uruchom bez blokowania
AH_KOD_15obiektNie-Filtruj według narzędzia lub ścieżki

Zdarzenia związane z hakami

WydarzenieKiedy zwolniony
AH_KOD_16Przed wykonaniem dowolnego narzędzia
AH_KOD_17Po zakończeniu działania narzędzia
AH_KOD_18Kiedy plik jest tworzony/modyfikowany/usunięty
AH_KOD_19Przed wysłaniem do LLM
AH_KOD_20Po odpowiedzi LLM
AH_KOD_21Kiedy wystąpi błąd

Zmienne środowiskowe

Po uruchomieniu hooków dostępne są następujące zmienne środowiskowe:

ZmiennaOpis
AH_KOD_22Nazwa wydarzenia
AH_KOD_23Ścieżka główna obszaru roboczego
AH_KOD_24Nazwa narzędzia (zdarzenia narzędzia)
AH_KOD_25Argumenty narzędzi zakodowane w formacie JSON
AH_KOD_26prawda/fałsz (narzędzie końcowe)
AH_KOD_27Ścieżka pliku (zmodyfikowany plik)
AH_KOD_28Wykorzystane 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"
  }
}
KluczWpiszDomyślneOpis
AH_KOD_0AH_KOD_1Zainstalowany identyfikator rozszerzenia Chrome do bezpośredniego przekazywania
AH_KOD_2AH_KOD_3AH_KOD_4Uruchom most przeglądarki automatycznie za pomocą interfejsu CLI
AH_KOD_5AH_KOD_6AH_KOD_7Preferowana przeglądarka Chromium: auto, chrome, chromium, brave, edge
AH_KOD_13AH_KOD_14Katalog danych użytkownika przeglądarki, aby wybrać odpowiedni profil
AH_KOD_15AH_KOD_16Nazwa katalogu profilu przeglądarki (np. "Default", "Profile 1")
AH_KOD_19AH_KOD_20Zastę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

FlagaOpis
AH_KOD_0Wyprowadź bieżącą wersję
AH_KOD_1Uruchom pojedynczą instrukcję w trybie poleceń
AH_KOD_2Zastąp katalog główny obszaru roboczego
AH_KOD_3Użyj niestandardowego pliku konfiguracyjnego
AH_KOD_4Zastąp model
AH_KOD_5Ustaw temperaturę pobierania próbek (0-1)
AH_KOD_6Ustaw głębokość myślenia/rozumowania (brak, normalna, rozszerzona)
AH_KOD_7Monity automatycznego potwierdzenia
AH_KOD_8Podgląd bez wykonywania
AH_KOD_9Włącz szczegółowe wyniki debugowania
AH_KOD_10Minimalny tryb jawny; ustawia również AUTOHAND_CODE_SIMPLE=1 i wyłącza polecenia ukośnika

Uprawnienia i bezpieczeństwo

FlagaOpis
AH_KOD_12Brak monitów o zatwierdzenie
AH_KOD_13Odmawiaj niebezpiecznych operacji
AH_KOD_14Wyświetl aktualne ustawienia uprawnień i wyjdź
AH_KOD_15Wyłącz uwierzytelnione wylogowywanie w stanie bezczynności dla długotrwałych sesji agenta
AH_KOD_16Automatyczne zatwierdzanie wywołań narzędzi pasujących do wzorca (np. allow:read,write lub deny:delete)
AH_KOD_19Limit czasu w sekundach dla trybu automatycznego zatwierdzania

Git i drzewo pracy

FlagaOpis
AH_KOD_20Uruchom sesję w izolowanym drzewie roboczym git (opcjonalna nazwa drzewa roboczego/oddziału)
AH_KOD_21Uruchom w dedykowanej sesji tmux (oznacza --worktree; nie można używać z --no-worktree)
AH_KOD_24Wyłącz izolację drzewa roboczego git w trybie automatycznym
AH_KOD_25Automatyczne zatwierdzanie zmian po ukończeniu zadań
AH_KOD_26Wygeneruj łatkę git bez stosowania zmian
AH_KOD_27Plik wyjściowy łatki (używany z --patch)

Tryb automatyczny

FlagaOpis
AH_KOD_0Włącz interaktywny tryb automatyczny lub rozpocznij samodzielną pętlę z wbudowanym zadaniem
AH_KOD_1Maksymalna liczba iteracji w trybie automatycznym (domyślnie: 50)
AH_KOD_2Tekst znacznika zakończenia (domyślnie: „GOTOWE”)
AH_KOD_3Git zatwierdza co N iteracji (domyślnie: 5)
AH_KOD_4Maksymalny czas działania w minutach (domyślnie: 120)
AH_KOD_5Maksymalny koszt API w dolarach (domyślnie: 10)
AH_KOD_6Po zakończeniu trybu automatycznego przejdź bezpośrednio do trybu interaktywnego (tylko TTY)

Umiejętności i nauka

FlagaOpis
AH_KOD_7Automatyczne generowanie umiejętności na podstawie analizy projektu (patrz także /learn dla interaktywnego doradcy)
AH_KOD_9Uruchom doradcę umiejętności /learn w sposób nieinteraktywny (przeanalizuj i zainstaluj zalecane umiejętności)
AH_KOD_11Ponowna analiza projektu i regeneracja przestarzałych umiejętności wygenerowanych przez LLM w sposób nieinteraktywny
AH_KOD_12Zainstaluj umiejętność społeczności (otwiera przeglądarkę, jeśli nie podano nazwy)
AH_KOD_13Zainstaluj umiejętność na poziomie projektu (za pomocą --skill-install)

Uwierzytelnianie i konto

FlagaOpis
AH_KOD_14Zaloguj się na swoje konto Autohand
AH_KOD_15Wyloguj się ze swojego konta Autohand
AH_KOD_16Włącz/wyłącz synchronizację ustawień (domyślnie: true dla zalogowanych użytkowników)

Konfiguracja i informacje

FlagaOpis
AH_KOD_17Uruchom kreatora instalacji, aby skonfigurować lub ponownie skonfigurować Autohand
AH_KOD_18Pokaż informacje o Autohand (wersja, linki, informacje o wkładzie)
AH_KOD_19Prześlij opinię zespołowi Autohand
AH_KOD_20Skonfiguruj ustawienia Autohand (tak samo jak /settings w trybie interaktywnym)

Obszar roboczy i katalogi

FlagaOpis
AH_KOD_0Dodaj dodatkowe katalogi do zakresu obszaru roboczego (można ich używać wielokrotnie)

Tryby pracy

FlagaOpis
AH_KOD_1Tryb uruchamiania: interaktywny (domyślny), rpc lub acp
AH_KOD_2Skrót od --mode acp (protokół klienta agenta przez stdio)
AH_KOD_3Tryb wyświetlania zespołu: automatyczny, w trakcie lub tmux

Interfejs użytkownika i język

FlagaOpis
AH_KOD_4Ustaw język wyświetlania (np. en, id, zh-cn, fr, de, ja)
AH_KOD_5Ustaw dostawcę wyszukiwania internetowego (google, odważny, duckduckgo, równoległy)
AH_KOD_6Włącz zagęszczanie kontekstu (domyślnie: włączone)
AH_KOD_7Wyłącz zagęszczanie kontekstu

Integracja z Chrome

FlagaOpis
AH_KOD_8Włącz integrację z przeglądarką Chrome (tak samo jak /chrome)
AH_KOD_10Wyłącz integrację przeglądarki Chrome

Monit systemowy

FlagaOpis
AH_KOD_11Zastąp cały monit systemowy (ciąg wbudowany lub ścieżkę pliku)
AH_KOD_12Dołącz do zachęty systemowej (ciąg wbudowany lub ścieżka pliku)
AH_KOD_13Zastąp cały monit systemowy (ciąg wbudowany lub ścieżkę pliku)
AH_KOD_14Zastąp cały monit systemowy zawartością pliku
AH_KOD_15Dołącz do zachęty systemowej (ciąg wbudowany lub ścieżka pliku)
AH_KOD_16Dołącz zawartość pliku do zachęty systemowej
AH_KOD_17Załaduj jawny plik konfiguracyjny MCP
AH_KOD_18Załaduj jawnych agentów wbudowanych JSON lub katalog jawnych agentów
AH_KOD_19Załaduj jawny katalog wtyczek/meta-narzędzi

Komendy przełączania eksperymentów

PolecenieOpis
AH_KOD_20Wyświetla identyfikatory funkcji lokalnych i zdalnych, źródło, etap cyklu życia i stan
AH_KOD_0Pokaż jeden przełącznik funkcji, ścieżkę konfiguracji lub zdalne metadane i stan
AH_KOD_1Pobierz flagi funkcji zdalnych z interfejsu API Autohand
AH_KOD_2Włącz przełącznik funkcji oparty na konfiguracji
AH_KOD_3Wyłą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ą

PolecenieOpis
AH_KOD_19Wyjdź z bieżącej sesji
AH_KOD_20Wyjdź z bieżącej sesji
AH_KOD_21Rozpocznij nową rozmowę (z ekstrakcją pamięci)
AH_KOD_22Wyczyść rozmowę dzięki automatycznemu wyodrębnianiu pamięci
AH_KOD_23Pokaż szczegóły bieżącej sesji
AH_KOD_24Lista poprzednich sesji
AH_KOD_25Wznów poprzednią sesję
AH_KOD_26Przeglądaj historię sesji z paginacją
AH_KOD_27Cofnij zmiany git i ostatnią turę
AH_KOD_28Eksportuj sesję do Markdown/JSON/HTML
AH_KOD_29Udostępnij bieżącą sesję
AH_KOD_30Pokaż status sesji
AH_KOD_31Pokaż model, dostawcę, kontekst i limity użytkowania

Model i dostawca

PolecenieOpis
AH_KOD_32Przełącz lub skonfiguruj model LLM
AH_KOD_33Kompaktuj kontekst ręcznie

Konfiguracja projektu

PolecenieOpis
AH_KOD_34Utwórz plik AGENTS.md w bieżącym katalogu
AH_KOD_36Uruchom kreatora instalacji, aby skonfigurować Autohand
AH_KOD_37Dodaj katalogi do zakresu obszaru roboczego

Agenci i zespoły

PolecenieOpis
AH_KOD_38Lista dostępnych sub-agentów
AH_KOD_39Utwórz nowego agenta za pomocą kreatora
AH_KOD_40Otwórz/zarządzaj samodzielnym środowiskiem wykonawczym Autohand Squad
AH_KOD_41Zarządzaj zespołem do pracy równoległej
AH_KOD_42Zarządzaj zadaniami w zespole
AH_KOD_43Wyślij wiadomość do kolegi z drużyny

Umiejętności

PolecenieOpis
AH_KOD_0Lista i zarządzanie umiejętnościami
AH_KOD_1Utwórz nową umiejętność
AH_KOD_2Naucz się i zainstaluj zalecane umiejętności

Pamięć i ustawienia

PolecenieOpis
AH_KOD_3Przeglądaj i zarządzaj zapisanymi wspomnieniami
AH_KOD_4Skonfiguruj ustawienia Autohand
AH_KOD_5Skonfiguruj pola linii stanu kompozytora
AH_KOD_6Przełącz przełączniki funkcji eksperymentalnych
AH_KOD_7Synchronizuj ustawienia między urządzeniami
AH_KOD_8Importuj sesje, ustawienia, MCP, pamięć, umiejętności i zaczepy z obsługiwanych agentów

Uprawnienia i haki

PolecenieOpis
AH_KOD_9Zarządzaj uprawnieniami narzędzi
AH_KOD_10Zarządzaj hakami cyklu życia

Uwierzytelnianie

PolecenieOpis
AH_KOD_11Uwierzytelnij się za pomocą API Autohand
AH_KOD_12Wyloguj się z konta Autohand

Narzędzia i narzędzia

PolecenieOpis
AH_KOD_13Przeszukaj sieć
AH_KOD_14Lista dostępnych formaterów kodu
AH_KOD_15Lista dostępnych lintersów
AH_KOD_16Generuj skrypty uzupełniania powłoki
AH_KOD_17Utwórz plan wdrożenia
AH_KOD_18Wykonaj przegląd kodu
AH_KOD_19Przejrzyj żądanie ściągnięcia

Integracja IDE

PolecenieOpis
AH_KOD_20Wykryj i połącz się z działającymi IDE

MCP (protokół kontekstu modelu)

PolecenieOpis
AH_KOD_21Interaktywny menedżer serwerów MCP

Automatyzacja

PolecenieOpis
AH_KOD_22Uruchom autonomiczny tryb kodowania
AH_KOD_23Zaplanuj powtarzające się zadania
AH_KOD_24Przełącz tryb yolo (narzędzia automatycznego zatwierdzania)

Integracja z Chrome

PolecenieOpis
AH_KOD_25Włącz integrację przeglądarki Chrome

Interfejs użytkownika i wyświetlacz

PolecenieOpis
AH_KOD_26Wyświetl dostępne polecenia i wskazówki ukośnika
AH_KOD_27Pokaż informacje o Autohand
AH_KOD_28Zmień motyw kolorystyczny
AH_KOD_29Zmień język wyświetlania
AH_KOD_30Wyś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

FlagaOpis
AH_KOD_0Zastąp cały monit systemowy
AH_KOD_1Dołą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, .md lub .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:

  1. --sys-prompt ma pełne pierwszeństwo
  2. --append-sys-prompt jest 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życiaPolecana flaga
Niestandardowa osobowość agentaAH_KOD_0
Minimalne instrukcjeAH_KOD_1
Dodaj wytyczne zespołuAH_KOD_2
Dodaj konwencje projektuAH_KOD_3
Integracja z systemami zewnętrznymiAH_KOD_4
Specjalistyczne debugowanieAH_KOD_5

Obsługa błędów

ScenariuszZachowanie
Pusta wartośćBłąd
Nie znaleziono plikuTraktowane jako ciąg znaków
Pusty plikBłąd
Plik > 1 MBBłąd
Odmowa pozwoleniaBłąd
Ścieżka kataloguBłą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)