Logotipo de Bitdoze

Starship + Ghostty: Potencia tu configuración de terminal en Mac

Configura Starship + Ghostty en macOS en minutos: instala Ghostty, aplica un preset de Starship, ajusta tu prompt y añade zoxide y eza para un terminal de Mac más rápido.

Dragos

Actualizado Publicado 20 min de lectura

Terminal Ghostty en macOS ejecutando el prompt de Starship con un preset powerline Tokyo Night

Esta guía te lleva paso a paso por la configuración de Starship y Ghostty en tu Mac. Juntos forman una configuración de terminal sólida para Mac: un terminal acelerado por GPU más un prompt que muestra el estado de Git, las versiones de los lenguajes y la duración de los comandos. Empezaré con una configuración de Ghostty, aplicaré un preset de Starship (Tokyo Night o Catppuccin Powerline), ajustaré el prompt con unas pocas líneas de TOML y después añadiré herramientas prácticas como zoxide y eza. También te mostraré cómo editar tu ~/.zshrc sin duplicar líneas de inicialización por accidente, cómo solucionar los fallos que realmente ocurren y cómo deshacer todo el proceso de forma limpia.

Si quieres una visión general centrada en Ghostty que cubra sus funciones, el inspector y el multiplexor frente a tmux, consulta Terminal Ghostty: La Guía Completa de Configuración para Mac.

Si vas más allá de los ajustes del prompt y quieres un diseño de terminal pensado para agentes de codificación con IA, automatización del navegador y notificaciones, también escribí una guía dedicada al Terminal cmux.

TL;DR: Configuración rápida (copiar/pegar)

Este es el camino más rápido para configurar el terminal en Mac: tres comandos de brew, dos líneas en la configuración de tu shell y un preset. Ejecuta esto y luego sigue las secciones de abajo para entender el «porqué» y las mejoras opcionales:

bash
brew install --cask ghostty
brew install starship zoxide eza
brew install font-meslo-lg-nerd-font

Añade Starship y zoxide una sola vez a tu ~/.zshrc:

bash
open -e ~/.zshrc

Añade:

bash
eval "$(starship init zsh)"
eval "$(zoxide init zsh)"

Elige un preset de Starship:

bash
mkdir -p ~/.config
starship preset tokyo-night -o ~/.config/starship.toml
# or:
# starship preset catppuccin-powerline -o ~/.config/starship.toml

Si el nombre de un preset da error, ejecuta starship preset list para ver los nombres válidos en tu versión instalada de Starship. Los nombres cambian ocasionalmente entre versiones, y este es el fallo más común de toda la guía.

Recarga:

bash
source ~/.zshrc

Verificación: abre una pestaña nueva de Ghostty. Si ves un prompt powerline con tema, has terminado. Si los iconos aparecen como cuadrados, salta al Paso 2 para arreglar la fuente. Para todo lo demás, sigue leyendo.

Requisitos previos

Lo que necesitas antes de empezar:

  • Un Mac con macOS y Zsh como shell (el predeterminado desde Catalina). Compruébalo con echo $SHELL.
  • Homebrew instalado. Si no lo tienes, el comando de instalación de abajo tarda unos dos minutos.
  • Permisos de administrador para la instalación de Homebrew. macOS te pedirá instalar las Xcode Command Line Tools si faltan.
  • Funciona tanto en Apple Silicon como en Intel. La ruta de instalación de Homebrew difiere (/opt/homebrew frente a /usr/local), lo que importa más adelante en la sección de solución de problemas.

Si aún no tienes Homebrew instalado:

bash
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Nota sobre costes: todas las herramientas de esta guía son gratuitas y de código abierto, se ejecutan localmente y cuestan 0 $/mes. Sin servidor, sin suscripción.

¿Por qué Ghostty y Starship?

Ghostty es un emulador de terminal escrito en Zig. Usa aceleración por GPU, funciona de forma nativa en macOS y tiene un sistema de configuración sencillo. Puedes saber más en ghostty.org.

Starship funciona con Zsh (el shell predeterminado de macOS desde Catalina) y con otros shells. Dibuja el prompt: estado de Git, rutas de directorios, versiones de lenguajes de programación, duración de comandos. Los presets y la configuración están en starship.rs.

Las piezas se apilan así:

GhosttyEmulador de terminal. Renderizado por GPU, temas, atajos.ZshEl shell. Ejecuta tus comandos, carga ~/.zshrc.StarshipRenderizador del prompt. Lee ~/.config/starship.toml.Plugins y herramientaszsh-autosuggestions, zsh-syntax-highlighting, zoxide, eza

