mrkeyoor.com_
Thu 01 Oct 19:38 UTC
Dev Toolsevaluationupdated 26 Aug 2026

gortex review

Gortex indexes source code into a local graph so coding agents and developers can ask for symbols, usages, call chains, contracts, and likely change impact without reading whole files. It ships as a CLI, daemon, web interface, HTTP API, and MCP server, with support for multiple repositories in one workspace.

+41stars / 7d
Verdict

Our Gortex run spent 271 seconds building and 596 seconds testing before 80 of 81 test groups passed, so this is a substantial code-intelligence system with one unresolved lab failure. Trial it when local cross-repository graph queries could save agents repeated file reads, but verify search counts and memory on a copy of your own estate. Exclude PDFs and postpone production dependence until the workspace, truncation, and long-index reports are resolved or explicitly mitigated.

We ran it

Lab card: what happened when we ran gortexScreenshot of gortex (gortex.dev)
Install✓ · 128s424 packages
Build✓ · 271s
Tests✗ · 596s80 passed · 1 failed of 81 (go test)
Repo4359 files~983,509 lines of source · 41.2 MB · 10 CI workflows

Answers from our run

Does gortex build from source?

Dependencies installed in 128 seconds (424 packages), and the build succeeded in 271 seconds. We cloned commit 699f351 into a clean Debian container with 3 CPUs and no project-specific setup.

Do gortex's tests pass?

Not all of them: 80 of 81 passed and 1 failed when we ran the project's own test command (go test). Some failures need services or credentials a bare container does not have.

Who should not use gortex?

Teams that require every literal search to be complete: issue 672 shows search_text silently capping results and reporting the cap as the count.

What are the alternatives to gortex?

Zoekt, Aider, Continue. Our Gortex run spent 271 seconds building and 596 seconds testing before 80 of 81 test groups passed, so this is a substantial code-intelligence system with one unresolved lab failure.

Setup3/5Binaries are simple; source build took 271 seconds in our run
Docs5/5Install, architecture, tools, agents, privacy, and limits are covered
Community4/51,495 stars with heavy issue and pull request activity
Maturity2/5v0.63.8 is active, but indexing and search correctness bugs are open

Discussed on

  1. hnShow HN: Gortex – MCP server for cross-repo code intelligence3 points

Who it’s for

Teams whose coding agents repeatedly search large or multi-repository codebases.
Developers who want local graph queries through MCP, a CLI, or an HTTP API.
Organizations willing to validate search completeness against their own source tree.
Operators who can monitor a long-running SQLite-backed indexing daemon.
Claude Code and other agent users who want generated configuration and project skills.

Who it’s NOT for

Teams that require every literal search to be complete: issue 672 shows search_text silently capping results and reporting the cap as the count.
Repositories containing PDFs unless they are excluded first: issue 676 reports 21 PDFs driving daemon memory upward until the process was killed.
Windows teams indexing thousands of C++ files without a trial: issue 660 reports more than 30 minutes for 5,000 files.
Multi-repository users who cannot audit workspace changes: issue 673 reports stale workspace IDs causing known text to return a count of 0.
Buyers who need a clean full test run from the measured commit: our Go suite ended with 80 passed and 1 failed.

Setup reality

Our sandbox installed 424 Go packages in 128 seconds. The build succeeded in 271 seconds. Tests ran for 596 seconds, with 80 passed and 1 failed out of 81; the supplied log tail listed successful packages and ended only with FAIL, so it does not identify the failing package.

Published binaries need no runtime dependencies, while source builds require Go 1.26 or newer plus a C toolchain for tree-sitter bindings. Agent use requires configuration files and a daemon; optional LLM features add provider credentials.

The daemon maintains a local SQLite graph and watches tracked repositories. Custom tree-sitter grammars do not load in the static Linux binary, and current issues justify excluding PDFs, checking large searches against grep, and testing workspace moves before relying on results.

Gortex keeps code relationships in a local SQLite graph

Gortex turns repositories into a persistent graph of symbols, calls, routes, contracts, and other code relationships. A daemon updates that graph as files change, while the CLI, HTTP API, web interface, and MCP server query the same store. The practical pitch is fewer full-file reads for coding agents. Instead of loading a 500-line file to locate one caller, an agent can ask for a declaration, usage set, call chain, or change impact.

The project advertises parsers or grammars for 257 languages and direct setup for many coding agents. Its strongest use case is a code estate split across services: HTTP routes, gRPC definitions, message topics, environment variables, and other contracts can be matched between repositories. That is more ambitious than a repository map. It also creates more state to keep correct, especially when branches, worktrees, workspace membership, or generated files change under a long-running daemon.

A 4,359-file checkout still took 271 seconds to build

Our sandbox cloned commit 699f351 and installed 424 Go packages in 128 seconds. The build succeeded, but needed 271 seconds on 3 CPUs with 8 GB of RAM. The checkout contained 4,359 files, roughly 983,509 lines of source, and 41.2 MB before installation. Those numbers describe the repository build, not the single static release binary that most users will download.

