Skip to content

Latest commit

 

History

History
2296 lines (1916 loc) · 87.7 KB

File metadata and controls

2296 lines (1916 loc) · 87.7 KB

Autohand Informacje o konfiguracji

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

Zmienna Opis Przykład
AH_KOD_0 Katalog bazowy dla wszystkich danych Autohand AH_KOD_1
AH_KOD_2 Niestandardowa ścieżka pliku konfiguracyjnego AH_KOD_3
AH_KOD_4 Punkt końcowy API (zastępuje konfigurację) AH_KOD_5
AUTOHAND_AUTH_URL Adres źródłowy logowania i synchronizacji konta (niezależny od AUTOHAND_API_URL) https://autohand.ai
AH_KOD_6 Tajny klucz firmy/zespołu AH_KOD_7
AH_KOD_8 Adres URL wywołania zwrotnego pozwolenia (eksperymentalny) AH_KOD_9
AH_KOD_10 Limit czasu dla wywołania zwrotnego pozwolenia w ms AH_KOD_11
AH_KOD_12 Uruchom w trybie nieinteraktywnym AH_KOD_13
AH_KOD_14 Automatyczne potwierdzanie wszystkich monitów AH_KOD_15
AH_KOD_16 Wyłącz baner startowy AH_KOD_17
AH_KOD_18 Przesyłaj strumieniowo dane wyjściowe narzędzia w czasie rzeczywistym AH_KOD_19
AH_KOD_20 Włącz rejestrowanie debugowania AH_KOD_21
AH_KOD_22 Ustaw poziom głębi rozumowania AH_KOD_23
AH_KOD_24 Identyfikator klienta/edytora (ustawiony przez rozszerzenia ACP) AH_KOD_25
AH_KOD_26 Wersja klienta (ustawiana przez rozszerzenia ACP) AH_KOD_27
AH_KOD_28 Flaga wykrycia środowiska (ustawiana automatycznie) AH_KOD_29
AH_KOD_30 Włącz tryb pusty bez przekazywania --bare AH_KOD_32

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.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ś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-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"
  }
}
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:\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
  }
}
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 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,
    "idleTimeoutMs": 3600000,
    "debug": false
  }
}
Pole Wpisz Domyślne Opis
AH_KOD_0 numer AH_KOD_1 Maksymalna liczba iteracji narzędzia na żądanie użytkownika przed zatrzymaniem
AH_KOD_2 wartość logiczna AH_KOD_3 Zezwalaj użytkownikom na wpisywanie i kolejkowanie żądań podczas pracy agenta
AH_KOD_4 wartość logiczna AH_KOD_5 Buforuj lokalny wybór schematu narzędzia na obrót dla równoważnych danych wejściowych dotyczących wyboru narzędzia
AH_KOD_6 wartość logiczna AH_KOD_7 Wyodrębniaj i zapisuj trwałe wspomnienia użytkowników/projektów po udanych interaktywnych turach
idleLogoutEnabled wartość logiczna true Wyloguj uwierzytelnione sesje interaktywne po upływie limitu czasu bezczynności
idleTimeoutMs numer 3600000 Milisekundy bezczynności przed wylogowaniem uwierzytelnionej sesji (60 minut)
AH_KOD_10 wartość logiczna AH_KOD_11 Włącz szczegółowe dane wyjściowe debugowania (loguje stan wewnętrzny agenta na stderr)

Świadomość równoczesnych sesji

{
  "sessions": {
    "awareness": "warn"
  }
}
Pole Typ Domyślnie Opis
awareness ciąg "warn" passive pokazuje inne sesje, warn dodatkowo ostrzega o ryzykownych operacjach Git i kolizjach plików, a coordinate prosi o potwierdzenie przed zapisem ścieżki zajętej przez inną aktywną sesję

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.

