Metadata-Version: 2.5
Name: pairwit
Version: 0.0.6
Summary: The coding agent that asks before it acts — calm local TUI with Plan/Build, approvals, and /schedule
Project-URL: Homepage, https://pairwit.dev
Project-URL: Repository, https://github.com/pairwit/pairwit
Author-email: SM Sabbir Amin <sabbiramin.cse11ruet@gmail.com>
License: MIT
Keywords: coding-agent,llm,pairwit,tui
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Software Development
Requires-Python: >=3.10
Requires-Dist: anthropic>=0.40
Requires-Dist: ddgs>=9.0
Requires-Dist: html2text>=2024.2.26
Requires-Dist: httpx>=0.27
Requires-Dist: openai>=1.0
Requires-Dist: pillow>=10.0
Requires-Dist: python-dotenv>=1.0
Requires-Dist: textual-fspicker>=1.0
Requires-Dist: textual[syntax]>=1.0
Description-Content-Type: text/markdown

<p align="center">
  <img src="https://pairwit.dev/assets/pairwit-mascot-8bit.png" alt="Pairwit mechanical cat mascot" width="168" height="168" />
</p>

<h1 align="center">Pairwit</h1>

<p align="center">
  <strong>The coding agent that asks before it acts.</strong>
</p>

<p align="center">
  A calm terminal desk — Plan when you think, Build when you’re ready.<br/>
  Writes and bash pause for <strong>Once · Session · Always · Deny</strong>.
</p>

<p align="center">
  <a href="https://pairwit.dev">pairwit.dev</a>
  ·
  <a href="https://pairwit.dev/guide.html">Guide</a>
  ·
  <a href="https://pypi.org/project/pairwit/">PyPI</a>
  ·
  <a href="https://github.com/pairwit/pairwit">GitHub</a>
</p>

<p align="center">
  <img alt="PyPI version" src="https://img.shields.io/pypi/v/pairwit" />
  <img alt="Python versions" src="https://img.shields.io/pypi/pyversions/pairwit" />
  <img alt="License" src="https://img.shields.io/pypi/l/pairwit" />
</p>

---

## Install

**macOS / Linux**

```bash
pip install -U pairwit && pairwit
```

**Windows**

```bash
py -m pip install -U pairwit && py -m pairwit
```

Public **alpha** — APIs and UX may change. Feedback welcome.

On first launch, Pairwit opens a guided setup: **provider → API key → model → connection check**. Keys are saved to `~/.pairwit/.env`.

---

## Why Pairwit

| | |
|---|---|
| **Consent-first** | Mutating tools ask by default. Remember Once / Session / Always in `.pairwit.permissions`. |
| **Plan / Build** | Plan to reason read-only; Tab into Build when you’re ready to change files. |
| **One desk** | Chat, Files, Editor, and `/schedule` in a local Textual TUI — not a cloud watcher. |
| **Your models** | Moonshot (Kimi), OpenAI, Anthropic, OpenRouter, DeepSeek, Ollama, and custom OpenAI-compatible endpoints. |

### What it is — and isn’t

- **Is:** a consent-first coding agent for your terminal
- **Is:** Plan/Build, approvals, sessions, `/schedule`
- **Isn’t:** a full IDE or silent autopilot

---

## Quick start

```bash
cd your-project
pairwit
```

Then ask anything. Attach with `Ctrl+O`, mention a file with `@`, switch Plan/Build with `Tab`.

Project rules live in `.pairwit.md`. Home config: `~/.pairwit/`.

---

## From a checkout

```bash
pip install -e .
pairwit
# or
python -m pairwit
```

```
pairwit/           # Python package
  ai/              # providers / streaming
  agent/           # coding loop + events
  tools/           # builtins + MCP
  domain/          # sessions, permissions, prompts
  tui/             # Textual app + theme + widgets/
  core.py          # attachments / mentions
docs/              # product docs
site/              # pairwit.dev (Cloudflare Pages)
```

Formerly **Torso** (and before that Greywit / Astro).

---

## License

MIT — see the repo for details.