Published binaries are available for Linux, macOS, and Windows. The installation guide says they have no runtime dependency chain, and release artifacts carry checksums, cosign signatures, and provenance. Building from source requires Go 1.26 or newer and a C toolchain because tree-sitter bindings use CGO. Static Linux releases cannot load custom tree-sitter shared objects, so anyone with a private grammar needs a source build.

What happened when we ran it

Our Go test command ran for 596 seconds and finished with exit code 1. The harness counted 80 passing groups and 1 failure out of 81. The tail we received shows successful results for telemetry, test utilities, tokens, workspace, and the public package, followed by a final FAIL. It does not name the failing package or assertion, so blaming a subsystem would go beyond the evidence.

Our scan found 10 CI workflow files, no Dockerfile, and no top-level tests directory. The same run's install and build both completed successfully. These measurements do not test index accuracy, agent token use, query latency, or daemon memory. They establish that commit 699f351 built in our fresh Go 1.24 Debian image and that its complete test command did not exit cleanly.

Search can return a convincing but incomplete count

Issue 672 describes search_text clamping a requested limit to 1,000, truncating both matches and the reported count, and returning no truncation flag or cursor. In the reporter's large TypeScript repository, a query returned 1,000 matches while grep found 8,963. Filtering by path did not recover the remainder because the filter ran after the global truncation. That failure mode is dangerous for an agent because a plausible count looks complete.

The reporter tested a local patch and supplied performance data, but that is issue evidence rather than our benchmark. The decision point is correctness: until a release exposes truncation or pagination, compare broad literal searches with grep or another source-of-truth search. Gortex should not silently replace exhaustive search in refactors, license checks, or security reviews.

Workspace changes can make a repository look empty

Issue 673 reports a repository indexed alone retaining its old workspace ID after joining a shared workspace. The configuration showed the new workspace, but existing nodes kept the stale value. Scope filtering then returned count: 0 for text known to exist. New nodes used the new ID, leaving one repository split across identities. The reporter restored results by updating stored IDs, which confirms the graph data itself remained present in that case.

This is more serious than a setup annoyance because zero is an answer an agent may trust. A team adopting cross-repository workspaces should create a known-query fixture for each repository, check it after moves and branch changes, and keep ordinary source search available. Open issue 663 separately reports workspace identifier collisions across branches. Gortex's multi-repository feature is appealing, but its scope metadata needs explicit acceptance tests today.

PDFs and dense Go indexes need memory and timeout guards

Issue 676 reports 21 PDFs totaling about 39 MB driving daemon memory from a 150 MB baseline through multiple gigabytes without leveling off. In the original run, the daemon reached 91.9 GiB before the operating system killed it, then retried the tracked repository on restart. Excluding **/*.pdf stopped the loop for the reporter. Repositories containing documents should apply that exclusion before the first track operation, not after an incident.

Issue 651 describes a different v0.63.8 stall: a Go method-receiver rebinding pass held the global write role for more than 2 hours while Gortex indexed its own repository. The report records one occurrence and labels its query-plan explanation as unconfirmed. Issue 660 adds a Windows report of more than 30 minutes to index 5,000 C++ files. Together they justify hard timeouts, memory supervision, and a representative trial repository.

August activity is fast, but fixes are chasing core behavior

GitHub showed a last push on August 26, 2026, 1,495 stars, and 39 combined issues and pull requests. Release v0.63.8 arrived on August 20. Same-day work covered C# resolution, single-file component imports, MCP session handling, Windows paths, search semantics, and graph mutation behavior. This is clearly active development. The open queue also touches indexing, search completeness, workspace scoping, and memory, which are central rather than cosmetic.

Telemetry is off by default, and the graph remains local unless an optional LLM provider is configured. Apache-2.0 licensing and signed binaries make a controlled trial straightforward. The failed 81-group lab run and current correctness reports keep Gortex below production-ready for unattended agent decisions. Use its graph as another evidence source, preserve grep and compiler checks, and monitor the daemon as infrastructure.

Alternatives

ProjectWhat it isPick it when
ZoektA fast trigram-based code search engine used for indexed literal and regex queries.pick this instead when exhaustive indexed text search matters more than agent-facing graph relationships.
Aider gh↗A terminal coding agent that builds a compact repository map for context.pick this instead when you want an editing agent with lightweight code context rather than a separate graph service.
Continue gh↗An open coding-agent platform with configurable IDE context and model providers.pick this instead when IDE workflow and model choice matter more than graph-native cross-repository queries.

What people are saying

  1. [github-trending] zzet/gortex

Sources

  1. Gortex README
  2. Gortex installation guide
  3. Silent search truncation issue
  4. Workspace scoping issue
  5. PDF memory issue
  6. Go indexing hang issue

More dev tools reviews

nyaterm · yoinks · tilelang · vintage-latex · NavierStokesAndEuler · UMR · the whole board →