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

python -m pip install evecli-llm

For local development:

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://127.0.0.1:8088/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.

If evecli is running on a server or inside an agent environment without a usable browser, use manual mode instead:

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

This prints an EVE SSO authorization URL. Have the user open that URL on their own machine, complete the login, then copy either the full callback URL from the browser address bar or just the code query parameter back to the agent. The agent completes login with:

evecli auth login --mode manual --client-id <client-id> --secret <secret-key> --code '<callback-url-or-code>'

The manual flow uses the same registered callback URL. If the browser shows a failed localhost page after login, that is expected in remote mode; copy the URL from the address bar and submit it back to the agent. If you register a different callback port in the EVE developer portal, pass the same port to evecli auth login --port <port> in both manual steps.

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, with --mode browser or --mode manual
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.1.tar.gz (12.6 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.1-py3-none-any.whl (12.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: evecli_llm-0.1.1.tar.gz
  • Upload date:
  • Size: 12.6 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.1.tar.gz
Algorithm Hash digest
SHA256 36f64cb0f010cfd0c8a4ec58b435ff30f34bb56fb751a35efb77cbeebebc59c0
MD5 adae76847e16547d1ff8597e43b36a4a
BLAKE2b-256 5247644ff63cc0f05b560039a1118fde8f1279523788d36fa1123822683ca106

See more details on using hashes here.

Provenance

The following attestation bundles were made for evecli_llm-0.1.1.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.1-py3-none-any.whl.

File metadata

  • Download URL: evecli_llm-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 12.8 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b6545abd4aa9a87d731287893e0ac1888e0d9a9927df418d7de66a10986c45e9
MD5 42368f065488c5214b66baf91e9bd992
BLAKE2b-256 6cc0dd5948ae6f1d1d5283e4c99504544563758365aa8f4b3ec071a1a9678787

See more details on using hashes here.

Provenance

The following attestation bundles were made for evecli_llm-0.1.1-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