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

  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.2.0.tar.gz (32.4 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.2.0-py3-none-any.whl (9.7 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for ai_selector-0.2.0.tar.gz
Algorithm Hash digest
SHA256 0c98b968a3e21375c0acb3fd2e1bdfc5640c22d61cede42f0d62bbcbf6d69af4
MD5 6f90a12afddcb36e88b8b1fcdcf976b6
BLAKE2b-256 72b82cf669da019b4a6ae3c709b9626992ed4645db09881cee891452814172ef

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ai_selector-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 421623f61a5986e3d767df61ec2d77ea3f54f10ff9d3f088d716ac71c4e69349
MD5 37a35984243b31f57d305e0affd067af
BLAKE2b-256 8cbfacf7ce9b87528406d8c2a2137d5863a21b8db5037019ac4348c9e30aff2a

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