Configuration

Quick Setup

Use a preset to get started fast:

# CorvidLabs preset - sets author, org, license, template repo
fledge config init --preset corvidlabs

# Default config
fledge config init

Config File

Lives under the platform config directory:

PlatformPath
macOS~/Library/Application Support/fledge/config.toml
Linux~/.config/fledge/config.toml
Windows%APPDATA%\fledge\config.toml

Sections

[defaults]

Default values for new projects:

[defaults]
author = "Your Name"
github_org = "YourOrg"
license = "MIT"
KeyWhat it doesFallback
authorDefault author namegit config user.name
github_orgDefault GitHub orgPrompted
licenseDefault licenseMIT

[templates]

Where to find templates:

[templates]
paths = ["~/my-templates", "~/work/templates"]
repos = ["CorvidLabs/fledge-templates", "myorg/templates"]
KeyWhat it does
pathsLocal directories with templates
reposGitHub repos to pull templates from (owner/repo)

[ai]

AI provider and model settings. Written by fledge ai use or fledge config set/edit:

[ai]
provider = "ollama"             # "claude" or "ollama"

[ai.claude]
model = "sonnet"               # model name passed to claude CLI

[ai.ollama]
host = "http://localhost:11434" # Ollama API endpoint (always normalized to include scheme)
model = "llama3.2:latest"       # use `fledge ai models --provider ollama` to list available models
api_key = "sk-..."             # for Ollama Cloud / authenticated endpoints
timeout_seconds = 600          # request timeout (default: 600)

Tip: Run fledge ai models --provider ollama or fledge ai models --provider claude to see available models. Use fledge ai use for an interactive picker.

KeyWhat it doesDefault
ai.providerActive LLM backendclaude
ai.claude.modelModel name for Claude CLIClaude CLI default
ai.ollama.hostOllama API endpoint URLhttp://localhost:11434
ai.ollama.modelOllama model namefirst available
ai.ollama.api_keyBearer token for authenticated endpoints(none)
ai.ollama.timeout_secondsRequest timeout in seconds600

[trust]

Extend the plugin/lane trust system without recompiling. Entries here classify as team tier, granting access to exec and network capabilities:

[trust]
orgs = ["my-company", "my-other-org"]
users = ["my-friend", "trusted-bot"]
KeyWhat it does
orgsGitHub orgs to trust at team tier
usersGitHub users to trust at team tier

Manage via CLI:

fledge config add trust.orgs my-company
fledge config add trust.users corvid-agent
fledge config remove trust.orgs my-company

Compared case-insensitively. The hardcoded official org (CorvidLabs) and built-in team members are always trusted regardless of config.

[github]

[github]
token = "ghp_..."

Token priority:

  1. FLEDGE_GITHUB_TOKEN env var
  2. GITHUB_TOKEN env var
  3. Config file
  4. gh auth token (GitHub CLI fallback)

Required token scopes:

FeatureScopes needed
Issues, PRs, CI checksrepo (or public_repo for public repos only)
Create PRs, push branchesrepo
Search templates/pluginspublic_repo
Publish templatesrepo, delete_repo (if republishing)

A classic token with repo covers everything. For fine-grained tokens, grant Read/Write on Contents, Pull Requests, and Issues for each repo you work with.

Full Example

[defaults]
author = "Leif"
github_org = "CorvidLabs"
license = "MIT"

[templates]
paths = ["~/.fledge/templates", "~/projects/templates"]
repos = ["CorvidLabs/fledge-templates", "my-org/my-templates"]

[trust]
orgs = ["my-company"]
users = ["corvid-agent"]

[github]
token = "ghp_..."

[ai]
provider = "claude"

[ai.claude]
model = "sonnet"

[ai.ollama]
host = "http://localhost:11434"
model = "llama3.2:latest"
timeout_seconds = 600

Environment Variables

VariableWhat it does
FLEDGE_NON_INTERACTIVETruthy (1, true, yes, y, on) silences prompts. Same effect as passing --non-interactive (alias --ni) per invocation. Confirmation prompts behave as --yes; prompts with no default bail with a clear error instead of hanging. Hook exception: for ad-hoc remote templates passed to templates init (--template owner/repo not in config), post_create hooks are skipped unless trust is granted explicitly via --trust-hooks or FLEDGE_TRUST_HOOKS. Built-in templates, anything under templates.paths, and anything reachable through your configured templates.repos still follow the --yes consent path.
FLEDGE_TRUST_HOOKSTruthy authorizes post_create hook execution for ad-hoc remote templates passed to fledge templates init. Same as passing --trust-hooks. Has no effect on templates reached through templates.paths or templates.repos (those already follow the --yes consent path). Hooks run arbitrary shell commands; only set this for sources you trust.
FLEDGE_GITHUB_TOKENGitHub token (highest priority)
GITHUB_TOKENGitHub token (fallback after FLEDGE_GITHUB_TOKEN)
FLEDGE_AI_PROVIDERAI provider override (claude or ollama)
FLEDGE_AI_MODELAI model override
FLEDGE_AI_TIMEOUTOllama request timeout in seconds
OLLAMA_HOSTOllama API endpoint URL
OLLAMA_API_KEYOllama Bearer token

If neither env var nor config is set, fledge falls back to gh auth token (GitHub CLI) automatically for GitHub operations.

Project Configuration (fledge.toml)

Per-project settings live in fledge.toml in your project root. This file defines tasks, lanes, and release behavior. It’s created by fledge run --init, fledge lanes init, or fledge templates init.

For the full schema (every section, every key, every default), see the fledge.toml Reference.

Topical guides:

Priority Order

When creating a project, values come from (highest to lowest):

  1. Command-line arguments
  2. Config file
  3. Git config (author only)
  4. Built-in defaults