Qué hay en la ventana

Una veintena de vistas, agrupadas como las agrupa la barra lateral. Cada una está aquí porque la necesité mientras hacía otra cosa y me cansé de salir de la app. Si prefieres ver cómo se usan en vez de qué son, la guía es la otra puerta.

§ 01 — Grafo

El grafo, en canvas

Dibujado en un canvas y no como nodos del DOM, y solo para las filas visibles, así que un historial de seis cifras se recorre igual de rápido que un repo recién creado. Lo que significan las líneas importa tanto como la velocidad: un merge se curva hacia el carril que abre, con el color de ese carril, y una rama que vuelve a una línea existente se curva hacia ella — de forma que la figura en pantalla es la que git registró.

  • Carriles de ramas, curvas de merge, líneas de sincronización y resaltado por autor, todo con los colores del tema activo.
  • ⌘F o / filtra por autor, mensaje o ref, y el grafo se recoloca alrededor de los resultados.
  • Badges de refs coloreados por tipo — rama local, remota, tag, HEAD — con el mismo color aquí y en el detalle del commit.
  • Selecciona un commit para ver mensaje, autor, padres y ficheros cambiados, con diff por fichero.
  • Editor de merge a tres bandas, rebase interactivo, revert, amend, reset, cherry-pick y blame.
  • J / K recorren commits sin tocar el ratón.
El grafo de commits: carriles de ramas, curvas de merge, badges de refs y el panel de detalle del commit
el grafo de commits, con los ficheros del commit seleccionado al lado
§ 02 — Cambios

Staging, hasta la línea

La vista de cambios es donde se va la mayor parte de la jornada, así que se toma el teclado en serio. Los hunks se pliegan, un fichero se puede expandir a su contenido completo cuando tres líneas de contexto no bastan, y se pueden preparar, descartar o guardar en un stash líneas sueltas a partir de la selección.

  • Plega un hunk o todos; expande un fichero a su contenido completo y conserva esa vista tras un refresco en segundo plano.
  • Prepara, quita del índice o descarta líneas sueltas, o un rango seleccionado con Shift.
  • Las flechas mueven el cursor, Espacio prepara el fichero donde está y Enter abre su diff.
  • Un lápiz en cualquier fila abre ese fichero en el editor; ⌘E abre el que tenga el panel de diff.
  • Los commits respetan commit.gpgsign — SSH, GPG o X.509 — y Ajustes tiene un botón de prueba de firma que muestra el error real.
  • Descartar tiene cuidado con los symlinks: un enlace se borra como enlace, apunte a donde apunte.
La vista de cambios con hunks, staging por líneas y diff en paralelo
staging, hasta líneas sueltas
§ 03 — Ramas y compañía

Ramas, tags, stashes, worktrees

Las ramas llegan como un árbol de carpetas, porque feat/ y fix/ ya lo son. Marca con una estrella las que de verdad usas y suben a lo alto de su propio nivel: una feat/cosa marcada sube a lo alto de la carpeta feat en vez de escaparse de ella. La estrella pertenece a la rama, no a la ref, así que marcar develop también enciende origin/develop, y vive en .beardgit/favorites.json para sobrevivir a un reinicio.

  • Ramas locales y remotas, cuentas de adelanto/retraso, y una etiqueta en cualquier rama cuyo upstream sea [gone].
  • Limpieza de ramas: un diálogo borra en bloque las que ya no existen en el remoto, con "mergeadas en la rama por defecto" como segundo grupo opcional.
  • Tags y releases, stashes con diff por fichero, y worktrees enlazados que puedes crear, abrir en una pestaña o podar.
  • Compara dos refs cualesquiera — rama, tag o SHA, con autocompletado — para ver los commits que añade una sobre la otra, el resumen de adelanto/retraso y el diff por fichero.
  • Reflog con acciones de recuperación, para ese reset del que te arrepientes.
La lista de ramas como árbol de carpetas, con las marcadas con estrella arriba de su nivel
las ramas como árbol de carpetas, las marcadas primero
El panel de submódulos con un submódulo anidado bajo su padre y el estado de cada uno
los submódulos, incluidos los que están dentro de submódulos
La vista de comparación con dos refs elegidas, los commits que añade una y los ficheros cambiados
comparar — qué añade esta rama sobre la otra
La lista de stashes con el diff del stash seleccionado
los stashes, con lo que llevan dentro
§ 04 — GitHub y GitLab

GitHub y GitLab

