Name | xerxes JSON |
Version |
0.2.0
JSON |
| download |
home_page | None |
Summary | An intelligent DevOps agent with BYOK for managing cloud infrastructure |
upload_time | 2025-10-19 12:51:37 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.10 |
license | MIT |
keywords |
agent
ai
aws
devops
docker
gcp
kubernetes
llm
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# Xerxes
<div align="center">
**An intelligent DevOps agent with unrestricted CLI access and free-form reasoning**
[](https://opensource.org/licenses/MIT)
[](https://www.python.org/downloads/)
[](https://github.com/psf/black)
[Features](#-features) • [Installation](#-installation) • [Quick Start](#-quick-start) • [Documentation](#-usage) • [Contributing](#-contributing)
</div>
---
## Overview
Xerxes is a command-line AI agent that transforms natural language into DevOps operations. Unlike traditional tools with predefined commands, Xerxes uses **free-form thinking** to execute **any** command supported by your installed CLI tools (AWS, GCP, Kubernetes, Docker).
## Features
### Core Capabilities
- **Unrestricted CLI Access**: Execute ANY command from AWS CLI, gcloud, kubectl, or docker
- **Free-Form Thinking**: LLM reasons about your request and forms optimal commands
- **Interactive Approval**: See command + reasoning before execution
- `[R]un` - Execute this command
- `[S]kip` - Skip and continue
- `[A]lways` - Auto-approve for session
- **Bring Your Own Key (BYOK)**: Use your own Vertex AI credentials
- **Multi-Cloud Support**: AWS, GCP, Kubernetes, Docker in one interface
- **Safety Mechanisms**: Automatic detection of destructive operations
## Installation
### Using UV (Recommended)
```bash
uv tool install xerxes
```
### From Source
```bash
git clone https://github.com/shammianand/xerxes.git
cd xerxes
uv sync
```
## Quick Start
### 1. Prerequisites
- **Python 3.10+**
- **GCP Project** with Vertex AI API enabled
- **Service Account** or API key for Vertex AI
- **Optional**: Install CLI tools you want to use (kubectl, docker, aws, gcloud)
### 2. Configuration
Create a `.env` file:
```bash
XERXES_VERTEX_PROJECT_ID=your-gcp-project-id
XERXES_VERTEX_LOCATION=us-central1
XERXES_VERTEX_MODEL=gemini-2.0-flash
XERXES_GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json
```
Or use the CLI:
```bash
xerxes config set vertex_project_id your-gcp-project-id
xerxes config set google_application_credentials /path/to/sa.json
```
### 3. Start Chatting
```bash
xerxes chat
```
## Usage
### Example Session
<img width="1919" height="1040" alt="image" src="https://github.com/user-attachments/assets/527db221-d33d-4992-b926-caf64feba415" />
```
You: how many GKE clusters do i have?
[Thinking...]
┌─ Command Preview ────────────────────────────────────────┐
│ Command: │
│ $ gcloud container clusters list --format=json │
│ │
│ Reasoning: │
│ Listing all GKE clusters to count them │
└───────────────────────────────────────────────────────────┘
[R]un / [S]kip / [A]lways for session? a
✓ Auto-approve enabled for this session
Executing: gcloud container clusters list --format=json
╭─────────────── Output ───────────────╮
│ [ │
│ { │
│ "name": "prod-cluster", │
│ "location": "us-central1-a", │
│ ... │
│ } │
│ ] │
╰──────────────────────────────────────╯
Xerxes:
You have 3 GKE clusters: prod-cluster, staging-cluster, and dev-cluster.
You: show me pods in prod-cluster that are failing
[Thinking...]
Executing: kubectl get pods --all-namespaces --field-selector=status.phase=Failed
...
```
### Example Use Cases
**Infrastructure Discovery:**
```
"What cloud run services do I have and what are their URLs?"
"Show me all pods that have restarted more than 5 times"
"List S3 buckets and their sizes"
```
**Troubleshooting:**
```
"Why is my deployment failing?"
"Show me logs from the last hour for pods with label app=frontend"
"What containers are using more than 1GB of memory?"
```
**Operations:**
```
"Scale the api deployment to 5 replicas"
"Delete all pods in failed state"
"Create a new GCS bucket for backups"
```
## CLI Commands
```bash
# Start interactive chat
xerxes chat
# Manage configuration
xerxes config show
xerxes config set <key> <value>
# List available tools
xerxes tools
# Show version
xerxes version
```
## Configuration Options
| Variable | Description | Default |
|----------|-------------|---------|
| `XERXES_VERTEX_PROJECT_ID` | GCP project ID (required) | - |
| `XERXES_VERTEX_LOCATION` | GCP region | `us-central1` |
| `XERXES_VERTEX_MODEL` | Model name | `claude-3-5-sonnet@20240620` |
| `XERXES_GOOGLE_APPLICATION_CREDENTIALS` | Path to service account JSON | - |
| `XERXES_MAX_TOKENS` | Max tokens per response | `4096` |
| `XERXES_TEMPERATURE` | LLM temperature | `0.0` |
## Contributing
Contributions are welcome! Please follow these steps:
1. Fork the repository
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
3. Make your changes
4. Run tests and linters:
```bash
uv run pytest
uv run black src/
uv run ruff check src/
```
5. Commit your changes (`git commit -m 'Add amazing feature'`)
6. Push to the branch (`git push origin feature/amazing-feature`)
7. Open a Pull Request
## Development Setup
```bash
# Clone the repo
git clone https://github.com/shammianand/xerxes.git
cd xerxes
# Install dependencies
uv sync --all-extras
# Run in development mode
uv run xerxes chat
```
## Roadmap
- [ ] Additional LLM providers (Anthropic direct, OpenAI, Ollama)
- [ ] Terraform integration
- [ ] Ansible playbook execution
- [ ] Multi-step workflow automation
- [ ] Session history save/replay
- [ ] Web dashboard for monitoring
- [ ] Plugin system for custom tools
- [ ] One-shot command mode (`xerxes run "list all pods"`)
## License
MIT License - see [LICENSE](LICENSE) for details
## Support
- **Bug Reports**: [Open an issue](https://github.com/shammianand/xerxes/issues)
- **Feature Requests**: [Start a discussion](https://github.com/shammianand/xerxes/discussions)
- **Documentation**: Coming soon
---
<div align="center">
**Built with ❤️ by [Shammi Anand](https://github.com/shammianand)**
</div>
Raw data
{
"_id": null,
"home_page": null,
"name": "xerxes",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": "agent, ai, aws, devops, docker, gcp, kubernetes, llm",
"author": null,
"author_email": "Shammi Anand <shammianand101@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/f7/15/5e1cdeddde2cd038992e7312a4723cb95306070e74b99e3a166be1b3404d/xerxes-0.2.0.tar.gz",
"platform": null,
"description": "# Xerxes\n\n<div align=\"center\">\n\n**An intelligent DevOps agent with unrestricted CLI access and free-form reasoning**\n\n[](https://opensource.org/licenses/MIT)\n[](https://www.python.org/downloads/)\n[](https://github.com/psf/black)\n\n[Features](#-features) \u2022 [Installation](#-installation) \u2022 [Quick Start](#-quick-start) \u2022 [Documentation](#-usage) \u2022 [Contributing](#-contributing)\n\n</div>\n\n---\n\n## Overview\n\nXerxes is a command-line AI agent that transforms natural language into DevOps operations. Unlike traditional tools with predefined commands, Xerxes uses **free-form thinking** to execute **any** command supported by your installed CLI tools (AWS, GCP, Kubernetes, Docker).\n\n## Features\n\n### Core Capabilities\n\n- **Unrestricted CLI Access**: Execute ANY command from AWS CLI, gcloud, kubectl, or docker\n- **Free-Form Thinking**: LLM reasons about your request and forms optimal commands\n- **Interactive Approval**: See command + reasoning before execution\n - `[R]un` - Execute this command\n - `[S]kip` - Skip and continue\n - `[A]lways` - Auto-approve for session\n- **Bring Your Own Key (BYOK)**: Use your own Vertex AI credentials\n- **Multi-Cloud Support**: AWS, GCP, Kubernetes, Docker in one interface\n- **Safety Mechanisms**: Automatic detection of destructive operations\n\n## Installation\n\n### Using UV (Recommended)\n\n```bash\nuv tool install xerxes\n```\n\n\n### From Source\n\n```bash\ngit clone https://github.com/shammianand/xerxes.git\ncd xerxes\nuv sync\n```\n\n## Quick Start\n\n### 1. Prerequisites\n\n- **Python 3.10+**\n- **GCP Project** with Vertex AI API enabled\n- **Service Account** or API key for Vertex AI\n- **Optional**: Install CLI tools you want to use (kubectl, docker, aws, gcloud)\n\n### 2. Configuration\n\nCreate a `.env` file:\n\n```bash\nXERXES_VERTEX_PROJECT_ID=your-gcp-project-id\nXERXES_VERTEX_LOCATION=us-central1\nXERXES_VERTEX_MODEL=gemini-2.0-flash\nXERXES_GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json\n```\n\nOr use the CLI:\n\n```bash\nxerxes config set vertex_project_id your-gcp-project-id\nxerxes config set google_application_credentials /path/to/sa.json\n```\n\n### 3. Start Chatting\n\n```bash\nxerxes chat\n```\n\n## Usage\n\n### Example Session\n\n<img width=\"1919\" height=\"1040\" alt=\"image\" src=\"https://github.com/user-attachments/assets/527db221-d33d-4992-b926-caf64feba415\" />\n\n\n```\nYou: how many GKE clusters do i have?\n\n[Thinking...]\n\n\u250c\u2500 Command Preview \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502 Command: \u2502\n\u2502 $ gcloud container clusters list --format=json \u2502\n\u2502 \u2502\n\u2502 Reasoning: \u2502\n\u2502 Listing all GKE clusters to count them \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n\n[R]un / [S]kip / [A]lways for session? a\n\n\u2713 Auto-approve enabled for this session\n\nExecuting: gcloud container clusters list --format=json\n\n\u256d\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Output \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e\n\u2502 [ \u2502\n\u2502 { \u2502\n\u2502 \"name\": \"prod-cluster\", \u2502\n\u2502 \"location\": \"us-central1-a\", \u2502\n\u2502 ... \u2502\n\u2502 } \u2502\n\u2502 ] \u2502\n\u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f\n\nXerxes:\nYou have 3 GKE clusters: prod-cluster, staging-cluster, and dev-cluster.\n\nYou: show me pods in prod-cluster that are failing\n\n[Thinking...]\n\nExecuting: kubectl get pods --all-namespaces --field-selector=status.phase=Failed\n\n...\n```\n\n\n### Example Use Cases\n\n**Infrastructure Discovery:**\n```\n\"What cloud run services do I have and what are their URLs?\"\n\"Show me all pods that have restarted more than 5 times\"\n\"List S3 buckets and their sizes\"\n```\n\n**Troubleshooting:**\n```\n\"Why is my deployment failing?\"\n\"Show me logs from the last hour for pods with label app=frontend\"\n\"What containers are using more than 1GB of memory?\"\n```\n\n**Operations:**\n```\n\"Scale the api deployment to 5 replicas\"\n\"Delete all pods in failed state\"\n\"Create a new GCS bucket for backups\"\n```\n\n## CLI Commands\n\n```bash\n# Start interactive chat\nxerxes chat\n\n# Manage configuration\nxerxes config show\nxerxes config set <key> <value>\n\n# List available tools\nxerxes tools\n\n# Show version\nxerxes version\n```\n\n## Configuration Options\n\n| Variable | Description | Default |\n|----------|-------------|---------|\n| `XERXES_VERTEX_PROJECT_ID` | GCP project ID (required) | - |\n| `XERXES_VERTEX_LOCATION` | GCP region | `us-central1` |\n| `XERXES_VERTEX_MODEL` | Model name | `claude-3-5-sonnet@20240620` |\n| `XERXES_GOOGLE_APPLICATION_CREDENTIALS` | Path to service account JSON | - |\n| `XERXES_MAX_TOKENS` | Max tokens per response | `4096` |\n| `XERXES_TEMPERATURE` | LLM temperature | `0.0` |\n\n## Contributing\n\nContributions are welcome! Please follow these steps:\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/amazing-feature`)\n3. Make your changes\n4. Run tests and linters:\n ```bash\n uv run pytest\n uv run black src/\n uv run ruff check src/\n ```\n5. Commit your changes (`git commit -m 'Add amazing feature'`)\n6. Push to the branch (`git push origin feature/amazing-feature`)\n7. Open a Pull Request\n\n## Development Setup\n\n```bash\n# Clone the repo\ngit clone https://github.com/shammianand/xerxes.git\ncd xerxes\n\n# Install dependencies\nuv sync --all-extras\n\n# Run in development mode\nuv run xerxes chat\n```\n\n## Roadmap\n\n- [ ] Additional LLM providers (Anthropic direct, OpenAI, Ollama)\n- [ ] Terraform integration\n- [ ] Ansible playbook execution\n- [ ] Multi-step workflow automation\n- [ ] Session history save/replay\n- [ ] Web dashboard for monitoring\n- [ ] Plugin system for custom tools\n- [ ] One-shot command mode (`xerxes run \"list all pods\"`)\n\n## License\n\nMIT License - see [LICENSE](LICENSE) for details\n\n## Support\n\n- **Bug Reports**: [Open an issue](https://github.com/shammianand/xerxes/issues)\n- **Feature Requests**: [Start a discussion](https://github.com/shammianand/xerxes/discussions)\n- **Documentation**: Coming soon\n\n---\n\n<div align=\"center\">\n\n**Built with \u2764\ufe0f by [Shammi Anand](https://github.com/shammianand)**\n\n</div>\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "An intelligent DevOps agent with BYOK for managing cloud infrastructure",
"version": "0.2.0",
"project_urls": null,
"split_keywords": [
"agent",
" ai",
" aws",
" devops",
" docker",
" gcp",
" kubernetes",
" llm"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "3704720d74219bca12dde78eb87f6b43e9cf129b2a38899f1c13093ea78a9e5d",
"md5": "08ee015a4e66e06f69ae22c0199755e2",
"sha256": "2abf6141fe4cb0017d307909d62a6396f48e2caf7ca9fb5612a7cb6e77b93dbf"
},
"downloads": -1,
"filename": "xerxes-0.2.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "08ee015a4e66e06f69ae22c0199755e2",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 21973,
"upload_time": "2025-10-19T12:51:36",
"upload_time_iso_8601": "2025-10-19T12:51:36.282553Z",
"url": "https://files.pythonhosted.org/packages/37/04/720d74219bca12dde78eb87f6b43e9cf129b2a38899f1c13093ea78a9e5d/xerxes-0.2.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "f7155e1cdeddde2cd038992e7312a4723cb95306070e74b99e3a166be1b3404d",
"md5": "91fab5c5caa9ca0edfc2b5222adf5d5b",
"sha256": "1108171484c70a0e01fb379c63c66305939ec7bc537009ff7b030f7891e661ed"
},
"downloads": -1,
"filename": "xerxes-0.2.0.tar.gz",
"has_sig": false,
"md5_digest": "91fab5c5caa9ca0edfc2b5222adf5d5b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 96754,
"upload_time": "2025-10-19T12:51:37",
"upload_time_iso_8601": "2025-10-19T12:51:37.557216Z",
"url": "https://files.pythonhosted.org/packages/f7/15/5e1cdeddde2cd038992e7312a4723cb95306070e74b99e3a166be1b3404d/xerxes-0.2.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-10-19 12:51:37",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "xerxes"
}