Metadata-Version: 2.4
Name: uptexter
Version: 0.1.1
Summary: AI Development Memory Layer — automated multi-project change tracking and daily summaries
Author: Uptexter Team
License-Expression: MIT
Keywords: developer-tools,ai,agentic-ide,antigravity,claude-code,cursor,memory,changelog,productivity
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
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 :: Software Development :: Documentation
Classifier: Topic :: Utilities
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: google-genai>=2.0.0
Requires-Dist: pyyaml>=6.0
Requires-Dist: requests>=2.30.0
Requires-Dist: python-dotenv>=1.0.0
Dynamic: license-file

# Uptexter — AI Development Memory Layer

> **Don't make developers remember to document their AI-assisted development. Make the development workflow remember for them.**

Uptexter is a developer productivity tool and CLI for engineers who use agentic AI IDEs such as **Claude Code**, **Antigravity**, **Cursor**, and similar tools.

When developers use agentic AI, they prompt agents to implement features, fixes, refactors, and configuration changes. The work gets completed, but developers frequently forget what was accomplished across multiple codebases throughout the day. Uptexter acts as a lightweight, local-first **development memory layer**.

---

## Core Workflow

```text
Developer
    ↓
Agentic IDE (Claude Code / Antigravity / Cursor)
    ↓
Development work completed
    ↓
Agent logs meaningful event via Uptexter Skill
    ↓
Universal Development Log (YAML / JSON)
    ↓
Scheduled daily processing (e.g. 9:00 PM)
    ↓
Gemini LLM summarizes the day's outcomes
    ↓
Daily Digest delivered via Telegram or Gmail
```

---

## Key Principles

- **Local-first**: Development logs live on your machine (`~/.uptexter/` or project workspace). No cloud databases.
- **No continuously running services**: No background daemons, FastAPI servers, Docker, or Redis. Driven by native OS schedulers (Windows Task Scheduler, cron).
- **Provider abstractions**: Pluggable LLM providers (`GeminiProvider`) and Notification providers (`TelegramProvider`, `GmailProvider`).
- **Modular Agent Skills**: Portable skill/rule definitions for Antigravity, Claude Code, and Cursor that capture **meaningful outcomes**, not verbose telemetry or secrets.

---

## Quickstart

### 1. Installation

```bash
pip install .
# or for development:
pip install -e .
```

### 2. Interactive Menu

Run `uptexter` without arguments to launch the interactive CLI:

```bash
uptexter
```

```text
╭────────────────────────────────────╮
│             UPTEXTER               │
│     AI Development Memory CLI      │
╰────────────────────────────────────╯

What would you like to do?

1. Status & Overview
2. Log a Development Change
3. View Today's Activity
4. Generate Today's Summary
5. Install Agent Skill
6. Configure LLM
7. Configure Notifications
8. Test Configuration
9. Manage Daily Schedule
0. Exit
```

---

## CLI Reference

### Check Status
```bash
uptexter status
```
Shows configuration files, active providers, masked credentials, schedule status, and today's event count.

### Log a Change Manually
```bash
uptexter log -p "CoreAPI" -t "feature" -m "Added capability scoring" -d "Confidence scoring logic added"
```

### View Today's Activity
```bash
uptexter activity
```

### Generate & Deliver Daily Summary
```bash
# Preview summary without sending
uptexter summary --dry-run

# Run full pipeline (generate, archive, and send)
uptexter summary
```

### Install Agent Skills into Current Working Directory
Navigate to any project folder and run:
```bash
agent-skill install
# or:
uptexter skill install
```
This automatically detects the environment (Antigravity, Claude Code, Cursor) and installs the skill directly into the **current working directory**.

To check installation status in the current folder:
```bash
agent-skill status
# or:
uptexter skill status
```

To install into a custom directory:
```bash
agent-skill install --target "D:/Path/To/Another/Project"
```

### Choose Datafile Storage Folder (File Explorer)
To graphically select the folder where the universal datafile (`universal_changelog.yaml`) should be stored:
```bash
uptexter config storage
```
This opens the native **Windows File Explorer** dialog where you can browse and select any folder on your computer. You can also trigger this from option `6` in the `uptexter` interactive menu.

### Configure Notifications & LLM
```bash
uptexter config show
uptexter config llm
uptexter config notifications
uptexter config storage
```


### Test Integrations
```bash
uptexter test all
uptexter test llm
uptexter test notifications
```

### Manage Daily OS Schedule
Configures Windows Task Scheduler (or Unix cron) to run daily at 9:00 PM:
```bash
uptexter schedule install --time 21:00
uptexter schedule status
uptexter schedule remove
```

---

## Project Structure

```text
uptexter/
├── pyproject.toml                     # Python package build configuration
├── README.md                          # Documentation
│
├── src/
│   └── uptexter/
│       ├── __init__.py                # Package version
│       ├── cli.py                     # CLI dispatcher & interactive menu
│       ├── config.py                  # Config manager (~/.uptexter/config.yaml)
│       ├── logger.py                  # Dev log manager (YAML/JSON)
│       ├── summary.py                 # Summary orchestrator
│       ├── scheduler.py               # OS scheduler (Windows Task Scheduler & cron)
│       │
│       ├── llm/
│       │   ├── base.py                # LLMProvider abstract base class
│       │   └── gemini.py              # GeminiProvider (gemini-3.6-flash)
│       │
│       ├── notifications/
│       │   ├── base.py                # NotificationProvider abstract base class
│       │   ├── telegram.py            # TelegramProvider
│       │   └── gmail.py               # GmailProvider (SMTP)
│       │
│       └── skills/
│           ├── manager.py             # Multi-agent skill manager
│           ├── antigravity.py         # Antigravity skill installer
│           ├── claude.py              # Claude Code skill installer
│           └── cursor.py              # Cursor rules installer
│
├── skills/                            # Canonical skill assets
│   ├── antigravity/
│   │   └── SKILL.md
│   ├── claude/
│   │   └── SKILL.md
│   └── cursor/
│       └── uptexter.mdc
│
├── universal_changelog.yaml           # Preserved working changelog
├── summaries/                         # Daily archived summaries
└── tests/                             # Unit tests
```

---

## Security & Secrets

- Secrets are **never** stored inside the development log.
- API keys are masked in all console outputs (e.g. `****f4yA`).
- `.env` and `.uptexter/` are excluded from Git.
- Skills explicitly instruct AI agents never to record secrets, tokens, or credentials.
