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.3.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.3-py3-none-any.whl (196.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ntrp-0.3.3.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.3.tar.gz
Algorithm Hash digest
SHA256 ee89303412b798bf5d0544978650e1efc0a1347951087e065930d3c68a53345c
MD5 a870cc47d4d4e28d468dca2596592117
BLAKE2b-256 a2f94eefb655b5d730a8b34e4da1e90b3e6d4dc287eba08db84333876623c4c7

See more details on using hashes here.

Provenance

The following attestation bundles were made for ntrp-0.3.3.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.3-py3-none-any.whl.

File metadata

  • Download URL: ntrp-0.3.3-py3-none-any.whl
  • Upload date:
  • Size: 196.2 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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 f5e6de0e310aaff7ad2a6871b529309b042bbc442d971869b9f89eb26943d05f
MD5 75faf42fd69afacf653e8f1dd3708e95
BLAKE2b-256 d06da29ac5cdd2e3b7fca6b0b4d34f0319ec2f73ca6c57bd92191c1b624641ac

See more details on using hashes here.

Provenance

The following attestation bundles were made for ntrp-0.3.3-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