Ustaw idleTimeoutMs na dodatni czas w milisekundach, aby zmienić okres bezczynności. Wartość domyślna to 3600000 (60 minut); nieprawidłowe wartości używają wartości domyślnej.

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_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.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

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:

  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"
  }
}
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_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"
  }
}
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: 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.

Zdalne nazwy plików są akceptowane wyłącznie jako względne ścieżki POSIX w ramach włączonych kategorii synchronizacji. Synchronizacja odrzuca przechodzenie poza katalog, ścieżki bezwzględne lub w stylu Windows, zduplikowane albo puste segmenty oraz miejsca docelowe przekierowane przez dowiązania symboliczne poza włączony katalog główny.

Token logowania aplikacji jest wysyłany w nagłówku Authorization wyłącznie do adresów URL transferu o tym samym pochodzeniu co skonfigurowane API synchronizacji. Wstępnie podpisane adresy HTTPS z innego źródła nigdy nie otrzymują tego tokenu; niezabezpieczone lub nieprawidłowe adresy między źródłami są odrzucane.

Co jest zaszyfrowane:

  • Pola o nazwach apiKey
  • Pola kończące się na Key, Token, Secret
  • Pole password

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

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 /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

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 --browser          # Start with browser bridge enabled
autohand --no-browser       # Start with browser bridge disabled

Polecenia z ukośnikiem

/browser                   # Open browser integration panel
/browser 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,
    "idleTimeoutMs": 3600000,
    "debug": false
  },
  "permissions": {
    "mode": "interactive",
    "whitelist": ["run_command:npm *", "run_command:bun *"],
    "blacklist": ["run_command:rm -rf /"],
    "rememberSession": true
  },
  "network": {
    "maxRetries": 3,
    "timeout": 30000,
    "retryDelay": 1000
  },
  "telemetry": {
    "enabled": false,
    "apiBaseUrl": "https://api.autohand.ai",
    "batchSize": 20,
    "flushIntervalMs": 60000,
    "maxQueueSize": 500,
    "maxRetries": 3,
    "enableSessionSync": true
  },
  "externalAgents": {
    "enabled": false,
    "paths": []
  },
  "api": {
    "baseUrl": "https://api.autohand.ai"
  },
  "auth": {
    "token": "your-auth-token",
    "user": {
      "id": "user-id",
      "email": "user@example.com",
      "name": "User Name"
    }
  },
  "communitySkills": {
    "enabled": true,
    "showSuggestionsOnStartup": true,
    "autoBackup": true
  },
  "share": {
    "enabled": true
  },
  "sync": {
    "enabled": true,
    "interval": 300000,
    "includeTelemetry": false,
    "includeFeedback": false
  }
}

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
  idleTimeoutMs: 3600000
  debug: false

permissions:
  mode: interactive
  whitelist:
    - "run_command:npm *"
    - "run_command:bun *"
  blacklist:
    - "run_command:rm -rf /"
  rememberSession: true

network:
  maxRetries: 3
  timeout: 30000
  retryDelay: 1000

telemetry:
  enabled: false
  apiBaseUrl: https://api.autohand.ai
  batchSize: 20
  flushIntervalMs: 60000
  maxQueueSize: 500
  maxRetries: 3
  enableSessionSync: true

externalAgents:
  enabled: false
  paths: []

api:
  baseUrl: https://api.autohand.ai

auth:
  token: your-auth-token
  user:
    id: user-id
    email: user@example.com
    name: User Name

communitySkills:
  enabled: true
  showSuggestionsOnStartup: true
  autoBackup: true

share:
  enabled: true

sync:
  enabled: true
  interval: 300000
  includeTelemetry: false
  includeFeedback: false

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
idleTimeoutMs = 3600000
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 przeglądarką

Flaga Opis
--browser Włącz integrację z przeglądarką (tak samo jak /browser)
--no-browser Wyłącz integrację z przeglądarką

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 przeglądarką

Polecenie Opis
/browser Włącz integrację z przeglądarką

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, .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ż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)