Gaunt Sloth Assistant
    Preparing search index...

    Interface RawGthConfig

    Raw, unprocessed Gaunt Sloth config.

    interface RawGthConfig {
        builtInTools?: string[];
        builtInToolsConfig?: BuiltInToolsConfig;
        canInterruptInferenceWithEsc: boolean;
        commands?: {
            ask?: {
                builtInTools?: string[];
                filesystem?: string[] | "read" | "all" | "none";
            };
            chat?: {
                builtInTools?: string[];
                filesystem?: string[]
                | "read"
                | "all"
                | "none";
            };
            code?: {
                builtInTools?: string[];
                devTools?: GthDevToolsConfig;
                filesystem?: string[]
                | "read"
                | "all"
                | "none";
            };
            pr?: {
                builtInTools?: string[];
                contentProvider?: string;
                filesystem?: string[]
                | "read"
                | "all"
                | "none";
                logWorkForReviewInSeconds?: number;
                requirementsProvider?: string;
            };
            review?: {
                builtInTools?: string[];
                contentProvider?: string;
                filesystem?: string[]
                | "read"
                | "all"
                | "none";
                requirementsProvider?: string;
            };
        };
        contentProvider: string;
        contentProviderConfig?: Record<string, unknown>;
        customToolsConfig?: CustomToolsConfig;
        debugLog?: boolean;
        filesystem: string[] | "read" | "all" | "none";
        hooks?: {
            afterAgentInit?: RunnerHook | RunnerHook[];
            beforeAgentInit?: RunnerHook | RunnerHook[];
            beforeProcessMessages?: BeforeMessageHook | BeforeMessageHook[];
            createAgent?: (config: GthConfig) => Promise<GthAgentInterface>;
            createRunnableConfig?: (
                config: GthConfig,
            ) => Promise<RunnableConfig<Record<string, any>>>;
            postModelHook?: LangChainHook;
            preModelHook?: LangChainHook;
        };
        identityProfile?: string;
        includeCurrentDateAfterGuidelines: boolean;
        llm: LLMConfig;
        mcpServers?: Record<
            string,
            | {
                args: string[];
                command: string;
                cwd?: string;
                encoding?: string;
                env?: Record<string, string>;
                restart?: { delayMs?: number; enabled?: boolean; maxAttempts?: number };
                stderr?: "pipe" | "overlapped" | "ignore" | "inherit";
                transport?: "stdio";
                type?: "stdio";
            } & {
                defaultToolTimeout?: number;
                outputHandling?: | "content"
                | "artifact"
                | {
                    audio?: "content"
                    | "artifact";
                    image?: "content" | "artifact";
                    resource?: "content" | "artifact";
                    text?: "content" | "artifact";
                };
            }
            | {
                authProvider?: OAuthClientProvider;
                automaticSSEFallback?: boolean;
                headers?: Record<string, string>;
                reconnect?: { delayMs?: number; enabled?: boolean; maxAttempts?: number };
                transport?: "http" | "sse";
                type?: "http" | "sse";
                url: string;
            } & {
                defaultToolTimeout?: number;
                outputHandling?: | "content"
                | "artifact"
                | {
                    audio?: "content"
                    | "artifact";
                    image?: "content" | "artifact";
                    resource?: "content" | "artifact";
                    text?: "content" | "artifact";
                };
            },
        >;
        modelDisplayName?: string;
        organization?: { locale?: string; name?: string; timezone?: string };
        postModelHook?: LangChainHook | "skip";
        preModelHook?: LangChainHook | "skip";
        projectGuidelines: string;
        projectReviewInstructions: string;
        requirementsProvider: string;
        requirementsProviderConfig?: Record<string, unknown>;
        streamOutput: boolean;
        streamSessionInferenceLog: boolean;
        tools?:
            | StructuredToolInterface<ToolInputSchemaBase, any, any>[]
            | BaseToolkit[]
            | ServerTool[];
        useColour: boolean;
        writeOutputToFile: string | boolean;
    }

    Hierarchy

    Index

    Properties

    builtInTools?: string[]
    builtInToolsConfig?: BuiltInToolsConfig
    canInterruptInferenceWithEsc: boolean

    Allow inference to be interrupted with esc. Only has an effect in TTY mode.

    commands?: {
        ask?: {
            builtInTools?: string[];
            filesystem?: string[] | "read" | "all" | "none";
        };
        chat?: {
            builtInTools?: string[];
            filesystem?: string[]
            | "read"
            | "all"
            | "none";
        };
        code?: {
            builtInTools?: string[];
            devTools?: GthDevToolsConfig;
            filesystem?: string[]
            | "read"
            | "all"
            | "none";
        };
        pr?: {
            builtInTools?: string[];
            contentProvider?: string;
            filesystem?: string[]
            | "read"
            | "all"
            | "none";
            logWorkForReviewInSeconds?: number;
            requirementsProvider?: string;
        };
        review?: {
            builtInTools?: string[];
            contentProvider?: string;
            filesystem?: string[]
            | "read"
            | "all"
            | "none";
            requirementsProvider?: string;
        };
    }
    contentProvider: string

    Content Provider. Provider used to fetch content (usually diff) for review or pr command.

    DEFAULT_CONFIG#contentProvider

    contentProviderConfig?: Record<string, unknown>
    customToolsConfig?: CustomToolsConfig
    debugLog?: boolean

    Log messages and events to gaunt-sloth.log, use llm.verbose or gth --verbose as more intrusive option, setting verbose to LangChain / LangGraph

    filesystem: string[] | "read" | "all" | "none"
    hooks?: {
        afterAgentInit?: RunnerHook | RunnerHook[];
        beforeAgentInit?: RunnerHook | RunnerHook[];
        beforeProcessMessages?: BeforeMessageHook | BeforeMessageHook[];
        createAgent?: (config: GthConfig) => Promise<GthAgentInterface>;
        createRunnableConfig?: (
            config: GthConfig,
        ) => Promise<RunnableConfig<Record<string, any>>>;
        postModelHook?: LangChainHook;
        preModelHook?: LangChainHook;
    }

    Hooks are only available on JS config

    Type Declaration

    • OptionalafterAgentInit?: RunnerHook | RunnerHook[]

      After agent init.

    • OptionalbeforeAgentInit?: RunnerHook | RunnerHook[]
    • OptionalbeforeProcessMessages?: BeforeMessageHook | BeforeMessageHook[]
    • OptionalcreateAgent?: (config: GthConfig) => Promise<GthAgentInterface>
    • OptionalcreateRunnableConfig?: (config: GthConfig) => Promise<RunnableConfig<Record<string, any>>>
    • OptionalpostModelHook?: LangChainHook

      LangGraph postModelHook Provide 'skip' if you don't need default hook.

    • OptionalpreModelHook?: LangChainHook

      LangGraph preModelHook Provide 'skip' if you don't need default hook.

    identityProfile?: string

    Separate identity profile. May include separate identity, guidelines and command protocol, making gsloth behave as an agent different from default profile behaviour. for example, devops profile to detect changes such as properties and environment variables. Custom config can still win over this one. This setting requires .gsloth/.gsloth-settings directory to exist.

    includeCurrentDateAfterGuidelines: boolean

    Whether to include the current date in the project review instructions or not.

    mcpServers?: Record<
        string,
        | {
            args: string[];
            command: string;
            cwd?: string;
            encoding?: string;
            env?: Record<string, string>;
            restart?: { delayMs?: number; enabled?: boolean; maxAttempts?: number };
            stderr?: "pipe" | "overlapped" | "ignore" | "inherit";
            transport?: "stdio";
            type?: "stdio";
        } & {
            defaultToolTimeout?: number;
            outputHandling?: | "content"
            | "artifact"
            | {
                audio?: "content"
                | "artifact";
                image?: "content" | "artifact";
                resource?: "content" | "artifact";
                text?: "content" | "artifact";
            };
        }
        | {
            authProvider?: OAuthClientProvider;
            automaticSSEFallback?: boolean;
            headers?: Record<string, string>;
            reconnect?: { delayMs?: number; enabled?: boolean; maxAttempts?: number };
            transport?: "http" | "sse";
            type?: "http" | "sse";
            url: string;
        } & {
            defaultToolTimeout?: number;
            outputHandling?: | "content"
            | "artifact"
            | {
                audio?: "content"
                | "artifact";
                image?: "content" | "artifact";
                resource?: "content" | "artifact";
                text?: "content" | "artifact";
            };
        },
    >
    modelDisplayName?: string
    organization?: { locale?: string; name?: string; timezone?: string }

    Organisation name, locale and timezone. Only used with includeCurrentDateAfterGuidelines. timeZone and locale should be in format supported by Intl.DateTimeFormat

    postModelHook?: LangChainHook | "skip"
    preModelHook?: LangChainHook | "skip"
    projectGuidelines: string

    Path to project-specific guidelines. The default is .gsloth.guidelines.md; this config may be used to point Gaunt Sloth to a different file, for example, to AGENTS.md

    projectReviewInstructions: string
    requirementsProvider: string
    requirementsProviderConfig?: Record<string, unknown>
    streamOutput: boolean

    Stream output. Some models do not support streaming. Set value to false for them.

    DEFAULT_CONFIG#streamOutput

    streamSessionInferenceLog: boolean

    Stream session log instead of writing it when inference streaming is complete. (only works when streamOutput is true)

    tools?:
        | StructuredToolInterface<ToolInputSchemaBase, any, any>[]
        | BaseToolkit[]
        | ServerTool[]
    useColour: boolean

    Use colour in output

    writeOutputToFile: string | boolean

    Should the output be written to md file. (e.g. gth_2025-07-26_22-59-06_REVIEW.md). Can be set to false with -wn or -w0 Can be set to a specific filename or path by passing a string (e.g. -w review.md) Please note the string does not accept absolute path, but allows to exit project with .. if necessary.