Skip to main content

Interactive CLI tool for managing and executing multiple AI agents

Project description

AI Agent Selector

Selector interactivo de agentes de IA con interfaz CLI.

Descripción

Este proyecto permite gestionar y ejecutar múltiples agentes de IA que están organizados en carpetas separadas. Cada agente mantiene sus propias dependencias, configuración y archivos aislados del resto del sistema.

El selector detecta automáticamente los agentes buscando archivos .env en las subcarpetas del directorio de agentes.

Instalación

Opción 1: Ejecución directa con uvx (recomendado para uso ocasional)

La forma más sencilla de usar ai-selector es con uvx, que descarga y ejecuta la última versión desde PyPI sin instalación:

uvx ai-selector

Opción 2: Instalación como herramienta con uv (recomendado para uso frecuente)

Para tener ai-selector disponible permanentemente como comando:

uv tool install ai-selector

Después podrás ejecutarlo directamente:

ai-selector

Para actualizar a la última versión:

uv tool upgrade ai-selector

Para desinstalar:

uv tool uninstall ai-selector

Opción 3: Desarrollo local

Si quieres contribuir o modificar el código:

  1. Clona o descarga este repositorio
  2. Instala las dependencias:
uv sync

Configuración

1. Configurar el directorio de agentes

Copia el archivo de ejemplo y configúralo:

cp .env.example .env

Edita .env y establece la ruta a tu carpeta de agentes:

AI_AGENTS_DIR=~/ia

2. Configurar cada agente

Para que un agente sea detectado, debe tener un archivo .env en su carpeta con:

  1. Variable ALIAS (obligatoria): comando a ejecutar
  2. Variables de entorno adicionales (opcionales)

Crea un .env en cada carpeta de agente. Ejemplo para ~/ia/claude-code/.env:

# Comando a ejecutar (OBLIGATORIO)
ALIAS=npx @anthropic-ai/claude-code

# Variables de entorno del agente (OPCIONAL)
ANTHROPIC_API_KEY=tu-clave-aqui
DEBUG=true

Puedes usar agent.env.example como plantilla.

Uso

Ejecuta el selector:

uv run main.py

O crea un alias para ejecutarlo desde cualquier directorio:

alias ai-selector='uv run --project /ruta/a/ai-selector /ruta/a/ai-selector/main.py'

Nota: Usa --project en lugar de --directory para que el agente se ejecute en el directorio actual, no en el directorio del proyecto ai-selector. Debes especificar la ruta completa al script después de --project.

El selector mostrará un menú interactivo donde podrás:

  • Navegar con las flechas ↑/↓
  • Seleccionar con Enter
  • Cancelar con Ctrl+C

El comando del agente se ejecuta desde el directorio actual (no cambia a la carpeta del agente). Las variables de entorno del .env del agente se cargan automáticamente.

Funcionalidades adicionales

  • Limpieza de pantalla: Antes de ejecutar el agente, se limpia la terminal
  • Registro de ejecuciones: Cada ejecución se registra en agent-execution.log dentro del directorio del agente, incluyendo:
    • Fecha y hora de ejecución
    • Nombre del agente
    • Comando ejecutado
    • Directorio desde donde se ejecutó el selector
    • Variables de entorno cargadas

Estructura de la carpeta de agentes

Ejemplo de estructura:

~/ia/
├── claude-code/
│   ├── node_modules/
│   ├── .env                    ← Contiene ALIAS y variables de entorno
│   ├── agent-execution.log     ← Log de ejecuciones (generado automáticamente)
│   ├── package.json
│   └── package-lock.json
├── crush/
│   ├── node_modules/
│   ├── .env                    ← Contiene ALIAS
│   ├── agent-execution.log     ← Log de ejecuciones
│   ├── package.json
│   └── package-lock.json
└── opencode/
    ├── node_modules/
    ├── .env                    ← Contiene ALIAS y variables de entorno
    ├── agent-execution.log     ← Log de ejecuciones
    ├── package.json
    └── bun.lockb

Nota: Solo las carpetas con archivo .env (que contenga ALIAS) serán detectadas como agentes.

Características

  • ✅ Detección automática de agentes mediante archivos .env
  • ✅ Interfaz CLI interactiva con flechas
  • ✅ Comandos configurables vía variable ALIAS
  • ✅ Ruta configurable mediante variable de entorno
  • ✅ Carga automática de variables de entorno del agente
  • ✅ Ejecución desde directorio actual (sin cambiar de carpeta)
  • ✅ Ejecución interactiva completa (stdin/stdout/stderr)
  • ✅ Limpieza automática de pantalla antes de ejecutar
  • ✅ Registro de ejecuciones con timestamp en archivo de log

Desarrollo

Estructura del código

ai-selector/
├── main.py              # Punto de entrada
├── src/
│   ├── __init__.py
│   ├── config.py        # Descubrimiento y modelo de agentes
│   ├── selector.py      # Interfaz interactiva CLI
│   └── executor.py      # Ejecución de agentes
├── agent.env.example    # Plantilla de .env para agentes
├── .env                 # Configuración del selector (crear desde .example)
└── pyproject.toml       # Dependencias del proyecto

Agregar un nuevo agente

  1. Crea una carpeta para el agente en AI_AGENTS_DIR
  2. Instala las dependencias del agente en su carpeta
  3. Crea un archivo .env con la variable ALIAS y cualquier variable de entorno necesaria
  4. Ejecuta el selector - el agente será detectado automáticamente

Licencia

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

ai_selector-0.3.0.tar.gz (33.6 kB view details)

Uploaded Source

Built Distribution

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

ai_selector-0.3.0-py3-none-any.whl (9.9 kB view details)

Uploaded Python 3

File details

Details for the file ai_selector-0.3.0.tar.gz.

File metadata

  • Download URL: ai_selector-0.3.0.tar.gz
  • Upload date:
  • Size: 33.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.0

File hashes

Hashes for ai_selector-0.3.0.tar.gz
Algorithm Hash digest
SHA256 ad586fe97f6e04c0302d684d0dd775fd84a19f28052e207c16941d212cbd6b1e
MD5 e45f295c97b08efcc98d85ced46c6dff
BLAKE2b-256 860e37a8c3209ec153f41762145f1add4ef20a129f4a774b3a63da2ae1e7fc10

See more details on using hashes here.

File details

Details for the file ai_selector-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for ai_selector-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 da10a12c99db11c56b6ecc22c2760557fd37ea51c5a8eaee4a450611604c27ec
MD5 45993593edcf495d0c6801d45f3a504c
BLAKE2b-256 418876793edd66f2cfd83d4fef30eec11e44e6c596ff785d70a0a8767632f114

See more details on using hashes here.

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