Metadata-Version: 2.4
Name: local-yep
Version: 0.3.2
Summary: Local Yep — a Claude-Code-native, local-first agent framework with a persistent recall->reflect memory loop. Works with your own Claude; nothing in the cloud.
Author-email: Yepgent <yepgent@gmail.com>
License: Proprietary
Project-URL: Homepage, https://yepgent.com
Keywords: claude-code,agent,memory,mcp,local-first
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Classifier: Environment :: Console
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy>=1.24
Requires-Dist: platformdirs>=4.0
Requires-Dist: mcp<2,>=1.0
Requires-Dist: tomli>=2.0; python_version < "3.11"
Requires-Dist: install-manifest>=0.5
Requires-Dist: packaging>=21
Provides-Extra: embeddings
Requires-Dist: fastembed>=0.3; extra == "embeddings"
Provides-Extra: pro
Requires-Dist: cryptography>=42; extra == "pro"
Provides-Extra: secrets
Requires-Dist: keyring>=24; extra == "secrets"
Provides-Extra: dev
Requires-Dist: pytest>=7.4; extra == "dev"
Requires-Dist: cryptography>=42; extra == "dev"
Dynamic: license-file

<p align="center">
  <img src="assets/logo.svg" alt="Local Yep" width="128" height="128">
</p>

<h1 align="center">Local Yep</h1>

<p align="center">
  <strong>A local-first agent framework for your Claude Code</strong> — works with your own
  Claude (Pro/Max or API key); we sell the framework and tools, <em>never Claude</em>.
</p>

<p align="center">
  <img alt="Claude Code add-on" src="https://img.shields.io/badge/Claude_Code-add--on-0f9d76">
  <img alt="Python 3.10+" src="https://img.shields.io/badge/Python-3.10%2B-0c7d5e">
  <img alt="platforms" src="https://img.shields.io/badge/platform-win_%7C_mac_%7C_linux-2fd4a8">
  <img alt="memory 100% local" src="https://img.shields.io/badge/memory-100%25_local-0f9d76">
  <img alt="license proprietary" src="https://img.shields.io/badge/license-Proprietary-5c6862">
</p>

---

Local Yep turns your Claude Code into **Yep** — a personal agent with durable
memory and an identity that's yours. It runs on your *own* Claude and **never
touches your Claude credentials**. Memory lives in a local SQLite database under
`~/.local-yep/`; nothing in the core paths phones home.

## Why Local Yep

- 🧠 **Durable memory that's yours.** Facts, episodes, and reflections persist in
  local SQLite (FTS5). Yep recalls before it reasons and reflects after it acts —
  so it gets to know you across sessions, not just within one.
- 🔒 **Local-first, private by default.** Your memory never leaves your machine
  and the core paths open no network socket. Your Claude auth stays yours.
- 🎭 **An identity, not a chatbot.** A frozen ethical spine (honesty,
  memory-is-precious, privacy, calibrated uncertainty) plus a personalizable
  voice — name, owner, preset, and tone dials — set in a quick first-run wizard.
- 🧩 **A local tool & pack ecosystem.** Discover, install, and run tools and packs
  from a toolspace, with per-tool credentials kept in your OS keyring.
- ⚡ **Drop-in for Claude Code.** Wires in as an MCP server + hooks. Run `gent` in
  any folder, or `yepgent init` a specific project — and `yepgent uninstall`
  cleanly reverses it.

## Install

