Metadata-Version: 2.4
Name: ntrp
Version: 0.15.2
Summary: Personal AI assistant with persistent memory and multi-source knowledge integration
Project-URL: Repository, https://github.com/esceptico/ntrp
License: MIT
License-File: LICENSE
Requires-Python: >=3.13
Requires-Dist: aiohttp>=3.13.3
Requires-Dist: aiosqlite>=0.22.1
Requires-Dist: anthropic>=0.40.0
Requires-Dist: click>=8.0.0
Requires-Dist: ddgs>=9.6.0
Requires-Dist: exa-py>=2.0.2
Requires-Dist: fastapi>=0.115.0
Requires-Dist: google-api-python-client>=2.188.0
Requires-Dist: google-auth-oauthlib>=1.2.3
Requires-Dist: google-cloud-pubsub>=2.35.0
Requires-Dist: google-genai>=1.0.0
Requires-Dist: jinja2>=3.1.0
Requires-Dist: markdown>=3.7
Requires-Dist: mcp>=1.0.0
Requires-Dist: numpy>=1.26.0
Requires-Dist: openai>=1.0.0
Requires-Dist: pydantic-settings>=2.12.0
Requires-Dist: python-dotenv>=1.0.0
Requires-Dist: pyyaml>=6.0
Requires-Dist: rich>=13.0.0
Requires-Dist: sqlite-vec>=0.1.6
Requires-Dist: structlog>=24.0.0
Requires-Dist: telegramify-markdown<1.0.0,>=0.5.4
Requires-Dist: tenacity>=9.0.0
Requires-Dist: uvicorn>=0.34.0
Provides-Extra: dev
Requires-Dist: pytest-asyncio>=0.23.0; extra == 'dev'
Requires-Dist: pytest>=8.0.0; extra == 'dev'
Requires-Dist: ruff>=0.15.0; extra == 'dev'
Provides-Extra: gmail
Requires-Dist: google-api-python-client>=2.0.0; extra == 'gmail'
Requires-Dist: google-auth-oauthlib>=1.0.0; extra == 'gmail'
Description-Content-Type: text/markdown

# 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.

![](docs/internal/images/screen1.png)
![](docs/internal/images/screen2.png)

## 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

<details>
<summary>Memory</summary>

![](docs/internal/images/memory.png)
</details>

<details>
<summary>Schedules</summary>

![](docs/internal/images/schedules.png)
</details>

<details>
<summary>Connections</summary>

![](docs/internal/images/sources.png)
</details>

## Install

```bash
uv tool install ntrp    # backend (or: pip install ntrp)
bun install -g ntrp-cli # terminal UI (or: npx ntrp-cli)
```

```bash
ntrp-server serve   # starts backend, prints a one-time API key
ntrp                # terminal UI (separate terminal) – paste the key on first launch
```

Full setup guide, integrations, and API reference at **[docs.ntrp.io](https://docs.ntrp.io)**.

## Releasing

```bash
./release patch   # 0.5.2 → 0.5.3
./release minor   # 0.5.2 → 0.6.0
./release major   # 0.5.2 → 1.0.0
```

Bumps version, creates a PR, merges, tags, and publishes a GitHub release. PyPI and npm packages are published automatically via CI.

## Inspired by

- [opencode](https://github.com/nicepkg/opencode) – terminal UI
- [letta](https://github.com/letta-ai/letta) – persistent memory and personalized approach
- [hindsight](https://github.com/vectorize-io/hindsight) – graph memory structure

## License

MIT
