Metadata-Version: 2.4
Name: uag
Version: 0.4.40
Summary: A powerful tool execution agent
Author-email: Hirofumi Ukawa <hirofumi@ukawa.biz>
License-Expression: Apache-2.0
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: mdformat>=1.0.0
Requires-Dist: openai>=2.30.0
Requires-Dist: openrouter>=0.9.1
Requires-Dist: anthropic>=0.86.0
Requires-Dist: google-genai>=1.69.0
Requires-Dist: google-cloud-texttospeech>=2.36.0
Requires-Dist: qrcode>=8.2
Requires-Dist: pdfplumber>=0.11.9
Requires-Dist: python-pptx>=1.0.2
Requires-Dist: requests>=2.33.1
Requires-Dist: urllib3>=2.6.3
Requires-Dist: python-dotenv>=1.2.2
Requires-Dist: tqdm>=4.67.3
Requires-Dist: Pillow>=11.0.0
Requires-Dist: openpyxl>=3.1.5
Requires-Dist: python-docx>=1.2.0
Requires-Dist: striprtf>=0.0.29
Requires-Dist: msoffcrypto-tool>=6.0.0
Requires-Dist: odfpy>=1.4.1
Requires-Dist: exstruct>=0.7.1
Requires-Dist: pyyaml>=6.0.3
Requires-Dist: pyside6>=6.8.0.2
Requires-Dist: beautifulsoup4>=4.14.3
Requires-Dist: httpx>=0.28.1
Requires-Dist: certifi>=2026.2.25
Requires-Dist: numpy>=2.4.4
Requires-Dist: pyOpenSSL>=26.0.0
Requires-Dist: playwright>=1.58.0
Requires-Dist: holidays>=0.93
Requires-Dist: pyreadline3>=3.5.4; sys_platform == "win32"
Requires-Dist: pywin32>=311; sys_platform == "win32"
Requires-Dist: pyautogui>=0.9.54
Requires-Dist: pygetwindow>=0.0.9; sys_platform == "win32"
Requires-Dist: mcp>=1.26.0
Requires-Dist: fastapi>=0.135.2
Requires-Dist: pydantic>=2.12.5
Requires-Dist: uvicorn>=0.42.0
Requires-Dist: jinja2>=3.1.6
Requires-Dist: janome>=0.5.0
Requires-Dist: jieba>=0.42.1
Requires-Dist: pythainlp>=5.3.4
Requires-Dist: python-multipart>=0.0.22
Requires-Dist: websockets>=16.0
Requires-Dist: python-dateutil>=2.9.0.post0
Requires-Dist: psutil>=7.2.2
Dynamic: license-file

<p align="center">
  <img src="https://raw.githubusercontent.com/awaku7/agentcli/main/assets/uag-logo.svg" alt="uag logo" width="720">
</p>

# uag (Local AI Agent)

uag is a local interactive agent that executes **commands**, manipulates **files**, and reads **data files** such as PDF, PPTX, and Excel. It provides three user interfaces: CLI, GUI, and Web.
uag is built to **keep you free from vendor-locked apps**: use the interface that fits your workflow, switch providers, and stay in control of your environment.
GitHub: https://github.com/awaku7/agentcli

## Installation

Install from PyPI with pip:

```bash
pip install uag
```

If you use a virtual environment, activate it first and then run the command above.

