> ## Documentation Index
> Fetch the complete documentation index at: https://docs.graphify.com/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> The PyPI package is graphifyy, with two y's. The command is graphify.
> /graphify . is typed in an assistant chat, not in a shell.
> Use only commands, flags, and endpoints shown on these pages. Do not invent one.
> Choose the surface before you open a page. Local (Graphify Local) is the graphifyy package on the machine: the skill, the CLI, and the ten-tool MCP. Its pages are the Open Source tab (/open-source/) and the Graphify Local tab on each Integrations page. Graphify is the hosted workspace and https://api.graphify.com/mcp (Streamable HTTP, OAuth, no API key). Its pages are the Graphify tab (/platform/, /concepts/) and the Graphify (hosted) tab on each Integrations page. Prefer Graphify unless the user asks for a local or offline setup. Cookbooks (/cookbooks/) and /mcp/docs-search apply to both. Each page's source frontmatter records this as surface: local, cloud, or both. Buildkite is the CI integration.
> In llms.txt, tell the surface from the page path. Graphify: /platform/ and /concepts/. Local: /open-source/. Most /integrations/ pages cover both, with a Graphify (hosted) tab and a Graphify Local tab. Everything else applies to both.
> graphifyy release notes are published at https://github.com/Graphify-Labs/graphify/releases and https://graphify.com/changelog. The current package version is on PyPI (https://pypi.org/project/graphifyy/).
> The official site is https://graphify.com. These docs are https://docs.graphify.com.
> The local MCP server is the ten tools in the MCP tool reference and reads a graph on the machine. The hosted server is https://api.graphify.com/mcp (Streamable HTTP, OAuth, no API key). The JetBrains, ChatGPT, Codex, and Dots, and Vercel pages use the hosted server, not the ten-tool list. On pages with tabs, the Graphify (hosted) tab uses the hosted server and the Graphify Local tab uses the local skill or the ten-tool server.
> Read https://docs.graphify.com/llms.txt, then open one page's .md link. Use https://docs.graphify.com/llms-full.txt only when one page is not enough.

# Extract without an IDE

> Run graphify extraction from a terminal or CI without an IDE or assistant, for code-only graphs or optional semantic extraction.

`graphify extract` runs the pipeline without an assistant skill. It is useful for repeatable local scripts and CI jobs.

## Code-only extraction

```bash theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
graphify extract . --code-only
```

This needs no model API key. Start here to verify installation and the project scope.

## Semantic extraction

Install the extra for your backend, configure its credentials outside the repository, then select it:

```bash theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
graphify extract ./docs --backend claude
```

Graphify supports Claude, Gemini, OpenAI, DeepSeek, Kimi, Ollama, Bedrock, Azure, and Claude CLI backends. [Configuration](https://docs.graphify.com/open-source/configuration/graphifyrc.md) maps backends to their environment variables. Do not assume a model supports every input type.

## Tune resource use

```bash theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
graphify extract ./docs --backend ollama --token-budget 4000 --max-concurrency 2
```

`--max-workers` controls structural extraction parallelism. `--max-concurrency` controls model requests. `--api-timeout` changes the request timeout. Smaller chunks and less concurrency can help a local model fit its available memory.

## CI pattern

Install a pinned package version in the CI environment, run extraction from the repository root, and retain the reviewed graph or report as an artifact. Use the same ignore rules and output location on every run. Supply provider credentials through the CI secret store only when semantic extraction is part of the job.

No provider key is necessary for `--code-only`. Do not make CI publication of the graph public unless the underlying source can be public too.

## Run it on a real repository

These examples come from a code-only graph of the open-source [httpx](https://github.com/encode/httpx) repository, built with Graphify Local 0.9.97. Your counts will differ. A code-only run finished in about 2.6 seconds of wall time:

```text theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
$ time graphify extract . --code-only
[graphify extract] found 78 code, 0 docs, 0 papers, 0 images
[graphify extract] AST extraction on 78 code files...
  AST cache: 0/78 files served from cache (0%); 78 to extract
[graphify] Deduplicated 32 node(s) (28 exact, 4 fuzzy).
[graphify extract] wrote /workspace/runs/httpx/graphify-out/graph.json: 1883 nodes, 3960 edges, 106 communities
[graphify extract] next: run `graphify cluster-only /workspace/runs/httpx` to generate GRAPH_REPORT.md and name communities

real	0m2.601s
```

Follow it with `cluster-only` to write the report:

```text theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
$ graphify cluster-only . --no-label --no-viz
Graph: 1883 nodes, 3960 edges
Done - 106 communities. GRAPH_REPORT.md and graph.json updated (--no-viz; graph.html removed).
```

## Flags

| Flag | What it does |
| - | - |
| `--code-only` | Indexes code with local AST extraction and needs no API key. Skips documents, papers and images. |
| `--backend B` | `gemini`, `kimi`, `claude`, `openai`, `deepseek` or `ollama`. The default is whichever API key is set. |
| `--model M` | Overrides the backend's default model. |
| `--mode deep` | Extracts INFERRED semantic edges more aggressively. |
| `--force` | Re-scans everything and skips the semantic cache. You can also set `GRAPHIFY_FORCE=1`. |
| `--max-workers N` | The number of AST subprocesses. The default is the CPU count. |
| `--token-budget N` | The token cap per semantic chunk. The default is 60000. |
| `--max-concurrency N` | How many semantic chunks run at once. The default is 4; use 1 for local LLMs. |
| `--api-timeout S` | The per-request LLM timeout in seconds. The default is 600. |
| `--out DIR` | Writes `<DIR>/graphify-out/`. |
| `--no-gitignore` | Ignores `.gitignore`. `.graphifyignore` still applies. |
| `--no-cluster` | Writes the raw extraction only. |

For a self-hosted OpenAI-compatible server (llama.cpp, vLLM or LM Studio), use `--backend openai` and set `OPENAI_BASE_URL` and `OPENAI_MODEL`. For an Anthropic-compatible gateway, use `--backend claude` and set `ANTHROPIC_BASE_URL` and `ANTHROPIC_MODEL`.

## FAQ

**Why is `.netrc` skipped?** Credential files are never indexed. The run lists them as "skipped as potentially sensitive".

**Can CI fail when the graph shrinks?** `graph.json` reports the node count, so you can compare it in a script step. See the [incremental updates](https://docs.graphify.com/open-source/features/incremental-updates.md) page for `--force`.

## Next steps

> **[Try it in Graphify](https://docs.graphify.com/platform/quickstart.md)**
>
> 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.

> **[Keep the graph current](https://docs.graphify.com/open-source/features/incremental-updates.md)**
>
> Update only what changed.

> **[graphify extract](https://docs.graphify.com/open-source/configuration/cli.md#extract)**
>
> Every flag for the extract command.

[PreviousRun Graphify locally](https://docs.graphify.com/open-source/local-development.md)
[NextAsk your agent one question](https://docs.graphify.com/open-source/ask-your-agent.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.