Skip to main content

Turn private notes into local knowledge packs and synthesized wikis

Project description

Synto

GitHub last commit CI status PyPI version Tip in Crypto Buy Me A Coffee

Turn your raw notes into a self-improving, interlinked wiki — powered by a local LLM.

Synto is a knowledge compiler. Point it at any source of expertise and it produces a portable wiki pack any AI agent can install and query.

Local-first, provider-flexible. Runs 100% locally with Ollama or LM Studio. Switch to a cloud provider — Groq, OpenRouter, Mistral — when you need more power. Your notes and source material never leave your machine unless you choose.

Synto succeeds obsidian-llm-wiki-local (608 ★, 9k+ downloads) — same proven local pipeline, redesigned for distributable knowledge packs.

image


Why it exists

AI agents are only as good as the context you give them. A folder of notes or a raw PDF is not context — it's noise. Synto processes your source material through a local LLM pipeline, extracts concepts, writes cross-linked articles, and exports a structured directory: articles, an index, a concept graph, and agent-readable metadata. The pack installs like a package. Any agent gets a domain expert layer, not a file dump.


Use cases

Architectural reference from a textbook

Dobryakov took Tanenbaum's Distributed Systems, compiled it into a cross-linked wiki, and installed it into Claude/Cursor. Instead of generic suggestions, the AI started reasoning from established distributed systems principles — recommending consistent hashing and two-phase commit instead of "use a shared database." Any technical book, spec, or documentation set becomes a live context layer for your AI.

Karpathy's LLM Wiki

Andrej Karpathy's neural-network series is 20 hours of dense, high-quality material. Compile the transcripts and blog posts into a Synto pack and the content becomes queryable: any agent in your project can explain backpropagation, walk through the attention mechanism, or cite a specific lecture — from the source, not from model weights.

Your own research notes

Works today with Markdown. Drop notes in raw/, run synto run, and get a cross-linked wiki exported as an agent-ready pack. Expose it via synto serve as a local MCP server, or ship the pack directory for any file-aware agent to use.


How it works

Three stages, two LLM tiers:

  1. Ingest — fast model reads each source, extracts concepts and summaries
  2. Compile — heavy model writes one cross-linked article per concept
  3. Exportsynto pack export produces an agent-ready directory

The fast model handles analysis (4B parameters is enough). The heavy model handles writing (14B+ recommended locally, or any cloud model). Both tiers are configurable independently.


Install

pip install synto
# or
uv tool install synto

For MCP server support:

pip install "synto[mcp]"

Quick start

synto setup                                   # configure LLM provider
synto init ~/my-vault                         # create vault

# add Markdown notes to ~/my-vault/raw/
synto run --vault ~/my-vault                  # ingest + compile into wiki/.drafts/
synto review --vault ~/my-vault               # inspect drafts interactively
# or: synto approve --all --vault ~/my-vault

synto pack export --target agents --vault ~/my-vault
synto serve --vault ~/my-vault                # expose as MCP server (requires [mcp])

If you want a one-command flow, use synto run --auto-approve --vault ~/my-vault. That skips draft review and publishes directly into wiki/.


What's in a pack

pack/
  articles/           one Markdown file per concept
  index/INDEX.json    machine-readable index with stable article IDs
  agent/
    manifest.json     capabilities, pack metadata
    concepts.json     concept registry
    sources.json      source provenance
  AGENTS.md           agent-readable entrypoint
  CLAUDE.md           Claude Code context file

Any file-aware agent can read the articles directly. INDEX.json enables fast concept lookup without a database. synto serve exposes list_articles, read_article, and find_concept as MCP tools.


What ships now

  • Full ingest → compile → approve pipeline; currently supports Markdown notes and Obsidian vaults
  • synto pack export --target agents — portable knowledge pack with INDEX.json and agent metadata
  • synto serve — read-only MCP server (list_articles, read_article, find_concept)
  • synto query — index-routed Q&A with optional synthesis to wiki/synthesis/
  • synto review — interactive draft review: approve, reject, edit, or diff before publishing
  • synto watch — file watcher: auto-ingest and compile on every save
  • synto maintain — wiki health check, stub creation, orphan cleanup
  • synto eval — offline structural evaluation (coverage, citation support, link resolution)
  • synto compare — A/B model comparison without touching your vault
  • Multi-language: notes are ingested and compiled in their source language
  • 20+ LLM providers supported via OpenAI-compatible API

Data & Privacy

  • Local by default. Ollama and LM Studio process all content on your machine — notes never leave it.
  • Cloud providers. If you configure an OpenAI-compatible cloud provider, note content and wiki text are sent to that service. Review their privacy policy before use.
  • No remote analytics. Synto does not send usage analytics anywhere. Local runtime and cost metrics stay in your vault database.
  • Pack exports. Exported packs include raw notes, sources, wiki articles, queries, and synthesis by default. Review your vault before sharing a pack.
  • API keys. Stored in ~/.config/synto/config.toml (user-owned, not inside the vault). Never commit that file.

Requirements

  • Python 3.11+
  • An LLM provider: Ollama (local), LM Studio, or any OpenAI-compatible endpoint

Recommended local setup: a 4B model for ingest (e.g. Gemma 4), a 14B+ model for compilation (e.g. Qwen 2.5 14B). Works entirely offline.


Migrate from obsidian-llm-wiki-local

Existing obsidian-llm-wiki-local vaults must be migrated first. Run migrate-olw to copy wiki.toml and .olw/ into the current Synto layout before using normal commands.

synto migrate-olw --vault ~/my-old-vault

Copies wiki.tomlsynto.toml and .olw/.synto/. Notes and articles are untouched. Old files are preserved — delete them once you've verified everything works.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

synto-0.1.1.tar.gz (621.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

synto-0.1.1-py3-none-any.whl (176.2 kB view details)

Uploaded Python 3

File details

Details for the file synto-0.1.1.tar.gz.

File metadata

  • Download URL: synto-0.1.1.tar.gz
  • Upload date:
  • Size: 621.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for synto-0.1.1.tar.gz
Algorithm Hash digest
SHA256 6bfdb16a50cd52dd3ec80a09c621b75d5cbc7f54c2fc5895f9dac84926d86b78
MD5 e3a2f9c507f3ff096d584a8d38953901
BLAKE2b-256 bbefbf21f587d3aad24e88843d41ce46fdde4b223d1276d3ef5036b5777ef2c5

See more details on using hashes here.

Provenance

The following attestation bundles were made for synto-0.1.1.tar.gz:

Publisher: release.yml on kytmanov/synto

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file synto-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: synto-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 176.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for synto-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b5bcd74ec9676f6b170bd515333d87a8ab902e9fea3ff9046cc47d9f3b6032ed
MD5 5278501a261ae46f8e69471037aaa590
BLAKE2b-256 591e623796c4a2e0d6556c8b585f850fabd34d3d47f3c92eecb4ba4e0026a126

See more details on using hashes here.

Provenance

The following attestation bundles were made for synto-0.1.1-py3-none-any.whl:

Publisher: release.yml on kytmanov/synto

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page