Metadata-Version: 2.4
Name: alfred-assistant
Version: 0.1.0
Summary: The Rememberer - A persistent memory-augmented LLM assistant
Project-URL: Homepage, https://github.com/jeremysball/alfred
Project-URL: Repository, https://github.com/jeremysball/alfred
Project-URL: Issues, https://github.com/jeremysball/alfred/issues
Author-email: Jeremy Ball <jeremysball@pm.me>
License: MIT
Keywords: adhd-aid,ai,assistant,cli,executive-assistant,llm,memory,personal-growth,telegram
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Communications :: Chat
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.12
Requires-Dist: aiofiles>=23.0
Requires-Dist: aiohttp>=3.9
Requires-Dist: numpy>=1.24
Requires-Dist: openai>=1.0
Requires-Dist: pydantic-settings>=2.0
Requires-Dist: pydantic>=2.0
Requires-Dist: python-dotenv>=1.0
Requires-Dist: python-telegram-bot>=21.0
Requires-Dist: tiktoken>=0.5
Provides-Extra: dev
Requires-Dist: dotenv-cli>=3.0; extra == 'dev'
Requires-Dist: mypy>=1.8; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.23; extra == 'dev'
Requires-Dist: pytest-cov>=4.0; extra == 'dev'
Requires-Dist: pytest-mock>=3.12; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Requires-Dist: respx>=0.21; extra == 'dev'
Requires-Dist: ruff>=0.2; extra == 'dev'
Description-Content-Type: text/markdown

# Alfred

![Memory Moth Banner](docs/assets/memory-moth-banner.png)

**Alfred manages context intelligently.**

Not just memory. He knows what matters, when to bring it up, and what connects to now. Other assistants start fresh every time. Alfred builds a relationship with you.

## Why This Matters

You know that feeling when you start a new ChatGPT conversation and have to explain your entire project from scratch? Or when you mention a preference you've stated ten times before?

Alfred doesn't make you repeat yourself.

```
You: What did we decide about the database?

Alfred: You went with PostgreSQL over SQLite last Tuesday. The main reasons were:
- You need concurrent access (5+ users)
- JSONB queries for the metadata field
- Your team already knows Postgres

You also picked UUIDs for primary keys. Want me to pull up the full conversation?
```

That's not a transcript. That's Alfred actually remembering.

## Your Data Stays With You

Alfred runs on your machine. Your conversations never leave. No cloud storage, no corporate servers, just your files on your computer.

And you don't configure Alfred. You just talk to him. Tell him your preferences, your projects, how you communicate. He learns. He adapts. No YAML files to edit, no slash commands to memorize.

## Getting Started

```bash
pip install alfred-ai
export KIMI_API_KEY=your_key
export OPENAI_API_KEY=your_key
alfred
```

Then just start talking.

## How It Works

```mermaid
flowchart LR
    You["You"] -->|message| Alfred["Alfred"]
    Alfred -->|embed| Memory[(Memory Store)]
    Memory -->|relevant context| Alfred
    Alfred -->|prompt + context| LLM["LLM Provider"]
    LLM -->|response| Alfred
    Alfred -->|reply| You
```

Every message gets embedded and stored. When you talk, Alfred searches by meaning, not keywords, and pulls the right context into your session.

Over time, he learns what matters. Which details are important. How you think. The context he brings isn't just relevant. It's intelligent.

## What Alfred Does

**Manages context intelligently.** Brings the right information forward at the right time, without being asked.

**Works with tools.** Alfred can read your files, write code, and run shell commands when you ask.

**Fits your workflow.** Chat in your terminal or through Telegram.

**Plays nice with others.** Works with Kimi, OpenAI, or any OpenAI-compatible API.

## Contributing

Alfred is young but useful. If you want to help:

- Make him smarter about what to remember
- Improve how he learns your preferences over time
- Add better test coverage
- Build conversation summarization for long chats

Check [AGENTS.md](AGENTS.md) for how we work. Pull requests and issues welcome.

## License

MIT
