Skip to main content

Configuration

DevDocs Forge Agent is configured via config/devdocs-forge-agent.yml. This file is safe to commit — never put API keys here.

Create the config

Initialize config
npm run init

Or copy the example:

Copy example config
cp config/devdocs-forge-agent.example.yml config/devdocs-forge-agent.yml

Environment variables

VariableRequiredDescription
DEVDOCS_PROVIDERNoSelected provider: mock, openai, anthropic, or gemini
OPENAI_API_KEYOnly for OpenAIOpenAI API key
OPENAI_MODELNoOpenAI model name (default: gpt-4.1-mini)
ANTHROPIC_API_KEYOnly for AnthropicAnthropic API key
ANTHROPIC_MODELNoAnthropic model name (default: claude-3-5-sonnet-latest)
GEMINI_API_KEYOnly for GeminiGemini API key
GEMINI_MODELNoGemini model name (default: gemini-2.0-flash)
YOUTUBE_API_KEYNoOptional metadata-only checks for Video Intake Guard

Environment variables take priority over config file values.

Example .env

.env
DEVDOCS_PROVIDER=mock

OPENAI_API_KEY=
OPENAI_MODEL=gpt-4.1-mini

ANTHROPIC_API_KEY=
ANTHROPIC_MODEL=claude-3-5-sonnet-latest

GEMINI_API_KEY=
GEMINI_MODEL=gemini-2.0-flash

# Optional — enables full metadata classification for video URLs
YOUTUBE_API_KEY=

Full config reference

config/devdocs-forge-agent.yml
project:
name: "My Docs Project"
default_output_type: "docusaurus" # used when --type is not passed
output_dir: "output"
input_dir: "input"

model:
provider: "mock" # overridden by DEVDOCS_PROVIDER env var
temperature: 0.3
max_tokens: 6000

writing:
audience: "intermediate developers"
tone: "clear, practical, friendly"
style: "developer documentation"
include_summary: true
include_faq: true
include_troubleshooting: true
include_code_explanations: true
include_review_checklist: true

docusaurus:
sidebar_position: 1
tags:
- tutorial
- documentation

safety:
require_permission_notice: true
require_human_review: true
avoid_plagiarism: true
include_source_attribution: true

video_intake:
enabled: true
allow_url_only_generation: false # blocked by design
require_transcript: true
allow_force_for_low_confidence: true
min_tech_confidence_score: 60
min_transcript_words: 150
allowed_domains:
- youtube.com
- youtu.be
- vimeo.com
preferred_categories:
- Education
- Science & Technology
- Howto & Style
technical_keywords:
- angular
- react
- typescript
- docker
- kubernetes
- api
- tutorial
# ... add your own
blocked_keywords:
- song
- music
- vlog
- gaming
# ... add your own

Video Intake Guard config

config/devdocs-forge-agent.yml
video_intake:
enabled: true
allow_url_only_generation: false
require_transcript: true
min_tech_confidence_score: 60
min_transcript_words: 150

See Video Intake Guard for how classification scores work.

Writing profile

modes/_profile.md (created by npm run init) lets you customize every generation:

modes/_profile.md
## Target audience

Intermediate to senior developers working with web frameworks.

## Writing tone

Clear, direct, and practical. No filler words.

## Branding

Company: Acme Corp
Product: AcmeSDK
GitHub: acme/acmesdk

Edit this file freely — it is never overwritten by upgrades.