> **Requires** Python 3.10+ and your own **Claude Code**
> (https://claude.com/claude-code). Not on PyPI yet — the alpha installs from a wheel.

**Testers** — one command, from the folder with the wheel + script you were given:

```sh
./install.sh  --wheel ./local_yep-0.1.0-py3-none-any.whl  [--gated] [--token <t>]   # macOS / Linux
./install.ps1 -Wheel  .\local_yep-0.1.0-py3-none-any.whl  [-Gated]  [-Token  <t>]   # Windows
```

Then open a new terminal and run `gent`. On install you'll accept the alpha
[Terms](./TERMS.md) (type `I AGREE`, or pass `--accept-terms` for an unattended
install). Full guide: [`docs/install.md`](./docs/install.md) · gated alpha
(operator + tester): [`docs/alpha-guide.md`](./docs/alpha-guide.md).

**Developers:**

```sh
pip install -e .
yepgent --help
```

## Quickstart

```sh
gent                       # launch Claude Code as Yep in the current folder
gent "help me ship X"      # …with a first prompt
gent /path/to/project      # …in another folder
yepgent onboard            # set Yep's name / owner / voice anytime
```

Your first `gent` offers a quick setup (name / owner / voice) — skippable, and
one-time.

## Commands

| Command | What it does |
|---|---|
| `gent [dir] ["prompt"]` | Launch Claude Code as Yep anywhere — no per-project setup |
| `yepgent init [--force]` | Wire Yep into a specific project (managed block + hooks + MCP) |
| `yepgent upgrade` | Re-generate the wiring against the installed version |
| `yepgent uninstall [--purge-memory]` | Remove the wiring (keeps memory; `--purge-memory` wipes `~/.local-yep/`) |
| `yepgent onboard` · `identity edit` | Configure name / owner / preset / voice |
| `yepgent memory reindex \| backup \| stats` | Local memory maintenance |
| `yepgent secrets …` | Per-tool credentials in your OS keyring |
| `yepgent tools auth <tool>` | Authorize a tool's OAuth (e.g. Google) |
| `yepgent license status \| activate <token>` | Manage activation (gated builds) |
| `yepgent doctor [--json]` | Offline health report — wiring, PATH, memory DB, integrity (paste-safe for bug reports) |
| `yepgent confirm` | Type the confirmation phrase to authorize a protected-file edit (5-min token) |

## How it works

- **Memory** — `~/.local-yep/memory.db` (SQLite + FTS5). Recall is lexical (BM25)
  by default; opt in to **semantic** recall with the embeddings extra.
- **Identity** — a read-only ethical spine plus a configurable overlay, rendered
  into every session by the SessionStart hook.
- **Wiring** — a slim memory MCP server + four Claude Code hooks (SessionStart /
  UserPromptSubmit / Stop, plus a PreToolUse guard that protects the spine,
  identity, and hook wiring from unconfirmed edits). `gent` runs that wiring
  globally via a portable profile; `yepgent init` writes it into a project. Either way, your project's own
  servers (e.g. C3) keep working alongside it.

### Optional: semantic recall

```sh
pip install 'local-yep[embeddings]'   # or: pipx inject local-yep fastembed
yepgent memory reindex                # backfill vectors for existing rows
```

Adds meaning-based recall (a 768-dim local model, ~140 MB one-time download, fully
offline thereafter) alongside the lexical path. The default stays BM25 — no model
download, nothing fetched.

## Privacy & the one rule

Memory is **100% local**. We **never** sell, store, proxy, or resell Claude — you
bring your own Claude auth and it stays yours. The binding guardrails live in
[`docs/auth-guardrails.md`](./docs/auth-guardrails.md).

## Docs

- [`docs/install.md`](./docs/install.md) — install & uninstall
- [`docs/alpha-guide.md`](./docs/alpha-guide.md) — gated alpha (operator + tester)
- [`docs/user-guide.html`](./docs/user-guide.html) — full end-user guide
- [`docs/positioning.md`](./docs/positioning.md) · [`docs/pricing.md`](./docs/pricing.md) · [`docs/auth-guardrails.md`](./docs/auth-guardrails.md)
- [`TERMS.md`](./TERMS.md) — alpha terms & acknowledgment
- [`PLAN.md`](./PLAN.md) — the living build plan

## Status

Private alpha — works with your own Claude Code on Windows / macOS / Linux.

---

<p align="center"><sub>Local Yep — your agent, your memory, your machine.</sub></p>
