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.

