Use this page when you want docs and PDFs in the graph, want to run fully offline with Ollama, or need to route calls through Azure, Bedrock, or an OpenAI-compatible gateway. If you only need code, pass
--code-only and skip it.How it works
1
An explicit choice wins
--backend NAME on the command line, or GRAPHIFY_BACKEND=NAME. Set it to none, off, or disabled to turn model calls off.2
Otherwise Graphify auto-detects
It checks for credentials in this order: Gemini, Kimi, Claude, OpenAI, DeepSeek, Azure (needs an endpoint too), Bedrock (needs
AWS_PROFILE or AWS_REGION), then Ollama (only when OLLAMA_BASE_URL or OLLAMA_HOST is set), then your custom providers. The first match is used.3
The model comes from the backend default or your override
--model NAME wins, then the backend’s model variable, then the default below.OPENAI_API_KEY set and want local inference, choose Ollama explicitly.
Built-in backends
To point a backend at a different endpoint, set
ANTHROPIC_BASE_URL, GEMINI_BASE_URL, OPENAI_BASE_URL, KIMI_BASE_URL, or OLLAMA_BASE_URL (or OLLAMA_HOST, default http://localhost:11434/v1). Azure also reads AZURE_OPENAI_API_VERSION (default 2024-12-01-preview), and Bedrock uses AWS_REGION.
claude-cli runs extraction through the claude command, so it uses your Claude Code plan instead of an API key. It is never auto-detected; choose it with --backend claude-cli.
Configure
- Ollama (offline)
- OpenAI-compatible server
- Hosted API
- Azure or Bedrock
GRAPHIFY_OLLAMA_NUM_CTX and GRAPHIFY_OLLAMA_PARALLEL to tune it. See environment variables.Add your own provider
Register any OpenAI-compatible endpoint once, then use it by name:string
required
OpenAI-compatible base URL. Plain
http:// prints a warning, because your key and code would travel unencrypted.string
required
Model used when you don’t pass
--model.string
required
Name of the environment variable that holds the key. The key itself is never stored.
number
Token prices used in cost estimates.
~/.graphify/providers.json. A .graphify/providers.json inside a repository is ignored unless you set GRAPHIFY_ALLOW_LOCAL_PROVIDERS=1, so a cloned repository can’t redirect your keys to its own server. Built-in names such as openai can’t be overridden. Use graphify provider show NAME and graphify provider remove NAME to manage them.
What gets sent
Source files are parsed locally by tree-sitter. The model receives the non-code files Graphify finds (Markdown, text, PDFs, Office files, images, and transcripts) after your ignore rules and the sensitive-file filter are applied, plus node labels when it names communities. With--code-only or GRAPHIFY_BACKEND=none, nothing is sent anywhere.
Verify and troubleshoot
Which model should I start with?
Which model should I start with?
Any default above works. For privacy-sensitive code, start with Ollama. For large doc sets, a hosted flash-class model is faster.
Do I need a model for the MCP server?
Do I need a model for the MCP server?
No.
graphify-mcp serves an existing graph and makes no model calls.What’s next
Ignoring files and limits
Keep secrets and generated files out of the graph.
CLI reference
Every
extract flag.Try it in Graphify
We build and host the graph for you. Start with a 14-day Pro trial, then keep up to 3 repositories on Free. No card required.