# Fennec AI Configuration # Copy this file to .env and fill in your values # =================== # LangSmith Tracing (optional) # =================== # Enables tracing and monitoring via LangSmith # Both LANGSMITH_* and LANGCHAIN_* variables are needed for full compatibility # LangSmith variables (used by LangGraph server) LANGSMITH_TRACING=false LANGSMITH_ENDPOINT=https://api.smith.langchain.com LANGSMITH_API_KEY= LANGSMITH_PROJECT=fennec-ai # LangChain variables (used by LangChain SDK) LANGCHAIN_TRACING_V2=false LANGCHAIN_API_KEY= LANGCHAIN_PROJECT=fennec-ai LANGCHAIN_ENDPOINT=https://api.smith.langchain.com # =================== # LLM Provider Config # =================== # Options: anthropic, openai, openrouter LLM_PROVIDER=anthropic LLM_MODEL=claude-sonnet-4-6 # Optional per-agent model overrides (fall back to LLM_MODEL if unset) RECON_LLM_MODEL= ANALYST_LLM_MODEL= PENTESTER_LLM_MODEL= # =================== # API Keys (required) # =================== # At least one of these is required based on your LLM_PROVIDER ANTHROPIC_API_KEY= OPENAI_API_KEY= OPENROUTER_API_KEY= # =================== # Search APIs (optional) # =================== # Enables enhanced search capabilities TAVILY_API_KEY= PERPLEXITY_API_KEY= # =================== # Docker Config # =================== # Default pentest container image. The bundled `linux/` Dockerfile builds a # Kali image with the common pentest tools preinstalled — see `make build` # under linux/. You can also use the upstream Kali image directly. DOCKER_IMAGE=fennec-linux # =================== # Agent Model Call Limits # =================== # Maximum model (LLM) calls per agent run. # Recon uses max(RECON_MIN_MODEL_CALLS, recursion_limit // 4). RECON_MIN_MODEL_CALLS=25 ANALYST_MODEL_CALL_LIMIT=15 PENTESTER_MODEL_CALL_LIMIT=30 # =================== # Execution # =================== # How the agent runs pentest tools: # docker (default) — spawn a Kali sibling container per scan (needs Docker) # local — run tools inside the agent process directly EXECUTION_MODE=docker # Set to false to force the local executor even when Docker is available. USE_DOCKER=true # Assessment depth preset: turbo / balanced / deep FENNEC_METHOD=balanced # true to pause for operator approval between hypotheses (human-in-the-loop) HTLI=false # =================== # API Server (optional) # =================== # Comma-separated extra CORS origins for the FastAPI server. # Any localhost port is allowed by default; add hosted origins here. FENNEC_CORS_ORIGINS= # JSON blob of credentials for authenticated targets, e.g. # {"username": "...", "password": "..."} FENNEC_AUTH_CREDENTIALS= # Seed the dashboard with synthetic demo data (handy for screenshots / eval). FENNEC_DEMO_SEED=false # Quiet noisy httpx request logs, e.g. WARNING. HTTPX_LOG_LEVEL=