AIGuardian
Back to Home

Configuration

AIGuardian Documentation

Loading update info...
View on GitHub

Configuration Guide

AIGuardian can be customized to fit your specific project needs through configuration files and command-line options. This guide explains all available configuration options.

Configuration File

AIGuardian looks for configuration in the following locations (in order of precedence):

  1. 1. Custom path specified with --config option
  1. 2. .aiguardianrc.js or .aiguardianrc.json in the current directory
  1. 3. aiguardian.config.js in the current directory
  1. 4. .aiguardianrc.js or .aiguardianrc.json in the user's home directory
  2. Configuration Format

    javascript
    // aiguardian.config.js
    module.exports = {
      projectType: 'auto', // or 'javascript', 'typescript', 'python', 'java'
      tasks: {
        include: ['clean-temp', 'format-code'],
        exclude: ['js-to-ts'],
      },
      backup: {
        enabled: true,
        directory: './backups',
        maxBackups: 5,
      },
      ignore: ['/.min.js', '/vendor/*'],
      include: [],
      concurrency: 4,
      formatters: {
        javascript: {
          semicolons: true,
          tabWidth: 2,
          singleQuote: true,
        },
        python: {
          lineLength: 88,
        },
      },
    };
    

    JSON Format

    json
    // .aiguardianrc.json
    {
      "projectType": "auto",
      "tasks": {
        "include": ["clean-temp", "format-code"],
        "exclude": ["js-to-ts"]
      },
      "backup": {
        "enabled": true,
        "directory": "./backups",
        "maxBackups": 5
      },
      "ignore": ["/.min.js", "/vendor/*"],
      "include": [],
      "concurrency": 4,
      "formatters": {
        "javascript": {
          "semicolons": true,
          "tabWidth": 2,
          "singleQuote": true
        },
        "python": {
          "lineLength": 88
        }
      }
    }
    

    Configuration Options

    Project Options

    OptionDescriptionDefault
    projectTypeProject type or 'auto' for detection'auto'
    rootDirProject root directoryCurrent directory

    Task Options

    OptionDescriptionDefault
    ------------------------------
    tasks.includeArray of task IDs to include[] (all tasks)
    tasks.excludeArray of task IDs to exclude[] (no exclusions)
    tasks.orderCustom execution order for tasksnull (default order)

    Backup Options

    OptionDescriptionDefault
    ------------------------------
    backup.enabledEnable/disable backupstrue
    backup.directoryDirectory for backups'./aiguardian-backups'
    backup.maxBackupsMaximum number of backups to keep5
    backup.compressionLevelCompression level (0-9)6

    File Selection Options

    OptionDescriptionDefault
    ------------------------------
    ignorePatterns to ignore (in addition to .gitignore)[]
    includePatterns to force include[]

    Performance Options

    OptionDescriptionDefault
    ------------------------------
    concurrencyMaximum number of concurrent tasks4
    | timeout | Task timeout in milliseconds | 60000 |

    Formatter Options

    Each language can have its own formatter configuration:

    javascript
    formatters: {
      javascript: {
        // ESLint/Prettier compatible options
        semicolons: true,
        tabWidth: 2,
        singleQuote: true,
      },
      python: {
        // Black compatible options
        lineLength: 88,
      },
      java: {
        // Google Java Format compatible options
        aosp: false, // Use AOSP style instead of Google style
      },
    }
    

    Environment Variables

    Environment variables can override configuration file settings:

    VariableDescription
    AIGUARDIAN_CONFIGPath to configuration file
    AIGUARDIAN_PROJECT_TYPEProject type
    AIGUARDIAN_BACKUP_DIRBackup directory
    AIGUARDIAN_NO_BACKUPSet to true to disable backups
    AIGUARDIAN_CONCURRENCYMaximum concurrency
    | AIGUARDIAN_VERBOSE | Enable verbose output |

    Command-Line Overrides

    Command-line options take precedence over configuration files and environment variables. See the Command Reference for all available options.

Was this page helpful?