Skip to main content

A CLI backend for LLM assistants to manage EVE Online via the ESI API

Project description

evecli

A CLI backend for LLM assistants to manage EVE Online game data via the ESI API. This is a completely vibe coding project, please use with caution.

Purpose

evecli is designed to be used by AI coding assistants (Claude Code, etc.) as a tool skill. Rather than having the LLM call ESI API endpoints directly, it dispatches structured CLI commands through a skill definition. This provides:

  • Safe abstraction — the skill document (.claude/skills/*/SKILL.md) tells the LLM exactly what it can and can't do
  • Consistent JSON output — all commands return machine-parseable JSON by default, making it easy for the LLM to present results to the user
  • Built-in auth — OAuth2 SSO with automatic token refresh, transparent to the LLM

The human user interacts with the LLM in natural language, and the LLM translates those requests into evecli commands.

Architecture

User (natural language)
  ↓
LLM assistant (Claude Code + skills)
  ↓
skill definition (.claude/skills/eve-mail/SKILL.md)
  ↓
evecli CLI commands
  ↓
EVE Online ESI API

Installation

pip install -e .

Quick Start

1. Create an EVE Online Application

  1. Log in to the EVE Online Developer Portal
  2. Create a new application with a callback URL of http://localhost:6480/callback
  3. Copy the Client ID and Secret Key

2. Authenticate

evecli auth login --client-id <client-id> --secret <secret-key>

This opens a browser for EVE Online OAuth2 authorization. Tokens are stored at ~/.config/evecli/tokens.json and refreshed automatically.

3. Let Your LLM Assist Manage EVE

Once authenticated, ask your LLM assistant to help with EVE tasks:

  • "Check my recent unread mails"
  • "Read mail #12345 and summarize it"
  • "Send a mail to character 90123456 with subject 'Hello' and body '...'"
  • "Delete all mails older than list item #5"

The LLM will use the eve-mail skill to execute the appropriate evecli commands and present results back to you.

Commands

Command Description
evecli auth login Authenticate via EVE SSO OAuth2
evecli auth status Show auth status and token expiry
evecli auth logout Remove stored tokens
evecli auth character Show authenticated character info
evecli mail list List recent mails
evecli mail read <id> Read a single mail
evecli mail send Send a new mail (body supports HTML)
evecli mail delete <ids> Delete mail(s)
evecli mail label Manage mail labels (list/create/delete)
evecli mail update <id> Update read status or labels

All commands support --format json (default) and --format plain.

Skills

Skills are defined in .claude/skills/*/SKILL.md and loaded by Claude Code automatically. The skill document tells the LLM:

  • What capabilities are available
  • Exact command syntax and parameters
  • Common workflows (check unread, reply to mail, etc.)
  • Expected output format for parsing

To add new capabilities, create a new skill directory under .claude/skills/ with a SKILL.md following the same pattern.

Tech Stack

  • Click — CLI framework
  • httpx — HTTP client for ESI API requests
  • Pydantic — Data validation

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

evecli_llm-0.1.0.tar.gz (9.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

evecli_llm-0.1.0-py3-none-any.whl (10.9 kB view details)

Uploaded Python 3

File details

Details for the file evecli_llm-0.1.0.tar.gz.

File metadata

  • Download URL: evecli_llm-0.1.0.tar.gz
  • Upload date:
  • Size: 9.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for evecli_llm-0.1.0.tar.gz
Algorithm Hash digest
SHA256 2f54ca80e3af40ac5a5e556561bd7b9b63e199dea597fb32d0067b7c69fcd4c3
MD5 6f54ef085561001cf785e9c81d0c44e8
BLAKE2b-256 9ae969d2b34dfc1db34698d92f989f3a72f66f51fcb921c37b3ce2311cda99d1

See more details on using hashes here.

Provenance

The following attestation bundles were made for evecli_llm-0.1.0.tar.gz:

Publisher: python-publish.yml on Ranxy/evecli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file evecli_llm-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: evecli_llm-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 10.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for evecli_llm-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b0f758d1ce411f2592b3782af509768064263c48f4d2778e275358a4c54f4468
MD5 ab432873ffefb00c640af286a45b82b5
BLAKE2b-256 f9df8bf451c86e5a3aa509eda7a016f1c794504a94fe1c1d43503c6887fa7aa4

See more details on using hashes here.

Provenance

The following attestation bundles were made for evecli_llm-0.1.0-py3-none-any.whl:

Publisher: python-publish.yml on Ranxy/evecli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page