exc
El menú de todo para su terminal.
Un solo archivo TOML con comandos, perfiles y parámetros — servido en un selector buscable y manejado por teclado, con un encabezado de información del host en vivo. Escrito en Rust; se instala como un único binario llamado exc.
cargo install exc-launcher github
$ exc
Escriba para filtrar — una expresión regular en vivo con recurso a subcadena — sobre una cuadrícula numerada por columnas, ordenada como ls. Escriba un número para saltar directo al elemento N; el glifo del prompt cambia a # mientras lo hace.
- Enter ejecuta · Esc sale
- Tab / Shift-Tab cambia de perfil
- Ctrl-H Ctrl-J Ctrl-K Ctrl-L mueve el cursor — acordes vim; las letras sueltas siguen siendo filtro, el mismo intercambio que hace fzf
$ exc init
Todo vive en ~/.config/exc/config.toml: los perfiles agrupan comandos, y los marcadores {{param}} preguntan al ejecutar — con valores por defecto y secret = true para entrada enmascarada. Los comandos corren por sh -c con stdio heredado, así que ssh, fzf y sudo se comportan; las configuraciones por proyecto se cargan con --config.
[[profiles]]
name = "network"
label = "Network"
[[profiles.commands]]
name = "cert-check"
description = "Check the TLS certificate for a domain"
command = "openssl s_client -connect {{domain}}:443"
[[profiles.commands.params]]
name = "domain"
prompt = "Domain to check"
secret = false
$ exc sysinfo
Un panel del host en tres niveles de costo: lo barato se lee de forma síncrona al arrancar — OS, kernel, uptime, memoria, disco, CPU, carga, IP local, batería, procesos principales, GPU. Lo lento — IP pública, actualizaciones de paquetes, tráfico de red — se refresca en segundo plano y se integra sin bloquear. Debajo, APIs nativas por plataforma: sysctl e IOKit en macOS, /proc y /sys en Linux, kernel32 y PowerShell CIM en Windows.
$ grep -rl unsafe src/
src/hostinfo/platform/macos.rs
src/hostinfo/platform/linux.rs
src/hostinfo/platform/windows.rs
src/hostinfo/platform/macos/iokit_ffi.rs
Esa es la lista completa. El selector, el ejecutor, la configuración y los temas son Rust seguro: la propiedad y el préstamo descartan use-after-free, double-free y data races en tiempo de compilación, sin recolector de basura en ejecución. unsafe existe — confinado al FFI del sistema operativo en la capa de plataforma de hostinfo, donde la API del kernel no deja alternativa. Un panic hook sale de la pantalla alterna y reactiva la terminal, así que ni un crash puede dejar su sesión colgada; los errores son tipados con thiserror.
$ theme nord
Temas integrados default, dark y mono, una tabla [theme] en línea o un theme_file, y diez paletas incluidas. Seis campos — accent, border, text, muted, fondo y texto de selección — y se respeta NO_COLOR.
$ exc man
exc a secas abre el selector; exc <name> ejecuta la primera coincidencia por subcadena. Los subcomandos cubren el resto — y exc man genera el roff desde las mismas definiciones de clap que --help, así que la página man no puede desalinearse del binario.
exc run·exc list·exc sysinfoexc validate --strict --format jsonexc init·exc man
$ cargo install exc-launcher
Rust 1.95 o más reciente, edición 2024, licencia MIT. ¿Sin toolchain de Rust en la máquina? launcher.sh en el repositorio es un fallback en bash sin dependencias. El cookbook EXAMPLES.md cubre perfiles, parámetros y temas.