~/excv0.6.0 · MIT

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

El selector de exc: una cuadrícula numerada de comandos bajo un encabezado con información del host
el selector — cuadrícula numerada, perfiles, encabezado del host
exc/demodemo.webm
filtro en vivo, salto por número, prompt de parámetro, ejecución — un ciclo completo
exc/picker

$ 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
El selector reduciendo la cuadrícula con un filtro regex en vivo
filtro regex, con recurso a subcadena
exc/config

$ 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
Un prompt de parámetro con entrada secreta enmascarada
parámetros con prompt — secret = true enmascara la entrada
exc/sysinfo

$ 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.

El panel sysinfo: host, memoria, disco, CPU, red
tres niveles — síncrono, en segundo plano, nativo
exc/src

$ 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.

  • núcleo en Rust seguro
  • unsafe confinado al FFI
  • sin GC
  • terminal restaurada ante pánico
  • thiserror
exc/themes

$ 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.

  • solarized-dark
  • solarized-light
  • dracula
  • nord
  • gruvbox-dark
  • one-dark
  • monokai
  • tomorrow-night
  • homebrew
  • ayu-dark
exc/cli

$ 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 sysinfo
  • exc validate --strict --format json
  • exc init · exc man
~/exc/installcrates.io

$ 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.

author: aao@codestrux.tech

cargo install exc-launcher github EXAMPLES.md