Magic CLI es una utilidad de línea de comando que utiliza LLM para ayudarlo a usar la línea de comando de manera más eficiente, inspirada en proyectos como Amazon Q (Prev. Fig Terminal) y GitHub Copilot para CLI.
magic-cli se basa en la biblioteca de Orch para las interacciones LLM (ejecución, orquestación, alineación del modelo, etc.).
Lea la publicación del blog del anuncio.
Precaución
Este proyecto todavía está en el desarrollo temprano.
Espere cambios de ruptura y errores, y informe cualquier problema que encuentre.
¡Gracias!
Nota
Para obtener más opciones sobre cómo instalar Magic CLI, consulte la página de lanzamientos para la versión que desea instalar.
curl -LsSf https://github.com/guywaldman/magic-cli/releases/download/0.0.6/magic-cli-installer.sh | shbrew install guywaldman/tap/magic-clipowershell - c " irm https://github.com/guywaldman/magic-cli/releases/download/0.0.6/magic-cli-installer.ps1 | iex "Consulte la página de lanzamientos para binarios para su plataforma.
Agregue funciones a su ~/.bashrc o ~/.zshrc para facilitar el formateo de las indicaciones en el terminal (sin requerir citas).
Por ejemplo:
function mcs {
model_prompt= " $* "
magic-cli suggest " $model_prompt "
}
function mcf {
model_prompt= " $* "
magic-cli search " $model_prompt "
}
function mca {
model_prompt= " $* "
magic-cli ask " $model_prompt "
} Proporcione un mensaje para obtener una sugerencia para que el comando se ejecute.
Esto es útil en escenarios en los que sabe aproximadamente lo que desea (y tal vez incluso la herramienta) pero no recuerde los argumentos exactos o su pedido.
Esto es especialmente útil con herramientas CLI como ffmpeg o kubectl .

magic-cli suggest " Resize test_image.png to 300x300 with ffmpeg " Usage: magic-cli suggest <PROMPT>
Arguments:
<PROMPT> The prompt to suggest a command for (e.g., "Resize image to 300x300 with ffmpeg")
Busque un comando a través de su historial de shell y obtenga una lista de los mejores resultados.

magic-cli search " zellij attach " Usage: magic-cli search [OPTIONS] <PROMPT>
Arguments:
<PROMPT> The prompt to search for
Importante
Palabra para el sabio: si está utilizando un LLM no local, tenga cuidado con el costo de los incrustaciones, especialmente para historias de caparazón largo.
Proporcione un aviso con una tarea que desea que realice el modelo, y viéndolo intente sugerir un comando para ejecutar para lograr el objetivo. Puede solicitarlo en el camino para ejecutar comandos si necesita más contexto.
magic-cli ask " Set up the dev environment as described in the README " Usage: magic-cli ask <PROMPT>
Arguments:
<PROMPT> The prompt to ask for (e.g., "Set up the development environment")
Magic CLI apoya a dos proveedores de LLM:
ollama : Ollama es un proveedor local de LLM. El comando espera que Ollama se instale y se ejecute en su máquina local.openai : OpenAI es un proveedor de nube LLM. Configuras un token API, y Magic CLI lo usa con las API de OpenAI. Magic CLI almacena configuraciones en ~/.config/magic_cli/config.json .
Use magic-cli config (para ver las opciones, use magic-cli config --help ) para establecer las opciones de configuración:
Usage: magic-cli config <COMMAND>
Commands:
set Set a value
get Get a value
list List the configurations
reset Reset the configurations to the default values
path Get the path to the configuration file
Las opciones de configuración de supresión actualmente son:
llm : El LLM se utilizará para generar respuestas. Valores compatibles: "Ollama", "OpenAi"ollama.base_url : la URL base de la API Ollama (predeterminada: "http: // localhost: 11434")ollama.embedding_model : el modelo que se utilizará para generar incrustaciones (predeterminado: "Nomic-Embed-Text: Último")ollama.model : el modelo a usar para generar respuestas (predeterminado: "Codestral: Último")openai.api_key (secreto): la clave API para la API de OpenAIopenai.embedding_model : el modelo a usar para generar incrustaciones (predeterminado: "Texto incrustado-ADA-002")openai.model : el modelo que se utilizará para generar respuestas (predeterminado: "GPT-4O")suggest.add_to_history : si se debe agregar el comando sugerido al historial de shell (predeterminado: falso)suggest.mode : El modo a usar para sugerir comandos. Valores compatibles: "Portapapeles" (comando de copia al portapapeles), "Ejecución insegura" (ejecutando en la sesión de shell actual) (predeterminado: "Ejecución insegura")Nota:
unsafe-executionse nombra como tal para dejar en claro que la CLI ejecuta el comando en la sesión de shell actual. Tenga mucho cuidado al usar este modo: Magic CLI no es responsable de la ejecución de comandos sugeridos.
Soporte de Windows (PowerShell es compatible, pero Windows no se ha probado correctamente)
Soporte para más proveedores de LLM (por ejemplo, antrópico)
Mejorar el índice de incrustación local (actualmente almacenado ingenuamente como un JSON, examinó SQLLITE con extensiones de vectores)
Más cobertura de prueba
La seguridad se toma en serio y todas las vulnerabilidades se manejarán con la máxima atención y prioridad.
En términos de datos almacenados, los datos confidenciales que actualmente manejan Magic CLI es:
~/.config/magic_cli ).Hay planes para almacenar este token en el almacenamiento de clave segura del sistema, pero esto aún no se ha implementado.
magic-cli search , que se almacenan en la configuración dentro del directorio de inicio del usuario ( ~/.config/magic_cli ) y se generan utilizando el proveedor de elección LLM.Consulte Security.md para obtener más información e instrucciones sobre cómo informar vulnerabilidades potenciales.
¡Las contribuciones son bienvenidas!
Consulte Contriping.MD para obtener más información.
Mi única solicitud es que las solicitudes de extracción siguen un problema, de modo que evitamos que las situaciones de su arduo trabajo no sean aceptados debido a la falta de contexto o necesidad.