Skip to main content
Skylos uses pyproject.toml for configuration. Run skylos init to generate a configuration file with sensible defaults, or add the [tool.skylos] section to an existing file.

Configuration File

[tool.skylos]
# Quality thresholds
complexity = 10
nesting = 3
max_args = 5
max_lines = 50

# Rules to ignore (by rule ID)
ignore = []

# AI model for --fix and --audit
model = "gpt-4.1"

[tool.skylos.languages.typescript]
# Language-specific overrides
complexity = 15
nesting = 4

[tool.skylos.gate]
# Quality gate settings
fail_on_critical = true
max_security = 0
max_quality = 10
strict = false

Configuration Options

Quality Thresholds

OptionTypeDefaultDescription
complexityint10Maximum cyclomatic complexity before flagging a function
nestingint3Maximum nesting depth before flagging
max_argsint5Maximum function arguments before flagging
max_linesint50Maximum function length in lines

Analysis Options

OptionTypeDefaultDescription
ignorelist[]List of rule IDs to suppress (e.g., ["SKY-L002", "SKY-Q301"])
modelstring"gpt-4.1"LLM model for AI-powered features

Gate Configuration

The [tool.skylos.gate] section controls the quality gate behavior when using --gate:
OptionTypeDefaultDescription
fail_on_criticalbooltrueBlock deployment if CRITICAL security issues or secrets are found
max_securityint0Maximum allowed security findings before gate fails
max_qualityint10Maximum allowed quality findings before gate fails
strictboolfalseWhen true, prevents bypassing a failed gate interactively

Language-Specific Overrides

You can override global settings for specific languages under [tool.skylos.languages.<lang>]:
[tool.skylos.languages.typescript]
complexity = 15
nesting = 4
Currently supported languages for overrides: typescript.

Configuration Resolution

Skylos searches for pyproject.toml by walking up from the target path to the filesystem root. The first file containing [tool.skylos] is used. If no configuration is found, Skylos applies the built-in defaults. This approach was chosen over per-directory configuration to keep analysis consistent across monorepos while still allowing project-level customization.

Default Excluded Folders

Skylos automatically excludes common non-source directories:
__pycache__
.git
.pytest_cache
.mypy_cache
.tox
htmlcov
.coverage
build
dist
*.egg-info
venv
.venv
To see the current exclusion list:
skylos . --list-default-excludes
To disable default exclusions:
skylos . --no-default-excludes
To force-include a normally excluded folder:
skylos . --include-folder venv