Skip to main content

Personal AI assistant with persistent memory and multi-source knowledge integration

Project description

ntrp

ntrp is entropy – the measure of disorder in a system. Your calendar, emails, notes, browser tabs, half-remembered conversations – it all accumulates. This project exists to reduce it.

I built this for myself. ADHD and scattered attention meant I kept losing track of things (e.g. what I said, what I planned, what I was supposed to follow up on). So I made an assistant that hooks into my stuff and actually remembers.

What it does

  • Persistent memory: learns facts and patterns across conversations, consolidates them over time
  • Scheduled tasks: morning briefings, daily reviews, health tracking – runs autonomously on a schedule
  • Connected sources: Obsidian vault, Gmail, Google Calendar, browser history, web search (so far)
  • Shell access: runs commands, manages files, sends emails
  • Any LLM: Claude, GPT, Gemini built-in; OpenRouter, Ollama, vLLM, or any OpenAI-compatible endpoint via custom models
Memory

Schedules

Connections

Quick start

git clone https://github.com/esceptico/ntrp.git
cd ntrp
uv sync
cd ntrp-ui && bun install && cd ..

cp .env.example .env
# Edit .env – set at least one LLM key, model variables, and NTRP_API_KEY

uv run ntrp serve              # backend
NTRP_API_KEY=<key> bun run ntrp-ui/src/index.tsx  # UI (separate terminal)

See docs/setup.md for Google OAuth, Telegram, Obsidian, custom models, Docker, and other integrations.

Requirements

  • Python 3.13+, uv
  • Bun (terminal UI)
  • At least one LLM provider API key

Inspired by

  • opencode – terminal UI
  • letta – persistent memory and personalized approach
  • hindsight – graph memory structure

Versioning

Pre-1.0: 0.minor.patch. Minor bumps for new features (may be breaking), patch bumps for fixes. All changes go through PRs, except docs and minor non-code updates.

License

MIT

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

ntrp-0.3.1.tar.gz (2.6 MB view details)

Uploaded Source

Built Distribution

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

ntrp-0.3.1-py3-none-any.whl (199.8 kB view details)

Uploaded Python 3

File details

Details for the file ntrp-0.3.1.tar.gz.

File metadata

  • Download URL: ntrp-0.3.1.tar.gz
  • Upload date:
  • Size: 2.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for ntrp-0.3.1.tar.gz
Algorithm Hash digest
SHA256 c8f004e03ddb0e5e3a8e38dbf421a17e45f4df797a481c45e10a400f286af5bb
MD5 c5e167e4fe07587ceafe1ea1b41ec9ff
BLAKE2b-256 b91531dde83a8a7af4fc8fb75b321fb3b8a7eac0b686897be15cf4093d280a9e

See more details on using hashes here.

Provenance

The following attestation bundles were made for ntrp-0.3.1.tar.gz:

Publisher: publish-backend.yml on esceptico/ntrp

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

File details

Details for the file ntrp-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: ntrp-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 199.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for ntrp-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f448246d3719cb2e177518ab472393eefc366a0a2d6dde714d6daf54fdccdbd6
MD5 8376670a9d2bec614cbc02ec826128a6
BLAKE2b-256 44f1e1c7d50e3dbe9202e7f4cf4a5bd08bd830d2b769405cee8ab11d68c90457

See more details on using hashes here.

Provenance

The following attestation bundles were made for ntrp-0.3.1-py3-none-any.whl:

Publisher: publish-backend.yml on esceptico/ntrp

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