Metadata-Version: 2.4
Name: proseforge-agent
Version: 0.4.0
Summary: General agent runtime with a built-in ProseForge writing workflow pack.
Author: ProseForge Agent
License: Apache-2.0
Requires-Python: <3.13,>=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pyyaml>=6.0
Requires-Dist: rich>=13.0
Requires-Dist: prompt_toolkit>=3.0
Requires-Dist: tomli>=2.0; python_version < "3.11"
Provides-Extra: dev
Requires-Dist: pytest>=7.0; extra == "dev"
Provides-Extra: ci
Requires-Dist: pytest>=7.0; extra == "ci"
Requires-Dist: pytest-rerunfailures>=13.0; extra == "ci"
Requires-Dist: pytest-repeat>=0.9; extra == "ci"
Dynamic: license-file

> 🌐 [English](README.md) · [简体中文](README.zh-CN.md)

<p align="center">
  <img src="assets/banner.png" alt="ProseForge Agent command center" width="100%">
</p>

<h1 align="center">ProseForge Agent</h1>

<p align="center">
  <strong>A general agent runtime with a built-in ProseForge writing workflow pack.</strong>
</p>

<p align="center">
  <a href="README.zh-CN.md">简体中文</a> ·
  <a href="https://pypi.org/project/proseforge-agent/">PyPI</a> ·
  <a href="https://github.com/remacheybn408-boop/ProseForge-Agent/releases">Releases</a> ·
  <a href="https://github.com/remacheybn408-boop/ProseForge-Agent/pkgs/container/proseforge-agent">GHCR</a>
</p>

<p align="center">
  <a href="https://pypi.org/project/proseforge-agent/"><img src="https://img.shields.io/pypi/v/proseforge-agent?style=for-the-badge&label=PyPI" alt="PyPI version"></a>
  <a href="https://pypi.org/project/proseforge-agent/"><img src="https://img.shields.io/pypi/pyversions/proseforge-agent?style=for-the-badge" alt="Python versions"></a>
  <a href="https://github.com/remacheybn408-boop/ProseForge-Agent/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/remacheybn408-boop/ProseForge-Agent/ci.yml?branch=main&style=for-the-badge&label=CI" alt="CI status"></a>
  <a href="LICENSE"><img src="https://img.shields.io/badge/License-Apache--2.0-green?style=for-the-badge" alt="Apache-2.0 license"></a>
</p>

ProseForge Agent is becoming a general personal agent runtime: a terminal-first system for model setup, sessions, tools, approvals, memory, workflow packs, and project automation. The ProseForge writing workflow pack is the first built-in pack, focused on long-form planning, drafting, review, rewrite, export, and memory closeout.

The terminal experience follows modern agent CLI patterns inspired by [openai/codex](https://github.com/openai/codex), while the implementation stays in the Python CLI stack used by projects like [NousResearch/hermes-agent](https://github.com/NousResearch/hermes-agent): `prompt_toolkit` for interaction, `rich` for readable terminal rendering, and Python as the authoritative runtime.

<table>
<tr><td><b>General runtime</b></td><td>Chat, setup, provider/model switching, sessions, workflow packs, doctor checks, and project binding from one CLI.</td></tr>
<tr><td><b>Workflow packs</b></td><td>Start with General Chat and ProseForge Novel; extend later into research, coding, docs, automation, and personal assistant packs.</td></tr>
<tr><td><b>ProseForge writing pack</b></td><td>Project init, chapter drafting, review, rewrite, export, and memory closeout for long-form writing.</td></tr>
<tr><td><b>Hermes-style terminal stack</b></td><td>Python + <code>prompt_toolkit</code> + <code>rich</code>; no Rust binary is required for ordinary users.</td></tr>
<tr><td><b>Bring your model</b></td><td>Profiles for OpenAI, Anthropic, Gemini, xAI/Grok, DeepSeek, Qwen, GLM, Mimo, MiniMax, Doubao, plus an offline fake provider.</td></tr>
</table>

---

## Quick Install

### Python package

```bash
pip install -U proseforge-agent
pf-agent --help
```

### Linux, macOS, WSL2

```bash
curl -fsSL https://raw.githubusercontent.com/remacheybn408-boop/ProseForge-Agent/main/scripts/install.sh | sh
```

### Windows PowerShell

```powershell
iex (irm https://raw.githubusercontent.com/remacheybn408-boop/ProseForge-Agent/main/scripts/install.ps1)
```

The one-line installer uses PyPI + `uv tool` by default. It installs or upgrades `proseforge-agent`, puts the manager bin directory first on PATH, runs `pf-agent doctor`, then starts `pf-agent setup --quick`.

### Docker

```bash
docker compose up
docker compose run --rm pf-agent pf-agent quickstart
```

The default `docker-compose.yml` uses the published GHCR image:
`ghcr.io/remacheybn408-boop/proseforge-agent:latest`. It does not build from
source, so normal users do not need Python, uv, or a local checkout beyond the
compose file.

### Secrets and env files

`pf-agent setup --quick` runs the guided setup. setup --quick writes provider keys to `.pf-agent/.env`.
config.yaml does not store raw API keys; it stores provider metadata and key
references. Environment precedence is:

```text
shell env > .env.local > .env > .pf-agent/.env > machine defaults
```

---

## Start

```bash
pf-agent quickstart
pf-agent setup --quick
pf-agent
pf-agent workflow list
pf-agent workflow use proseforge
pf-agent project init --type novel --slug my-novel
pf-agent doctor
```

Bare `pf-agent` opens the general Agent Runtime TUI. The legacy stdlib terminal surface remains available with:

```bash
pf-agent tui --legacy
```

## Workflow Packs

`general` is the default open-ended runtime workflow. `proseforge` activates the ProseForge writing workflow pack for novel and long-form writing projects. Future packs can add research, coding, document, automation, and personal assistant flows without redefining the core agent runtime.

## License

Apache-2.0. See `LICENSE`.
