Metadata-Version: 2.4
Name: unpage
Version: 0.1.0a19
Summary: An agent framework for production engineering
License-File: LICENSE.md
Requires-Python: >=3.12
Requires-Dist: aioboto3>=14.1.0
Requires-Dist: anyio>=4.9.0
Requires-Dist: asyncer==0.0.8
Requires-Dist: backoff>=2.2
Requires-Dist: boltons>=25.0.0
Requires-Dist: cachetools>=5.5.0
Requires-Dist: cloudpickle>=3.0.0
Requires-Dist: datadog-api-client[async]>=2.34.0
Requires-Dist: datasets>=2.14.6
Requires-Dist: diskcache>=5.6.0
Requires-Dist: dnspython>=2.7.0
Requires-Dist: dotenv>=0.9.9
Requires-Dist: fastapi[standard]>=0.116.1
Requires-Dist: fastmcp>=2.10.1
Requires-Dist: graphviz>=0.20.3
Requires-Dist: httpx>=0.28.1
Requires-Dist: human-readable>=2.0.0
Requires-Dist: joblib~=1.3
Requires-Dist: json-repair>=0.30.0
Requires-Dist: jsonpickle
Requires-Dist: kr8s>=0.20.7
Requires-Dist: litellm>=1.64.0
Requires-Dist: logparser>=0.8.4
Requires-Dist: magicattr>=0.1.6
Requires-Dist: matplotlib>=3.10.1
Requires-Dist: mlflow>=3.1.4
Requires-Dist: msgspec>=0.19.0
Requires-Dist: networkx>=3.4.2
Requires-Dist: numba>=0.61.2
Requires-Dist: numpy<2.4
Requires-Dist: openai>=0.28.1
Requires-Dist: optuna>=3.4.0
Requires-Dist: pagerduty>=3.1.0
Requires-Dist: pydantic-settings>=2.9.1
Requires-Dist: pydantic-yaml>=1.5.1
Requires-Dist: pydantic<2.12.0,>=2.11.3
Requires-Dist: pydot>=3.0.4
Requires-Dist: pyngrok>=7.2.12
Requires-Dist: pyod==2.0.5
Requires-Dist: pythonping>=1.1.4
Requires-Dist: pyyaml>=6.0.2
Requires-Dist: questionary>=2.1.0
Requires-Dist: regex>=2023.10.3
Requires-Dist: requests>=2.32.3
Requires-Dist: rich>=13.7.1
Requires-Dist: scapy>=2.6.1
Requires-Dist: sentry-sdk>=2.29.1
Requires-Dist: sh>=2.2.2
Requires-Dist: sparklines>=0.5.0
Requires-Dist: tenacity>=8.2.3
Requires-Dist: tqdm>=4.66.1
Requires-Dist: typer>=0.15.2
Requires-Dist: ujson>=5.8.0
Requires-Dist: uvicorn[standard]>=0.35.0
Requires-Dist: whoosh-reloaded>=2.7.5
Description-Content-Type: text/markdown

# Unpage
<img width="830" height="180" alt="unpage-banner" src="https://github.com/user-attachments/assets/2f0d2ee7-cbef-4bbb-9189-8a992b512c81" />

> [!WARNING]
> **ALPHA SOFTWARE**
> Unpage is experimental, under heavy development, and may be unstable. Use at your own risk!

Unpage is an infrastructure knowledge graph builder, and an MCP server to enable your LLM-powered application to understand and query your infrastructure.


## Installation

### Prerequisites

- Python 3.12 or higher
- `uv` package manager
- API keys for your LLM and alerting, infrastructure, and observability tools. Learn more in [Plugins](https://docs.aptible.ai/concepts/plugins).

### Install uv

On macOS:
```shell
brew install uv
```

For other platforms, follow the [official uv installation guide](https://github.com/astral-sh/uv).

### Install Unpage

Unpage is designed to be run using `uvx`, which comes with `uv`:

```shell
uvx unpage -h
```

## Quickstart

To get started, run:

```shell
uvx unpage agent quickstart
```

This will get you up and running with your first agent, which will automatically investigate and add context to alerts from [PagerDuty](https://docs.aptible.ai/plugins/pagerduty) (or your preferred alerting provider). You will also have a chance to set up your infrastructure knowledge graph to provide your agent with more context.

The quickstart flow will walk you through:

- Configuring your LLM, [PagerDuty plugin](https://docs.aptible.ai/plugins/pagerduty), and logs and metrics plugins
- Creating your first [agent](https://docs.aptible.ai/concepts/agents) and prompt
- Testing your agent with an existing incident ticket
- Building your [knowledge graph](https://docs.aptible.ai/concepts/knowledge-graph)

### Running the Agent

Once you're happy with the results of your agent, you can automate the agent's actions for new incidents by running `unpage agent serve` and configuring [PagerDuty to send webhooks](https://docs.aptible.ai/plugins/pagerduty#webhooks) to the Unpage server:

```shell
uvx unpage agent serve -h
```

The `agent serve` command supports running the server over an ngrok tunnel, so that you can test your agents end-to-end locally, without deploying. For more information on `agent serve` options, see [its documentation](https://docs.aptible.ai/commands/agent#subcommand%3A-serve).

## Documentation

Detailed documentation lives in [docs/](docs/), and is also published via Mintlify to [docs.aptible.ai](https://docs.aptible.ai).

## License

See [LICENSE.md](./LICENSE.md).

## Copyright

Copyright (c) 2025 Aptible. All rights reserved.
