Documentation

Everything you need to install Spyndel, build a graph from your documents and put it to work.

Overview

Spyndel is a self-constructing graph database for documents. You add documents; Spyndel turns them into a graph of statements organized into topics and categories, and connects related statements across documents. People explore and ask questions in the web app, AI assistants connect through MCP, and analysts query the graph with Silk.

Install

The Community Edition ships as a Docker image. You need Docker, 16 GB of RAM and 20 GB of free disk. An NVIDIA GPU with the NVIDIA Container Toolkit is optional and makes processing much faster.

# load the image you downloaded
docker load -i spyndel-community.tar.gz

# run it, keeping your graph and settings in a named volume
docker run -d --name spyndel -p 8765:8765 -v spyndel-data:/state spyndel:community

# with an NVIDIA GPU
docker run -d --name spyndel --gpus all -p 8765:8765 -v spyndel-data:/state spyndel:community

Open http://localhost:8765 and sign in as admin with the password admin. You will be asked to choose a new password straight away.

To make Spyndel available to others on your network, put it behind your HTTPS reverse proxy or load balancer. Spyndel will not serve beyond the local machine while any account still has a default password.

Your first graph

  1. Sign in and open Add documents.
  2. Drop in a set of PDFs. Documents need a text layer; scanned images without text are not supported yet.
  3. Spyndel reads each document, discovers the topics in your library and connects related statements. Progress is shown for each document.
  4. When it finishes, browse from the home page, or open the Concept map to see your library as a graph.

Start with a representative set of documents, ideally a few dozen. Topics are discovered from what is in the library, so a varied first set gives a better structure.

The graph

ElementWhat it is
StatementOne requirement, specification or piece of information from a document, with its page, section and the text around it. Statements are the unit of search and linking.
DocumentA source file, with an automatic summary and its most representative statements.
TopicA group of statements about the same subject, discovered from your documents and named in plain language.
CategoryA group of related topics. Categories form the browsable hierarchy.
ConnectionA verified link between two statements about the same specific subject, usually in different documents.

Spyndel also recognizes statements that carry no real content, such as reference-list entries, addresses and page furniture, and keeps them out of search and linking by default.

Connections & confidence

Two statements can look alike without being about the same thing, for example the same template sentence about two different components. Spyndel checks every candidate connection and keeps only those it judges to be about the same subject. Each connection carries:

  • Confidence: the calibrated probability that the connection is real, with a range.
  • Usefulness: how often following this connection has led to a cited answer.

Tools and AI assistants use only confident connections by default, and you can tighten or relax that.

Adding documents

Open Add documents (this needs the documents permission), choose a collection name and drop in PDFs. Each document is processed in the background:

  • Statements are extracted with their section headings.
  • Each statement is placed in the existing topics.
  • Each statement is compared with the whole library, and verified connections are added.
  • A summary and key statements are produced for the document.

New documents never reshuffle the existing structure. To let new subject areas form their own topics after a lot of new material, an administrator can rebuild the topic structure. Uploaded PDFs can be opened from the document page, and every statement links to its page in the PDF. Removing a document takes it and its connections out of the graph.

Exploring

  • Browse: categories → topics → statements. Each statement page shows the text around it, its verified connections, and statements often cited with it.
  • Search: type a question or phrase; results are ranked by meaning, not keywords.
  • Concept map: topics as a moving graph. Zoom in to see individual statements and their connections, coloured by confidence.
  • Document map: documents linked by how many verified connections they share.

Ask

Ask questions in plain language. An AI model of your choice searches the graph, follows connections and writes an answer with numbered citations. Each citation is checked: the statement exists, it was retrieved during the answer, and the quoted words appear in it. Answers can teach the graph which statements were useful; you can switch that off per question.

Ask needs an AI provider. An administrator sets one under Settings → AI model: Anthropic Claude, OpenAI, Azure OpenAI, Azure AI Foundry, Google Gemini or Vertex AI, or Amazon Bedrock.

AI assistants (MCP)

Spyndel includes a Model Context Protocol endpoint at /mcp, so any MCP-capable assistant can use your graph directly. Create a personal access token under Connect AI, then add the server to your client:

{
  "mcpServers": {
    "spyndel": {
      "type": "http",
      "url": "https://your-spyndel-host/mcp",
      "headers": { "Authorization": "Bearer <your token>" }
    }
  }
}

Assistants can search statements and documents, browse topics, walk connections step by step or several hops at once, and fetch attribution (document, page, section, surrounding text and a link) ready for citing. The tools available follow the token owner's role.

Silk queries

Silk is Spyndel's query console for analysts (it needs the query permission). It uses familiar graph-query syntax and is read-only.

// documents that share the most verified connections with a given document
MATCH (d:Document {name: $name})-[:HAS_STATEMENT]->(:Statement)-[r:SIMILAR_TO]-(:Statement)<-[:HAS_STATEMENT]-(o:Document)
WHERE o <> d
RETURN o.name AS document, count(r) AS connections
ORDER BY connections DESC LIMIT 10

The console shows the schema with counts, example queries and your query history, and can draw any result as an explorable graph.

Users & roles

Roles are sets of permissions:

PermissionAllows
browsePages, search, maps, statements and uploaded PDFs, plus the read-only assistant tools
askAsking questions with the AI model
documentsAdding and removing documents
queryThe Silk console
settingsAI model and compute settings
usersManaging users and roles

Three roles are built in: viewer (browse), asker (browse, ask) and admin (everything). Administrators add users from the Users page. If no password is given, a temporary one is created that the user must change at first sign-in. Custom roles are available in Enterprise. Spyndel always keeps at least one account that can manage users.

Settings

  • Compute: shows the GPU, memory and CPUs Spyndel can use. Choose whether to use the GPU (automatic, on or off) and how many connection checkers run side by side.
  • AI model: the provider and model used by Ask and for document summaries. Keys are stored on the server and never shown again. Test sends a real request before you save.

API

Everything in the app is available over HTTPS with a personal access token (Authorization: Bearer <token>):

# add a document
curl -X POST https://your-spyndel-host/api/documents \
  -H "Authorization: Bearer $TOKEN" -F file=@report.pdf -F source=reports

# processing status of uploaded documents
curl https://your-spyndel-host/api/documents -H "Authorization: Bearer $TOKEN"

For search, traversal and attribution, use the MCP endpoint above. It works with any MCP client library as well as with assistants.

FAQ

Does Spyndel send my documents to an AI company?

No. The graph is built by models running inside Spyndel on your own hardware. Only if you configure an AI provider for Ask are questions and the relevant statements sent to that provider.

Do I need a GPU?

No, but it helps a lot. On CPU, a typical report takes minutes to an hour to process, depending on the machine; on a modern GPU, seconds to a couple of minutes.

Which documents work best?

PDFs with a text layer: reports, standards, specifications, procedures, regulations, papers. Scanned images without text are not supported yet.

How is this different from a vector database?

A vector database finds passages that look similar to a query. Spyndel also organizes everything into topics and categories, verifies which statements are genuinely about the same thing, and lets you and your assistants follow those connections, with sources at every step.

How do I get Enterprise?

Request pricing and we'll be in touch.