Los dos en serio, en vez de uno con el otro atornillado por encima. BeardGit habla con ellos a través de gh y glab, e incluye sus propias copias de ambos en cada instalador — las mismas versiones para todo el mundo, sea lo que sea lo que tengas en el PATH. Tu login de siempre sigue valiendo, porque esas CLIs guardan las credenciales en tu configuración y tu keyring, no en el binario.

  • Pull requests y merge requests: abrir, editar, comentar, aprobar, mergear, con diff por fichero e hilos de review en línea. [ y ] recorren los ficheros.
  • Issues con etiquetas, milestones y asignados; releases con subida de artefactos en streaming.
  • Ajustes del repo — descripción, web, topics, visibilidad, rama por defecto, protección de ramas, etiquetas — sin abrir el navegador.
  • GitHub Enterprise autoalojado y GitLab on-prem funcionan tal cual; la autenticación se comprueba por host, así que un forge que solo vive en la VPN no tapa a otro que sí responde.
  • Un gitlab.com personal y un GitLab corporativo pueden estar conectados a la vez.
Una pull request con su estado de CI, el diff por fichero y los hilos de review en línea
una pull request, revisada sin salir de la app
Una merge request de GitLab con su estado de pipeline y los hilos de review
una merge request de GitLab — la misma vista, el otro forge
La lista de issues con etiquetas y la issue seleccionada abierta al lado
las issues, con etiquetas, asignados y comentarios
La lista de releases con sus notas y los artefactos adjuntos
las releases, publicadas y subidas desde aquí
§ 05 — CI/CD

Pipelines, y el log que de verdad quieres

Las ejecuciones de GitHub Actions y los pipelines de GitLab en la misma vista, con la lista de jobs debajo y su log en un panel que puedes dejar abierto mientras trabajas. Las matrices de build grandes se recorren hasta el final en vez de cortarse en los primeros cien jobs.

  • Lanza, reintenta, reintenta solo los jobs fallidos o cancela — desde la propia fila.
  • Los logs de cada job llegan a un panel que conserva su sitio cuando sales de la vista y vuelves.
  • Los chips de búsqueda filtran por estado, rama o ref.
  • El grafo muestra el estado del pipeline junto al commit, así que una build roja se ve donde ya estás mirando.
Una ejecución de GitHub Actions con su lista de jobs y el log en streaming
una ejecución de GitHub Actions, con jobs y log
Un pipeline de GitLab con sus etapas y jobs
un pipeline de GitLab, en la misma vista
§ 06 — AI

La AI trabaja en un worktree

BeardGit no tiene modelo ni clave de API. Lanza tu instalación de Claude Code, Codex u OpenCode, y lo hace en un sitio donde no puede arruinarte la tarde: cada ejecución en segundo plano recibe su propia rama ai/<proveedor>/<slug> en un worktree aislado, en una cola con el límite de concurrencia que tú pongas. Tu copia de trabajo no se mueve mientras trabaja.

  • Lee la transcripción mientras llega y luego mergea la rama, conserva el worktree para después o tíralo.
  • La ejecución escribe un informe en Markdown en el repositorio padre, así que sobrevive a descartar el worktree.
  • Desde cualquier vista, el proveedor activo puede redactar un mensaje de commit, revisar lo que tienes preparado o revisar una pull request — y se calla cuando no hay nada que comentar.
  • Los prompts van por stdin, así que un diff grande se revisa completo en vez de cortarse en el límite de la línea de comandos.
  • Un interruptor en Ajustes lo apaga todo: sin sondear CLIs al arrancar, sin vistas de AI y sin acciones de AI.
Una sesión de AI con su transcripción, el worktree en el que corrió y el informe guardado
una ejecución de AI, en su worktree, con la transcripción guardada
§ 07 — Peticiones

Un espacio .http dentro del repo

La petición que reproduce un bug pertenece al lado del código que tiene el bug, no a la base de datos privada de una app de escritorio. Son ficheros .http normales en .beardgit/requests/: commitéalos y git pull se los lleva al resto del equipo.

  • Los entornos son JSON commiteable en _env/: las variables en el fichero, los secretos solo por nombre y sus valores cifrados en tu máquina.
  • Autocompletado de {{var}}, resaltado de JSON y una vista previa ya resuelta antes de enviar.
  • Historial de respuestas por petición, con diff entre dos cualesquiera de las que has recibido.
  • Copiar como cURL, fetch, HTTPie o wget. Cancelar cancela de verdad la petición en vuelo.
  • Las direcciones privadas y de loopback se rechazan salvo que lo habilites — la guía tiene el flag.
El espacio de peticiones .http con la petición, el cuerpo compuesto y el selector de entorno
una petición .http, commiteada junto al código que la llama
§ 08 — Editor

Un editor de ficheros para el arreglo de dos líneas

No sustituye a tu IDE: es un sitio donde corregir la errata que acabas de ver en el diff sin cambiar de ventana. CodeMirror 6, con un árbol que respeta el gitignore, lista un nivel a la vez y conserva pestañas abiertas, carpetas desplegadas y cambios sin guardar cuando sales de la vista y vuelves.

  • Snippets por lenguaje (Rust, TypeScript, JavaScript, Python, Go), autocompletado de palabras clave y guías de indentación.
  • Lint de JSON, con reglas extra para package.json y tsconfig.json, y selectores de color en línea en CSS.
  • Guardar escribe en disco; guardar con Shift también prepara el fichero para el siguiente commit.
  • Revelar el fichero activo en el árbol, activado de serie: las carpetas se abren y la fila se desplaza a la vista.
  • Clic derecho en un fichero en Cambios, Ramas o Reflog y se abre aquí.