Cada capa solo se comunica con sus vecinas. Ghostty ejecuta Zsh, Zsh llama a Starship para dibujar cada prompt, y los plugins y herramientas se enganchan directamente a Zsh. Esa separación es la razón por la que esta configuración sobrevive bien a las actualizaciones: puedes cambiar el terminal o el prompt sin tocar el resto.

Si estás comparando terminales antes de decidirte, también tenemos una configuración de WezTerm en Mac con tmux y zoxide. Y si más adelante decides que quieres el renderizado estilo Ghostty más espacios de trabajo verticales, notificaciones de agentes y un navegador integrado, echa un vistazo a cmux.

Paso 1: Instala Ghostty en tu Mac

Instala Ghostty con Homebrew (consulta los requisitos previos si aún no lo tienes):

bash
brew install --cask ghostty

Esto instala Ghostty en tu carpeta de Aplicaciones.

Verifica:

bash
ghostty +version

Deberías ver una cadena de versión. Si obtienes command not found, el directorio bin de Homebrew no está en tu PATH (lo veremos en la sección de solución de problemas).

Abre Ghostty desde Aplicaciones o escribe ghostty en tu terminal actual. La aceleración por GPU lo hace notablemente más rápido que los terminales más antiguos. Para otros métodos de instalación, visita ghostty.org/download.

Paso 2: Instala una Nerd Font

Las flechas powerline y los iconos de archivo de Starship usan glifos que las fuentes estándar de macOS no incluyen. Meslo Nerd Font funciona bien y tiene iconos claros.

Instálala con Homebrew:

bash
brew install font-meslo-lg-nerd-font

Comprueba la instalación de la fuente en Catálogo Tipográfico buscando «Meslo». Para otras opciones, consulta nerdfonts.com.

Usa el nombre exacto de la familia de la fuente

El nombre de familia que pongas en la configuración de Ghostty debe coincidir con el nombre con el que se instaló la fuente. Ejecuta:

bash
ghostty +list-fonts | grep -i meslo

Deberías ver MesloLGS Nerd Font Mono en la salida. Una familia mal escrita es la causa número uno de iconos rotos más adelante, así que copia el nombre exactamente como aparece en esta salida.

Paso 3: Configura Ghostty

Crea primero el directorio de configuración (Ghostty no leerá un archivo que no existe):

bash
mkdir -p ~/.config/ghostty
touch ~/.config/ghostty/config
open -e ~/.config/ghostty/config

Añade esta configuración:

text
font-family = MesloLGS Nerd Font Mono
font-size = 16
background-opacity = 0.85
theme = Argonaut

Esto establece MesloLGS Nerd Font Mono para que los iconos powerline se vean limpios, usa 16 pt para mejor legibilidad, aplica un 85 % de opacidad de fondo y selecciona el tema Argonaut. Dos comprobaciones útiles mientras estás aquí:

bash
ghostty +list-themes
ghostty +list-fonts

El primero lista todos los nombres de temas que puedes poner en la línea theme. El segundo lista los nombres exactos de las familias de fuentes.

Verifica: pulsa Cmd+Shift+, en Ghostty para recargar la configuración sin reiniciar. Si algo no se ve bien, cierra y vuelve a abrir Ghostty; un reinicio completo siempre aplica el archivo.

Paso 4: Instala Starship

Starship añade información contextual a tu prompt. Instálalo con Homebrew:

bash
brew install starship

Integra Starship con Zsh añadiéndolo a tu ~/.zshrc.

En lugar de añadir a ciegas con echo ... >> (que crea duplicados si ejecutas el comando dos veces), abre tu configuración y añade la línea de inicialización una sola vez:

bash
open -e ~/.zshrc

Añade:

bash
eval "$(starship init zsh)"

Luego recarga:

bash
source ~/.zshrc

Verifica:

bash
starship --version

El prompt también cambia al recargar, aunque puede verse sencillo hasta que apliques un preset en el siguiente paso. Es lo esperado. Si sospechas que ejecutaste la línea de inicialización más de una vez, compruébalo con grep -n starship ~/.zshrc y borra las que sobren. Las líneas de inicialización duplicadas provocan prompts dobles y un shell más lento.

Para otros shells, consulta la guía de instalación de Starship.

Paso 5: Aplica un preset de Starship

