Metadata-Version: 2.4
Name: caura-sdk
Version: 1.0.1
Summary: Caura (formerly MemClaw) — governed shared memory for AI agent fleets. Installs caura-client under the caura-sdk name.
Author-email: Caura <hello@caura.ai>
License: Apache-2.0
Project-URL: Homepage, https://caura.ai
Project-URL: Documentation, https://caura.ai/docs
Project-URL: Source, https://github.com/caura-ai/caura
Project-URL: Issues, https://github.com/caura-ai/caura/issues
Project-URL: Changelog, https://github.com/caura-ai/caura/tags
Project-URL: Benchmark, https://github.com/caura-ai/caura-longmemeval
Keywords: caura,agent memory,ai agent memory,shared memory,multi-agent,agent db,agent fleet memory,mcp,mcp-server,governed memory,llm memory,memclaw
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Typing :: Typed
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Requires-Dist: caura-client>=1.0.0

# Caura — governed shared memory for AI agent fleets

Caura (formerly MemClaw) is an Agent DB — governed shared memory for AI agent fleets. Agents commit what they learn once; every agent in the fleet recalls it through MCP tools, REST, or Caura Rail (preview), subject to tenant isolation, visibility scope (scope_agent / scope_team / scope_org) and caller trust level.

`caura-sdk`, [`caura`](https://pypi.org/project/caura/) and
[`caura-client`](https://pypi.org/project/caura-client/) all install the same
official Python client. `caura-client` is the canonical name; the other two
exist so that install instructions pointing at them resolve instead of 404ing.
The import package here is `caura_sdk`.

## Install

```bash
pip install caura-sdk
```

## Quickstart

```python
from caura_sdk import Caura

# Get an API key at https://caura.ai, or point base_url at a self-hosted server.
with Caura("mc_xxx", tenant_id="my-team", agent_id="my-agent") as mc:
    # Commit a memory once. The server enriches it with type, title, tags and importance.
    mc.write("Q3 revenue target is $4M, set on 2026-04-15.")

    # Search: ranked raw results.
    for m in mc.search("Q3 revenue target", top_k=5):
        print(m.title, "—", m.content)

    # Recall: an LLM-synthesized context brief.
    print(mc.recall("Q3 revenue target").summary)
```

Self-hosted? Pass `base_url="http://localhost:8000"`. The full client API is on the
[caura-client](https://pypi.org/project/caura-client/) page.

## Connect an MCP client

Agents that speak MCP (Claude Code, Cursor, OpenClaw and others) reach the same
memory without any SDK. Copy an API key from the [caura.ai](https://caura.ai)
dashboard and add:

```json
{
  "mcpServers": {
    "caura": {
      "url": "https://caura.ai/mcp",
      "headers": { "X-API-Key": "mc_your_api_key_here" }
    }
  }
}
```

For a production fleet, provision one agent-scoped credential per agent; see
[per-agent keys](https://caura.ai/docs/integrations/per-agent-keys). With a
tenant-scoped dashboard key, pass an explicit `agent_id` on every tool call.

## Three ways agents use memory

- **Deterministic: [Caura Rail](https://github.com/caura-ai/caura-rail) (preview).**
  Your code runs recall before every agent turn and commit after it, so the
  model cannot skip the memory step.
- **Agentic: MCP tools or REST.** The agent decides when to call `caura_write`
  and `caura_recall`, through the MCP config above or this client.
- **Reflective: the [Interviewer](https://caura.ai/docs/interviewer).** Caura
  reads the agent's own session transcript after the fact and stores the
  decisions and preferences the agent never stopped to record.

## Links

- Documentation: https://caura.ai/docs
- Source: https://github.com/caura-ai/caura (Apache-2.0)
- Issues: https://github.com/caura-ai/caura/issues
- Benchmark: https://github.com/caura-ai/caura-longmemeval (LongMemEval harness)
- Canonical package: [caura-client](https://pypi.org/project/caura-client/)