El editor de ficheros de la app con el árbol del repositorio, pestañas y resaltado de sintaxis
el editor de ficheros, para el arreglo que no merece cambiar de app
§ 09 — Bisect y reflog

Bisect y reflog, con botones

Dos comandos que merecen tener cara. Elige el commit bueno y el malo y avanza con botones; o deja que el modo automático ejecute tu comando de test en cada paso y lo resuelva mientras haces otra cosa. Bisect funciona dentro de un worktree enlazado o de un submódulo, que es justo donde antes no hacía nada sin decirlo.

  • El log de bisect está en pantalla, así que ves a qué ha llegado git hasta ahora.
  • El reflog lista cada movimiento de HEAD con acciones de recuperación en la fila — la red de seguridad para un reset mal dado o una punta de rama perdida.
  • El rebase interactivo se planifica en un diálogo y se vuelve a comprobar antes de ejecutarse, así que los commits que hayan llegado mientras estaba abierto no pueden desaparecer.
Una sesión de bisect en marcha con el commit actual y los pasos que quedan
una sesión de bisect, a media caza
El reflog con cada movimiento de HEAD y sus acciones de recuperación
el reflog — el deshacer que no sabías que tenías
§ 10 — Temas

31 temas, y el tuyo

Tres familias propias — BeardGit, Fjord y Nebula — y los clásicos que ya usas en tu editor: Rosé Pine, Everforest, Kanagawa, Ayu, Catppuccin, Dracula, Gruvbox, Nord, Tokyo Night, Solarized, Oxocarbon y más. El tema llega a toda la app, incluidos los colores de sintaxis del editor, los fondos de los diffs y los carriles del grafo.

  • Todos los temas incluidos superan el mínimo de contraste WCAG AA en los tres niveles de texto, y un test se encarga de que siga siendo así.
  • El tema que escribas tú también se mide, y se informa — nunca se reescribe. El selector te dice qué tokens se quedan cortos y por cuánto, y lo aplica igualmente.
  • Tu tema es un fichero TOML con 18 colores; los acentos, los bordes, los carriles del grafo y la paleta del editor se derivan de ellos salvo que fijes los tuyos.
  • El oscuro y el claro se emparejan, así que la app puede seguir a tu sistema.
El selector de temas en Ajustes con los temas incluidos y el informe de contraste
el selector de temas, con el contraste medido
§ 11 — Teclado

Una paleta de comandos, y las teclas que hay detrás

⌘⇧P lista todas las vistas y todos los atajos registrados, y ejecutar uno desde la paleta hace exactamente lo que hace la tecla. Es la forma más rápida de aprenderse el teclado: busca la acción por su nombre y la paleta te enseña el atajo al lado.

  • Escribe un par de palabras en cualquier orden — stash, unstage all — y elige la fila.
  • ? abre la chuleta completa, generada desde el mismo registro, así que no puede desviarse de lo que de verdad funciona.
  • En Linux y Windows, cada de aquí se lee como Ctrl.
  • La guía tiene la tabla completa — la paleta y la chuleta son la misma lista.
La paleta de comandos abierta sobre el grafo, listando vistas y atajos
la paleta de comandos — vistas y todos los atajos
§ 12 — Privacidad

Tuyo, y callado

Sin cuenta, sin telemetría y sin ningún endpoint de analítica en la app. Dos interruptores en Ajustes → General → Integraciones deciden cuánto de todo esto está siquiera despierto: uno para GitHub y GitLab, otro para la AI. Con los dos apagados, BeardGit es un cliente solo de git cuya única petición propia hacia fuera es la comprobación de actualizaciones — que también tiene interruptor.

  • Forge apagado: no se valida ningún token guardado al arrancar, el remoto origin no se resuelve contra la API del forge y toda la superficie de forge se esconde. Las cuentas se conservan, no se borran.
  • AI apagada: no se sondean CLIs, no hay vistas de AI y no se vigila el proceso de la terminal buscando un agente. Lo que ya estaba corriendo termina; el historial sigue legible.
  • Las pestañas de repositorio cargan su estado pesado solo para la pestaña en la que estás, así que una docena de repos abiertos cuesta más o menos lo que uno.
  • Los logs son locales, rotan a diario y se purgan al cabo de una semana; el nivel es un ajuste, y los secretos se tachan al escribirlos.
  • La guía enumera todos los ficheros que escribe la app, en tu máquina y dentro de tu repo.
Los ajustes con las conexiones de GitHub y GitLab y el estado de las CLIs incluidas
la página de integraciones — y el interruptor que lo apaga todo

Ahora el cómo

Instalar, conectar un forge, escribir un tema, la tabla completa de atajos, dónde viven tus datos y qué hacer cuando algo se porta mal — todo en la guía.

Leer la guía