Los presets son archivos starship.toml ya preparados. Dos opciones populares son Tokyo Night y Catppuccin Powerline. Explora todos en starship.rs/presets.

Los presets sobrescriben tu configuración

Ejecutar un preset con -o ~/.config/starship.toml sobrescribe tu starship.toml actual. Si ya lo personalizaste, haz primero una copia de seguridad:

bash
cp ~/.config/starship.toml ~/.config/starship.toml.bak

Tokyo Night

Un tema oscuro con púrpuras y azules.

bash
mkdir -p ~/.config
starship preset tokyo-night -o ~/.config/starship.toml

Inspecciona lo que escribió:

bash
open -e ~/.config/starship.toml

Catppuccin Powerline

Un esquema de colores pastel más suave con un prompt estilo powerline.

bash
mkdir -p ~/.config
starship preset catppuccin-powerline -o ~/.config/starship.toml

Recarga tu shell con source ~/.zshrc para aplicarlo.

Si el comando del preset da error por un nombre desconocido, ejecuta starship preset list para ver los nombres válidos en tu versión instalada de Starship y vuelve a ejecutar el comando con el nombre corregido.

Verifica: tu prompt debería mostrar ahora segmentos powerline angulados con información de Git y del directorio. Si los iconos aparecen como cuadrados, es un problema de fuente, no de Starship. Vuelve al Paso 2.

Paso 6: Ajusta tu configuración de Starship (starship.toml)

Los presets son un buen punto de partida, pero un par de cambios suelen hacer el prompt más práctico: rutas más cortas, marcas de tiempo opcionales y duración de comandos para los comandos lentos.

Abre el archivo de configuración:

bash
open -e ~/.config/starship.toml

Pega estas adiciones al final. Funcionan tanto con Tokyo Night como con Catppuccin.

Ajustes básicos recomendados

toml
# Keep the prompt responsive if anything external is slow
command_timeout = 1000

[directory]
truncation_length = 3
truncate_to_repo = true

[cmd_duration]
min_time = 500
format = "took [$duration]($style) "
style = "yellow bold"

Recarga:

bash
source ~/.zshrc

Qué hacen: command_timeout evita que un módulo lento bloquee tu prompt, truncation_length limita las rutas profundas a los últimos tres directorios, y cmd_duration muestra cuánto tardó cualquier comando de más de medio segundo.

Opcional: mostrar la hora (útil en sesiones SSH)

toml
[time]
disabled = false
format = "[$time]($style) "
time_format = "%R"

Opcional: mostrar la batería (portátiles)

toml
[battery]
disabled = false

Opcional: estilo del estado de Git

Si quieres señales de Git más claras:

toml
[git_status]
style = "bold purple"

Opcional: versiones de lenguajes

Activa Node.js cuando trabajes con Node:

toml
[nodejs]
disabled = false

Para la lista completa de módulos y opciones, consulta la documentación de configuración de Starship. Añade módulos de uno en uno para mantener el prompt rápido y legible.

Cuando el prompt va lento

Starship incluye dos comandos de diagnóstico que conviene conocer:

bash
starship timings
starship explain

starship timings muestra cuántos milisegundos cuesta cada módulo. starship explain muestra lo que se está renderizando y por qué. Si un módulo domina, desactívalo con una sección [module] puesta a disabled = true, mantén command_timeout configurado y vuelve a ejecutar starship timings para confirmarlo.

Paso 7: Instala zoxide

zoxide aprende los directorios que más usas y te permite saltar a ellos con z en lugar de cd.

Instálalo:

bash
brew install zoxide

Añádelo a tu ~/.zshrc (abre y edita, la misma regla que con Starship: una vez, no añadido repetidamente):

bash
open -e ~/.zshrc

Añade:

bash
eval "$(zoxide init zsh)"

Recarga:

bash
source ~/.zshrc

Usa z en lugar de cd. Por ejemplo, z proj te lleva a tu directorio ~/Projects si lo usas a menudo. Zoxide clasifica los directorios por frecuencia y antigüedad, así que mejora cuanto más lo usas. Para flags, detalles de inicialización del shell y uso avanzado, consulta la guía completa de Zoxide.

Paso 8: Sustituye ls por eza

Nota: eza es el reemplazo moderno de ls (a lo que la gente se refiere cuando menciona «exa» en tutoriales antiguos).

Cambia el comando ls predeterminado por eza para obtener listados coloreados con iconos por tipo de archivo.

Instálalo:

bash
brew install eza

Añade alias a tu ~/.zshrc (añádelos una vez, no los añadas repetidamente):

