Metadata-Version: 2.4
Name: rivera-cli
Version: 0.1.6
Summary: A companion memory agent that lets your agents focus and improve while you keep ownership of everything they learn.
Project-URL: Homepage, https://api.wirtel.ca
Project-URL: Documentation, https://api.wirtel.ca/documentation
Project-URL: Repository, https://github.com/Mohit1298/rivera-cli
Project-URL: Bug Tracker, https://github.com/Mohit1298/rivera-cli/issues
Author-email: Mohit Bendale <mohitab2005@gmail.com>
License-Expression: MIT
License-File: LICENSE
Keywords: agent memory,agentic ai,llm,memory layer,rag,rivera,semantic memory
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Information Technology
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Utilities
Requires-Python: <4,>=3.10
Requires-Dist: fastapi>=0.104.0
Requires-Dist: httpx>=0.25.0
Requires-Dist: moorcheh-sdk>=1.3.7
Requires-Dist: pydantic-settings>=2.0.0
Requires-Dist: pydantic>=2.0.0
Requires-Dist: pyjwt>=2.8.0
Requires-Dist: python-dotenv>=1.0.0
Requires-Dist: python-multipart>=0.0.7
Requires-Dist: pyyaml>=6.0
Requires-Dist: rapidfuzz>=3.0.0
Requires-Dist: rich>=13.0.0
Requires-Dist: typer>=0.9.0
Requires-Dist: uvicorn[standard]>=0.24.0
Provides-Extra: all
Requires-Dist: build<2,>=1.2.2.post1; extra == 'all'
Requires-Dist: mypy<2,>=1.10.0; extra == 'all'
Requires-Dist: pre-commit<5,>=4.4.0; extra == 'all'
Requires-Dist: pytest-asyncio>=0.21.0; extra == 'all'
Requires-Dist: pytest-mock<4,>=3.12.0; extra == 'all'
Requires-Dist: pytest-timeout>=2.1.0; extra == 'all'
Requires-Dist: pytest<9,>=8.2.0; extra == 'all'
Requires-Dist: ruff<0.15,>=0.14.6; extra == 'all'
Requires-Dist: twine<7,>=6.1.0; extra == 'all'
Description-Content-Type: text/markdown

<div align="center">
  <h1>🌊 Rivera</h1>
  <h3>Persistent memory for your AI coding agents</h3>
  <p><em>Your agents forget everything between sessions. Rivera makes them remember.</em></p>
  <p>
    <a href="https://api.wirtel.ca">Rivera Cloud</a> ·
    <a href="https://api.wirtel.ca/documentation">Docs</a> ·
    <a href="https://api.wirtel.ca/console">Console</a>
  </p>
</div>

---

Every time Claude Code, Cursor, or Codex starts a fresh session, it starts from zero —
your preferences, your past decisions, and your codebase's quirks are gone. Rivera is a
memory CLI that persists all of that across sessions and across tools, backed by
[Rivera](https://api.wirtel.ca), a semantic memory engine with exact (non-approximate)
vector search and zero indexing delay: store a memory and it is searchable the same
millisecond.

```
$ rivera remember "cua-driver Rust build needs DEVELOPER_DIR pointing at full Xcode" --type fact
Memory stored successfully!  Type: fact | Confidence: 0.95

$ rivera recall "how do I build the rust driver"
→ cua-driver Rust build needs DEVELOPER_DIR pointing at full Xcode   (score 0.39)

$ rivera answer "what does the rust build need?"
→ The build requires full Xcode via DEVELOPER_DIR (Source: chunk 1).
```

## Three primitives

| Command | What it does |
|---|---|
| `rivera remember` | Store a typed memory — searchable instantly, no indexing wait |
| `rivera recall` | Semantic search over everything stored, with temporal filters (`--as-of`, `--changed-since`, `--recent`) |
| `rivera answer` | One grounded, cited answer synthesized from your memories (RAG built in) |

Memories are **typed** (13 categories: `fact`, `preference`, `decision`, `goal`,
`instruction`, `learning`, `error`, …) and carry **confidence** and **provenance**
metadata, so an explicit user statement never gets confused with an inferred hunch.

## Quickstart

```bash
# 1. Install
pip install rivera-cli

# 2. Get a free API key at https://api.wirtel.ca/signup
#    (free plan: 2,000 requests + 200 GenAI answers / month)
export RIVERA_API_KEY="rv_..."

# 3. Create your agent and go
rivera agent create my-agent
rivera remember "User prefers concise answers" --type preference
rivera recall "communication style"
rivera answer "what did we decide about the database schema?"
```

Configuration lives in `~/.rivera/` (`.env` for credentials, `config.yaml` for settings).
Point at a different Rivera deployment with `RIVERA_BASE_URL`.

## Agent integrations

Connect Rivera to your coding agent so memory works automatically — context injected at
session start, durable decisions captured as you work:

```bash
rivera connect claude-code    # also: cursor, codex, windsurf, cline, continue, ...
```

## More than a CLI

- **Local REST API + Web UI** — `rivera serve` / `rivera ui`
- **Batch ingestion** — `rivera remember --batch memories.json`, `--from-conversation` to
  extract facts from chat logs, `rivera upload` for PDF/DOCX/CSV/MD files
- **Memory hygiene** — `rivera conflicts` detects contradictions; `rivera daily-summary`
  digests what changed; `rivera edit` / `rivera forget` for corrections
- **Project sync** — `rivera memory sync` writes a `MEMORY.md` snapshot into your repo

## How it works

```
rivera CLI ──HTTPS──▶ Rivera (api.wirtel.ca)
                      ├─ exact cosine search over pgvector (no ANN, deterministic)
                      ├─ OpenAI embeddings (text-embedding-3-small)
                      └─ grounded answers (gpt-4o-mini) with citations
```

Your memories live in your Rivera account — per-tenant isolation, API keys hashed at
rest, revocable from the [console](https://api.wirtel.ca/console). Self-hosting Rivera
is possible too: the backend is a standard FastAPI + Postgres/pgvector service.

## Acknowledgments

Rivera began as a fork of [memanto](https://github.com/moorcheh-ai/memanto) (MIT, EdgeAI
Innovations Inc.) and preserves its excellent typed-memory model and CLI ergonomics.
The backend, retrieval engine, auth, and cloud service are Rivera — an independent
implementation. See [LICENSE](LICENSE).

## License

MIT
