Metadata-Version: 2.4
Name: frago-cli
Version: 0.45.0
Summary: frago - Agent OS for AI agents: runtime, resource management, environment sync, and GUI for non-technical users
Project-URL: Homepage, https://frago.ai
Project-URL: Documentation, https://docs.frago.ai
Project-URL: Repository, https://github.com/tsaijamey/frago.git
Project-URL: Issues, https://github.com/tsaijamey/frago/issues
Author-email: Jamey Tsai <caijia@frago.ai>
License: AGPL-3.0-or-later
License-File: LICENSE
Keywords: agent-os,ai-agent,automation,cdp,chrome,recipe
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Software Development :: Testing
Requires-Python: >=3.13
Requires-Dist: arxiv>=2.3.1
Requires-Dist: certifi>=2025.11.12
Requires-Dist: charset-normalizer>=3.4.4
Requires-Dist: click>=8.1.0
Requires-Dist: fastapi>=0.100.0
Requires-Dist: idna>=3.11
Requires-Dist: markdown>=3.4.0
Requires-Dist: obsws-python>=1.8.0
Requires-Dist: psutil>=7.1.3
Requires-Dist: pydantic>=2.0.0
Requires-Dist: pyperclip>=1.8.0
Requires-Dist: pypinyin>=0.51.0
Requires-Dist: python-dotenv>=1.0.0
Requires-Dist: python-frontmatter>=1.0.0
Requires-Dist: python-slugify>=8.0.0
Requires-Dist: pyyaml>=6.0.0
Requires-Dist: questionary>=2.1.0
Requires-Dist: rapidfuzz>=3.0.0
Requires-Dist: requests>=2.32.5
Requires-Dist: urllib3>=2.5.0
Requires-Dist: uvicorn[standard]>=0.23.0
Requires-Dist: watchdog>=3.0.0
Requires-Dist: websocket-client>=1.9.0
Provides-Extra: dev
Requires-Dist: black>=23.0.0; extra == 'dev'
Requires-Dist: isort>=5.12.0; extra == 'dev'
Requires-Dist: mypy>=1.5.0; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.21.0; extra == 'dev'
Requires-Dist: pytest-cov>=4.1.0; extra == 'dev'
Requires-Dist: pytest>=7.4.0; extra == 'dev'
Requires-Dist: ruff>=0.1.0; extra == 'dev'
Description-Content-Type: text/markdown

# frago

**Skeleton framework for AI Agents** — Let AI remember how to complete tasks, instead of exploring from scratch every time.

[简体中文](README.zh-CN.md)

## Why frago

AI Agents are smart, but unpredictable. Ask the same task 10 times, you might get 10 different results — some work, some don't.

frago solves this with **Recipe system**: validated automation scripts that run deterministically. Once a Recipe works, it works every time.

**Predictable execution. That's what matters.**

> Same philosophy as Anthropic's ["Code execution with MCP"](https://www.anthropic.com/engineering/code-execution-with-mcp): deterministic code beats repeated LLM exploration. frago uses Recipes instead of MCP.

## Comparison

| | **Cowork** | **OpenClaw** | **frago** |
|--|------------|--------------|-----------|
| **Best for** | Daily tasks | Cross-platform assistant | Reusable automation |
| **Workflow** | Chat → AI explores | Chat → AI explores | Explore → Agent auto-solidifies → Deterministic execution |
| **Foundation** | Claude Agent SDK | Custom | Claude Code |

## Quick Start

```bash
uv tool install frago-cli   # Install
frago init                   # Initialize
frago server start           # Start Web UI → http://127.0.0.1:8093
```

> New to `uv`? See [Installation Guide](docs/installation.md).

## Requirements

| Dependency | Version |
|------------|---------|
| Python | 3.13+ |
| Node.js | 20+ |
| Chrome | Latest |

## How It Works

frago integrates with Claude Code through slash commands:

```
/frago.run     Explore and research, accumulate experience
     ↓
/frago.recipe  Solidify experience into reusable recipes
     ↓
/frago.test    Validate recipes (while context is fresh)
```

### The Recipe Advantage

```
AI exploration:   Unpredictable — might succeed, might fail, might take wrong path
                      ↓
                  Once it works → save as Recipe
                      ↓
Recipe execution: Deterministic — validated script, guaranteed results
```

**Recipe = muscle memory. No thinking, just doing.**

## Core Systems

| System | Purpose |
|--------|---------|
| **Recipe** | Reusable automation scripts (chrome-js/python/shell) |
| **Run** | Persistent task context with JSONL logs |
| **CDP** | Native Chrome control (~2MB, no Node.js relay) |
| **Web UI** | Browser-based GUI on port 8093 |

## CLI Commands

```bash
# Recipe management
frago recipe list              # List all recipes
frago recipe run <name>        # Execute recipe

# Browser control
frago chrome navigate <url>
frago chrome click <selector>
frago chrome screenshot <file>

# Server
frago server start/stop/status
```

## Documentation

- [Installation](docs/installation.md) — Setup and prerequisites
- [User Guide](docs/user-guide.md) — Commands and usage
- [Concepts](docs/concepts.md) — Run, Recipe, Skill relationships
- [Architecture](docs/architecture.md) — Technical design
- [Recipes](docs/recipes.md) — Recipe system deep dive

## Resource Sync

Keep your recipes synced across machines:

```bash
frago sync --set-repo git@github.com:you/my-resources.git
frago sync  # Bidirectional sync
```

## License

AGPL-3.0 — See [LICENSE](LICENSE)

## Contributing

- [Submit Issue](https://github.com/tsaijamey/Frago/issues)
- [Discussions](https://github.com/tsaijamey/Frago/discussions)

---

Created with Claude Code
