Environment Variables

    Configure StructKit CLI defaults without command-line arguments.

    High Priority Variables

    STRUCTKIT_GLOBAL_SYSTEM_PROMPT

    Sets the global system prompt for OpenAI integration. CLI equivalent: --global-system-prompt

    STRUCTKIT_INPUT_STORE

    Path to the input store for template variables. Default: /tmp/structkit/input.json. CLI equivalent: --input-store

    STRUCTKIT_BACKUP_PATH

    Default backup location for file backups. CLI equivalent: --backup

    Medium Priority Variables

    STRUCTKIT_FILE_STRATEGY

    Values: overwrite, skip, append, rename, backup. Default: overwrite.

    STRUCTKIT_NON_INTERACTIVE

    Values: true, 1, yes (case-insensitive). Useful for CI/CD pipelines.

    STRUCTKIT_OUTPUT_MODE

    Values: console, file. Default: file.

    Shared Variables

    STRUCTKIT_STRUCTURES_PATH

    Path to custom structure definitions. Applies across all commands.

    STRUCTKIT_LOG_LEVEL

    Values: DEBUG, INFO, WARNING, ERROR, CRITICAL. Default: INFO.

    STRUCTKIT_SOURCES_CONFIG

    Override the user-level named sources config file. Default: $XDG_CONFIG_HOME/structkit/sources.yaml or ~/.config/structkit/sources.yaml.

    STRUCTKIT_SOURCES_CACHE

    Override the local cache directory used for git-backed sources. Default: $XDG_CACHE_HOME/structkit/sources or ~/.cache/structkit/sources.

    Precedence Rules

    1. Command-line arguments (highest priority)
    2. Environment variables
    3. Built-in defaults (lowest priority)
    Terminalbash
    export STRUCTKIT_FILE_STRATEGY="backup"
    
    # Override with CLI argument
    structkit generate --file-strategy skip my-structure ./output
    # Uses 'skip', not 'backup'

    Docker Usage

    Dockerbash
    docker run \
      -e STRUCTKIT_STRUCTURES_PATH=/custom/structures \
      -e STRUCTKIT_NON_INTERACTIVE=true \
      -e STRUCTKIT_FILE_STRATEGY=backup \
      -v $(pwd):/workdir \
      ghcr.io/httpdss/structkit:main generate my-structure /workdir/output

    CI/CD Integration

    GitHub Actionsyaml
    name: Generate Project Structure
    on: [push]
    jobs:
      generate:
        runs-on: ubuntu-latest
        env:
          STRUCTKIT_NON_INTERACTIVE: "true"
          STRUCTKIT_FILE_STRATEGY: backup
        steps:
          - uses: actions/checkout@v3
          - run: pip install structkit
          - run: structkit generate my-structure ./output