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.1.0.tar.gz (11.8 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.1.0-py3-none-any.whl (8.9 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for ai_selector-0.1.0.tar.gz
Algorithm Hash digest
SHA256 c4e3ef3e3128aaca63977dbd22917c4a09e3f93cd7ca37c2fa6e536ded3339c6
MD5 8c4c6c76caebdebe0d1527c71b28a011
BLAKE2b-256 4e7e3bd947af95d90df1f56b2e42200287f307bafe4237d188a49eeba89e9ec0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ai_selector-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e9f6db526ae986b045688513fba55ce0558e1b53445100d8d1d9c4eef6e23c61
MD5 1f5b2cad52d24c6bf61696155c996ba1
BLAKE2b-256 e250aa3d2a7b0dc3fa25b4581d70ef8373d15dec2a2d2e6e00051ccb6bb94c48

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