On first launch, `uag` checks your environment and starts the setup wizard automatically when required provider variables are missing. For configuration details, see [ENVIRONMENT.md](https://github.com/awaku7/agentcli/blob/main/ENVIRONMENT.md).

## Key Features

- **Practical toolset**: File manipulation, web search, PDF/PPTX/Excel extraction, image generation, and image analysis.
- **Multi-provider support**: OpenAI / Azure / Bedrock / OpenRouter / Ollama / Gemini / Vertex AI / Claude / Grok / NVIDIA.
- **Three interfaces**:
  - **CLI**: `uag` / `python -m uagent`
  - **GUI**: `uagg` / `python -m uagent.gui`
  - **Web**: `uagw` / `python -m uagent.web`
  - **A2A server**: `uaga` / `python -m uagent.a2a.server`
- **MCP support**: Connect to external MCP tool servers.
- **Session continuity**: Keep context when switching models or providers.
- **Web Inspector**: Save browser transitions, DOM snapshots, and screenshots with `playwright_inspector`.
- **Built-in docs**: Read bundled docs with `uag docs`.

## Usage

### Start and exit

Run `uag` in your terminal to start. Type `:exit` to quit.

### A2A server

Launch an Agent2Agent-compatible HTTP server:

```bash
uaga
```

See [ENVIRONMENT.md](https://github.com/awaku7/agentcli/blob/main/ENVIRONMENT.md) for `UAGENT_A2A_*` settings such as auth, host, port, reload, public base URL, concurrency, and engine.

### Handy tips

- `:tools`: show loaded tools
- `:logs [n]`: show recent session logs
- `:load <index>`: load a previous session
- `:skills`: select and load Agent Skills
- `:shrink [n]`: summarize history and keep the last `n` messages

## Configuration and details

### Environment variables and setup

For API keys, language settings (`UAGENT_LANG`), history shrink settings, and more, see [ENVIRONMENT.md](https://github.com/awaku7/agentcli/blob/main/ENVIRONMENT.md).

- **Setup wizard**: `python -m uagent.setup_cli`
- **Encrypted environment**: use `uag_envsec` to encrypt `.env` as `.env.sec`
- **Update encrypted values**: `uag_envsec add --file .env.sec --key NAME --value VALUE`

### Responses API note

If you set `UAGENT_RESPONSES=1`, Responses API is used for supported providers: OpenAI / Azure / Bedrock / OpenRouter / Ollama.
Gemini / Claude / Vertex AI use their native API paths and are not covered by Responses API.
Image analysis via Responses is currently limited to OpenAI / Azure / Bedrock / OpenRouter.
For other providers, uag falls back to the provider-specific or chat-completions path.

### Developer docs and translations

- **Developer docs**: [`src/uagent/docs/DEVELOP.md`](https://github.com/awaku7/agentcli/blob/main/src/uagent/docs/DEVELOP.md)
- **Add locales**: [`src/uagent/docs/ADD_LOCALE.md`](https://github.com/awaku7/agentcli/blob/main/src/uagent/docs/ADD_LOCALE.md)
- **Other README translations**: [English](https://github.com/awaku7/agentcli/blob/main/README.md) / [日本語](https://github.com/awaku7/agentcli/blob/main/docs/README.ja.md) / [Deutsch](https://github.com/awaku7/agentcli/blob/main/docs/README.de.md) / [Español](https://github.com/awaku7/agentcli/blob/main/docs/README.es.md) / [Français](https://github.com/awaku7/agentcli/blob/main/docs/README.fr.md) / [Italiano](https://github.com/awaku7/agentcli/blob/main/docs/README.it.md) / [한국어](https://github.com/awaku7/agentcli/blob/main/docs/README.ko.md) / [Português](https://github.com/awaku7/agentcli/blob/main/docs/README.pt_BR.md) / [Русский](https://github.com/awaku7/agentcli/blob/main/docs/README.ru.md) / [ไทย](https://github.com/awaku7/agentcli/blob/main/docs/README.th.md) / [简体中文](https://github.com/awaku7/agentcli/blob/main/docs/README.zh_CN.md) / [繁體中文](https://github.com/awaku7/agentcli/blob/main/docs/README.zh_TW.md) / [Polski](https://github.com/awaku7/agentcli/blob/main/docs/README.pl.md) / [Tiếng Việt](https://github.com/awaku7/agentcli/blob/main/docs/README.vi.md) / [Bahasa Indonesia](https://github.com/awaku7/agentcli/blob/main/docs/README.id.md) / [العربية](https://github.com/awaku7/agentcli/blob/main/docs/README.ar.md) / [हिन्दी](https://github.com/awaku7/agentcli/blob/main/docs/README.hi.md) / [Português](https://github.com/awaku7/agentcli/blob/main/docs/README.pt.md) / [Svenska](https://github.com/awaku7/agentcli/blob/main/docs/README.sv.md) / [Norsk bokmål](https://github.com/awaku7/agentcli/blob/main/docs/README.nb.md) / [Suomi](https://github.com/awaku7/agentcli/blob/main/docs/README.fi.md) / [Nederlands](https://github.com/awaku7/agentcli/blob/main/docs/README.nl.md) / [Čeština](https://github.com/awaku7/agentcli/blob/main/docs/README.cs.md) / [Українська](https://github.com/awaku7/agentcli/blob/main/docs/README.uk.md) / [Swahili](https://github.com/awaku7/agentcli/blob/main/docs/README.sw.md) / [Bengali](https://github.com/awaku7/agentcli/blob/main/docs/README.bn.md) / [Persian](https://github.com/awaku7/agentcli/blob/main/docs/README.fa.md) / [Mongolian](https://github.com/awaku7/agentcli/blob/main/docs/README.mn.md) / [Marathi](https://github.com/awaku7/agentcli/blob/main/docs/README.mr.md)