bash
open -e ~/.zshrc

Añade:

bash
alias ls="eza --icons"
alias ll="eza -l --icons"
alias la="eza -la --icons"

Recarga:

bash
source ~/.zshrc

Estos alias:

  • ls: Lista archivos con iconos por tipo de archivo
  • ll: Muestra una lista detallada con iconos
  • la: Incluye archivos ocultos en la lista detallada

Explora las funciones de eza en el sitio web de eza.

Paso 9: Añade alias personalizados

Merece la pena crear alias para cualquier cosa que escribas varias veces al día. Van en tu ~/.zshrc.

Añade esto a ~/.zshrc:

bash
# Quick edit configuration files
alias editstarship="vim ~/.config/starship.toml"
alias editghost="vim ~/.config/ghostty/config"

# Git shortcuts
alias gs="git status"
alias ga="git add"
alias gc="git commit -m"
alias gp="git push"

# Quick directory navigation
alias dev="cd ~/Development"
alias docs="cd ~/Documents"

Aplica:

bash
source ~/.zshrc

Estos alias:

  • Te permiten editar rápidamente las configuraciones de Starship y Ghostty (editstarship, editghost)
  • Simplifican los comandos de Git (gs, ga, gc, gp)
  • Ofrecen navegación rápida a directorios comunes (dev, docs)

Paso 10: Añade zsh-autosuggestions y zsh-syntax-highlighting

Añade zsh-autosuggestions y zsh-syntax-highlighting para una mejor entrada de comandos y detección de errores.

Instala:

bash
brew install zsh-autosuggestions zsh-syntax-highlighting

Añade a tu ~/.zshrc (coloca syntax-highlighting cerca del final del archivo, después de los demás plugins, para que también pueda colorear las sugerencias):

bash
open -e ~/.zshrc

Añade:

bash
source $(brew --prefix)/share/zsh-autosuggestions/zsh-autosuggestions.zsh
source $(brew --prefix)/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh

Recarga:

bash
source ~/.zshrc
  • zsh-autosuggestions: Sugiere comandos basándose en tu historial (texto gris). Acéptalos con la tecla de flecha derecha.
  • zsh-syntax-highlighting: Resalta los comandos válidos en verde y los inválidos en rojo, detectando errores antes de ejecutarlos.

Para una configuración detallada, consulta Activar el autocompletado de comandos en Zsh y Activar el resaltado de sintaxis en Zsh. ¿Quieres más? Mira nuestro resumen de los mejores plugins de Oh My Zsh.

Solución de problemas: fallos habituales

Estos son los fallos que realmente aparecen con esta configuración, en el orden en que probablemente los encontrarás.

‘xterm-ghostty’: unknown terminal type

Algunas herramientas, sobre todo en servidores remotos, no reconocen el tipo de terminal de Ghostty. Arréglalo para la sesión actual:

bash
export TERM=xterm-256color

Para una solución permanente, configúralo solo para SSH y así no cambias el comportamiento local.

Configura TERM solo para SSH

No exportes TERM=xterm-256color globalmente. Degradaría las funciones locales de Ghostty para igualar servidores antiguos. La guarda SSH_CONNECTION de abajo solo aplica el arreglo donde hace falta.

Añade a tu ~/.zshrc:

bash
# Some servers don't know about Ghostty's TERM entry
if [[ -n "$SSH_CONNECTION" ]]; then
  export TERM=xterm-256color
fi

Recarga:

bash
source ~/.zshrc

Prompt duplicado o shell lento

Síntoma: el prompt se dibuja dos veces, o cada pulsación de tecla va con retraso. Causa: varias líneas de inicialización eval, normalmente por volver a ejecutar comandos de configuración con >>.

Comprueba:

bash
grep -nE "starship|zoxide" ~/.zshrc

Solución: deja exactamente un eval "$(starship init zsh)" y un eval "$(zoxide init zsh)", borra el resto y luego ejecuta source ~/.zshrc.

command not found: starship (o zoxide, o eza)

Causa: el directorio bin de Homebrew no está en tu PATH. Es común en Apple Silicon, donde Homebrew vive en /opt/homebrew.

Comprueba:

bash
which brew

Si eso no imprime nada o apunta a un lugar inesperado, asegúrate de que tu ~/.zshrc contiene:

bash
eval "$(/opt/homebrew/bin/brew shellenv)"

Los Mac con Intel usan /usr/local/bin/brew shellenv en su lugar. Esta línea debe estar por encima de las líneas eval de Starship y zoxide en el archivo.

