Metadata-Version: 2.4
Name: progi
Version: 0.3.0
Summary: An MCP-native workflow engine that teaches your agent how you like to get things done.
Project-URL: Homepage, https://progi.dev/
Project-URL: Repository, https://github.com/zseta/progi
Project-URL: Bug Tracker, https://github.com/zseta/progi/issues
License: MIT
License-File: LICENSE
Keywords: agent,automation,llm,mcp,workflow,workflow-engine
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
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
Requires-Python: >=3.11
Requires-Dist: alembic>=1.13
Requires-Dist: fastapi>=0.115
Requires-Dist: fastmcp>=2.0
Requires-Dist: jinja2>=3.1
Requires-Dist: platformdirs>=4.0
Requires-Dist: python-multipart>=0.0.9
Requires-Dist: sqlalchemy>=2.0
Requires-Dist: uvicorn>=0.30
Provides-Extra: dev
Requires-Dist: httpx>=0.27; extra == 'dev'
Requires-Dist: mcp[cli]>=1.27.2; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Requires-Dist: ruff>=0.6; extra == 'dev'
Description-Content-Type: text/markdown

# Progi - MCP-native Workflow Engine

Progi teaches your agent how **you** like to get things done. So you can do your best work without re-explaining your process or losing context between sessions.


[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
[![Python](https://img.shields.io/pypi/pyversions/progi)](https://pypi.org/project/progi/)
[![PyPI](https://img.shields.io/pypi/v/progi)](https://pypi.org/project/progi/)
[![MCP](https://img.shields.io/badge/MCP-compatible-6366f1)](https://modelcontextprotocol.io)

---

## Get started

Add Progi to your MCP client config (VS Code / Cursor / Zed / Claude Code / etc):

```json
{
  "mcpServers": {
    "progi": {
      "command": "uvx",
      "args": ["progi"]
    }
  }
}
```

Or with the Claude Code CLI:

```bash
claude mcp add progi -- uvx progi
```

Requires [uv](https://docs.astral.sh/uv/). That's it — your AI now has tools to create workflows, follow playbooks step by step, and keep a kanban board current. The web UI (Progi Monitoring) starts automatically at `http://127.0.0.1:8000`.

---

## How it works

**1. Describe your workflow**

Describe your process in plain language. You can be detailed or just provide a rough idea. Progi stores it as a structured workflow with per-step playbooks.

**2. Run tasks, stay in the loop**

*"Hey Progi, continue working on xy task."* Your agent loads the workflow, works through each step using your playbooks, and loops you in at critical checkpoints to review output.

**3. Monitor progress**

Progi Monitoring gives you a live view of every running and completed task — status, progress, and the full output history across all your workflows.

**4. Optimize as you go**

Tweak playbooks between runs. Because workflows live in a database and survive context resets, every future task picks up your changes automatically — your process gets sharper with each iteration.

---

## MCP Tools

### Work loop

| Tool | Description |
|---|---|
| `create_task` | Create a new task under a given workflow (status `todo`); returns a preview of its first step |
| `list_tasks` | List tasks, optionally filtered by status and/or workflow |
| `start_or_continue_task` | Main work-loop entry point — starts or resumes a task and returns the current step's playbook, input data, and output spec |
| `update_progress_notes` | Overwrite a task's progress notes (mid-step save point) |
| `submit_output` | Mark the current step complete, store its output, and advance to the next step (or mark done) |

### Workflow authoring

| Tool | Description |
|---|---|
| `get_process_skeleton_prompt` | Return the Pass 1 system prompt for turning a plain-language description into a structured workflow skeleton |
| `get_playbook_authoring_prompt` | Return the Pass 2 system prompt for authoring a step's playbook (injects workflow context) |
| `save_workflow` | Persist a new workflow, its steps, and playbooks |
| `list_workflows` | Return all workflows with their ordered steps |
| `update_playbook` | Replace the playbook content for a step |

Authoring is two passes: Pass 1 turns a plain-language description into a structured skeleton; Pass 2 authors each step's playbook. `save_workflow` persists both.

---

## Configuration

| Variable | Default | Purpose |
|---|---|---|
| `PROGI_DB_PATH` | OS data dir (`platformdirs`) | SQLite file location |
| `PROGI_WEB_HOST` | `127.0.0.1` | Web UI bind host |
| `PROGI_WEB_PORT` | `8000` | Web UI port |
| `PROGI_NO_WEB` | `0` | Set to `1` to disable the web UI |

Run modes: `uvx progi` (MCP + web UI), `uvx progi --no-web` (MCP only), `uvx progi-web` (web UI only).

> Use an absolute path for `PROGI_DB_PATH`

---

## License

MIT
