Skip to main content
Graphify Local builds the code graph without any model. It parses source files with tree-sitter on your machine. A model is only used for semantic extraction: reading docs, papers, images, and transcripts, and naming communities. This page shows how Graphify picks that model and how to point it somewhere else.
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.
Ollama is checked after every paid key on purpose. If you have 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

Nothing leaves your machine. Use 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.
Providers are saved in ~/.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

Any default above works. For privacy-sensitive code, start with Ollama. For large doc sets, a hosted flash-class model is faster.
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.