Cuadrados en lugar de iconos

Causa: la cadena font-family de tu configuración de Ghostty no coincide con el nombre de la fuente instalada.

Solución: ejecuta ghostty +list-fonts | grep -i meslo, copia el nombre exacto de la familia en font-family y recarga con Cmd+Shift+,. MesloLGS Nerd Font y MesloLGS Nerd Font Mono son familias válidas pero diferentes; cualquiera funciona, siempre que la cadena coincida.

El comando preset da error o tu prompt se ve por defecto

Dos causas. Primera, un nombre de preset que tu versión de Starship no conoce: ejecuta starship preset list y usa un nombre de esa salida. Segunda, el archivo de configuración nunca se escribió: compruébalo con ls -la ~/.config/starship.toml. Si falta, vuelve a ejecutar el comando del preset del Paso 5. Si el archivo existe pero nada cambia, confirma que eval "$(starship init zsh)" aparece exactamente una vez en ~/.zshrc.

Reversión: deshacer toda la configuración

Nada de esto es un camino sin retorno. Desmóntalo en orden inverso:

  1. Elimina las líneas de inicialización del shell. Abre ~/.zshrc y borra las líneas eval de Starship y zoxide, las líneas source de los plugins y cualquier alias que hayas añadido:
bash
open -e ~/.zshrc
  1. Borra los archivos de configuración:
bash
rm ~/.config/starship.toml
rm -rf ~/.config/ghostty

Si hiciste la copia de seguridad del Paso 5, conserva starship.toml.bak.

  1. Desinstala los paquetes. Ghostty y la fuente son casks; el resto son fórmulas, así que dos comandos:
bash
brew uninstall --cask ghostty font-meslo-lg-nerd-font
brew uninstall starship zoxide eza zsh-autosuggestions zsh-syntax-highlighting

Una nota: la base de datos de directorios de zoxide vive en ~/.local/share/zoxide y sobrevive a la desinstalación. Déjala si piensas volver, o bórrala para una limpieza total.

Verifica: abre una ventana nueva de terminal. Deberías ver el prompt predeterminado de macOS y un arranque limpio sin errores.

Preguntas frecuentes

¿Starship o Powerlevel10k: cuál deberías usar?

Starship funciona en varios shells y máquinas con una configuración mínima. Powerlevel10k es genial si solo usas Zsh y quieres una personalización profunda y nativa de Zsh.

¿Sigues necesitando tmux si Ghostty tiene multiplexación?

Para flujos de trabajo locales, la multiplexación integrada de Ghostty funciona bien. Tmux sigue siendo útil si necesitas desconectar y retomar sesiones remotas, ejecutar trabajos largos en servidores o quieres un ecosistema maduro y portátil. Si decides que aún quieres tmux, nuestra guía para instalar tmux en macOS cubre lo básico.

Los iconos de mi prompt se ven rotos. ¿Qué pasa?

Revisa la fuente. Asegúrate de que Ghostty esté configurado con una Nerd Font (como MesloLGS Nerd Font Mono) y reinicia el terminal. La cadena exacta de la familia importa: verifícala con ghostty +list-fonts | grep -i meslo.

¿Por qué algunos servidores remotos muestran 'unknown terminal type'?

Algunos entornos no incluyen la entrada terminfo de Ghostty. Poner TERM=xterm-256color en las sesiones SSH lo soluciona.

¿Cómo mantengo Ghostty y Starship actualizados?

Ejecuta brew upgrade para las herramientas CLI y brew upgrade --cask --greedy para los casks como Ghostty y la Nerd Font. Ghostty también puede actualizarse automáticamente en macOS. Tras una actualización importante de Starship, vuelve a ejecutar starship preset list: los nombres de los presets cambian ocasionalmente entre versiones.

Conclusión

Tu terminal de Mac ahora tiene Ghostty y Starship, un preset de Starship que te gusta, ajustes mínimos y herramientas prácticas como zoxide, eza y alias sensatos. Coste total: 0 $/mes, todo local.

Próximos pasos:

Si te interesa usar Starship con Fish Shell en lugar de Zsh, tengo una guía dedicada: Cómo configurar el prompt de Starship con Fish Shell. Consulta también Fish Shell vs Zsh si estás pensando en cambiar de shell.

Y si grabas tu terminal para tutoriales o demos, yo uso Screen Studio para grabaciones de pantalla pulidas en macOS.

Lee la guía completa de Ghostty