Metadata-Version: 2.4
Name: ntrp
Version: 1.0.0rc3
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: coolname>=4.1.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: trafilatura>=2.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, memory, 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.

![ntrp terminal UI](docs/internal/images/main.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**: Gmail, Google Calendar, Slack, web search, MCP tools
- **Lean tool context**: loads infrequent tools on demand so the model does not carry every schema in every turn
- **Shell access**: runs commands, manages files, sends emails
- **Any LLM**: Claude, GPT, Gemini built-in; OpenAI API keys or OpenAI account sign-in; OpenRouter, Ollama, vLLM, or any OpenAI-compatible endpoint via custom models

## 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
./release rc minor # 0.5.2 → 0.6.0-rc.1
./release rc      # 0.6.0-rc.1 → 0.6.0-rc.2
./release final   # 0.6.0-rc.2 → 0.6.0
```

Bumps version, creates a PR, merges, tags, and publishes a GitHub release. PyPI and npm packages are published automatically via CI. Release candidates are marked as GitHub prereleases and published to npm under the `rc` dist-tag.

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