telys
Public SDK for Telys — embedded, on-device memory & retrieval. In-process, zero cloud roundtrips at query time.
This package contains the complete developer-facing surface: the Telys/Collection facades, query/filter
types, the EmbeddingProvider interface, the Tuner/TuningPlan interfaces, the full MCP server
(telys/mcp.py — 19 tools, protocol 2025-06-18, stdio), a runtime loader, and the telys CLI. The
numerical kernel (libame_kernel) the tools drive is a separately distributed, signed on-device runtime
fetched by telys login (free community license) — the same arrangement as MCP servers that front hosted
or signed-binary backends.
Install
As a CLI (recommended — isolated env, on your PATH, not pinned to one Python):
pipx install telys
telys login # sign in → free device license + signed runtime; fully offline thereafter
As a library (to import telys in your own project):
python -m venv .venv && . .venv/bin/activate
pip install telys
Plain
pip install --user telysworks too, but pip may warn that its user-scripts dir isn't on your PATH (a macOS--userquirk) —pipxavoids that entirely. Runtime platforms: macOS arm64, Linux x86_64/arm64 (Windows: run under WSL2).
from telys import Telys
db = Telys("./memory")
col = db.create_collection("docs", dim=768, partition_by="tenant_id") # dim is arbitrary — 384/768/1024/1536/3072…
col.add(vectors, ids=ids, metadata=metadata) # bring your own vectors (embedding-agnostic, any dimension)
hits = col.search(qvec, where={"tenant_id": "acme"}, top_k=10, explain=True)
The runtime is required for execution; the embedder is optional — col.add(vectors, …) and
col.add_texts(…) both need the runtime, but only *_texts needs an embedder (bring your own via
telys.embedding.CallableEmbedder, or use the on-device bigram embedder).
For local development, install the runtime as a package instead of via the CLI:
pip install "telys[runtime]" # or: pip install telys-runtime
MCP server
telys mcp runs Telys as a Model Context Protocol server over stdio,
exposing 19 tools — the full memory surface (CRUD, filtered queries, lexical search, compaction / IVF /
tuning, plus a repo auto-indexer) — to any MCP client (Claude Desktop/Code, Cursor, Codex, Qwen Code, …).
Everything is local and offline. Introspection (initialize/tools/list) needs no credentials; executing memory tools requires the one-time free telys login (device authorization, free community plan) — fully offline thereafter, no API key in the client config.
pipx install telys
telys login # free device license + signed on-device runtime
telys runtime verify # confirm the runtime the tools drive is present
telys mcp # serve JSON-RPC 2.0 (protocol 2025-06-18) on stdin/stdout
You rarely start it by hand — telys mcp install writes the server entry into your clients — or add this
block to a client's MCP config yourself:
{
"mcpServers": {
"telys": {
"command": "telys",
"args": ["mcp"]
}
}
}
Registry: io.github.thyn-ai/telys
on the Official MCP Registry. Server source: packages/telys-sdk/telys/mcp.py.
MCP docs: docs.telys.ai/mcp.
| Tool | What it does | Required arguments |
|---|---|---|
telys_search |
Semantic + lexical search over a memory collection | collection, query |
telys_add |
Add text documents (collection auto-created if absent) | collection, texts |
telys_create_collection |
Create a collection (fix name + partition key up front) | name |
telys_list_collections |
List saved collections in the active store | — |
telys_stats |
Row counts and index state for one collection | collection |
telys_upsert |
Add-or-replace rows by id (the idempotent write) | collection, texts, ids |
telys_update |
Re-embed/replace EXISTING ids (strict: ids required) | collection, texts, ids |
telys_delete |
Tombstone rows by id | collection, ids |
telys_ids |
List live external ids, optionally where-scoped |
collection |
telys_count |
Live row count, optionally where-scoped |
collection |
telys_get |
Exact row lookup by id (re-reads repo source slices) | collection, ids |
telys_search_lexical |
On-device BM25 keyword search | collection, query |
telys_compact |
Flush tombstones, merge delta into the base layout | collection |
telys_build_ivf |
Build per-partition IVF indexes (recall-floor calibrated) | collection |
telys_build_lexical |
Fit the BM25 lexical index | collection |
telys_tune |
Produce (and optionally apply) a TuningPlan | collection |
telys_index_repo |
Walk + chunk + ingest a repo, incrementally refreshed | — |
telys_repo_search |
Search the auto-indexed repo (re-indexes first, always fresh) | query |
telys_workspace_info |
Report the configured workspace, repo_id and file count | — |
Every tool ships a rich description (what it does, when to use it, parameters with defaults, failure modes)
and static MCP annotations (readOnlyHint / destructiveHint / idempotentHint / openWorldHint) —
openWorldHint: false throughout: the server makes no network calls. Listing the tools needs no
credentials and no runtime: initialize + tools/list answer from the static tool registry; only actual
tool calls load the signed runtime lazily.
Documentation
Full documentation lives at docs.telys.ai:
- Quickstart: your first collection
- Working with data — add, upsert, search, filter, snapshot
- Embeddings — built-in lexical + bring-your-own via
CallableEmbedder - CLI reference · MCP integration · Self-hosting
- SDK API index
Links
- Website: telys.ai · Pricing: telys.ai/pricing
- Account & billing: accounts.thyn.ai
- Docs: docs.telys.ai · PyPI: pypi.org/project/telys
Metadata
Release files for telys 0.1.11
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| telys-0.1.11-py3-none-any.whl | Python 3 | none | any | Details for telys-0.1.11-py3-none-any.whl |
Release files / telys-0.1.11-py3-none-any.whl
| Download URL | telys-0.1.11-py3-none-any.whl |
|---|---|
| Size | 90.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c16e6979b6bee47b80c0bbcecf03470ea5d55e3a7140e4140ed6cae01b8c113b
|
|
BLAKE2b-256 checksum How to use checksums |
017782152aba8aff99b80da726fd24c36777cd7dc5f44f064b65df90b5d98a87
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for telys 0.1.11
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.