Saltar al contenido
pando/ docs

Opciones de la Web UI, el escritorio y la terminal

Todas las opciones de las superficies de Pando. La explicación está en Web UI, App de escritorio e Interfaz de terminal. Para el paso a paso, mira las guías Oriéntate en la Web UI, Proyectos y pestañas de trabajo, Acceso remoto y Design Studio.

Formas de arrancar Pando

ComandoQué abre
pandoLa interfaz de terminal en la carpeta actual
pando appWeb UI y API en un mismo puerto (por defecto 8765, HTTPS con certificado automático)
pando desktopLa misma interfaz en una ventana nativa
pando serveSolo la API, sin interfaz
pando -p "..."Una respuesta, sin interfaz
pando cli-assist "..."Un comando de shell sugerido a partir de lenguaje natural

Opciones de pando app y pando serve:

OpciónPor defectoSignificado
--hostlocalhostDirección en la que escucha. 0.0.0.0 deja entrar a otros dispositivos de la red
--port8765Puerto preferido
--tls-cert, --tls-keyautomáticoTu propio certificado y clave

Opciones de pando sin comando:

OpciónSignificado
-c <path>Arranca en esa carpeta
-p "<prompt>"Ejecuta una petición y sale. También la lee de la entrada estándar o de PANDO_PROMPT (prioridad: -p, stdin, variable, interactivo)
-m <model>Modelo para esta ejecución, por ejemplo copilot.gpt-5.4
-f json / --output-format jsonRespuesta en JSON
--goal "<objective>"Ejecuta un objetivo autónomo y sale
--yolo / --allow-all-toolsAprueba todas las herramientas sin preguntar
--quietImprime solo la respuesta
-dRegistro de depuración; -l <fichero> lo escribe en un fichero
-vMuestra la versión

Servidor y acceso

[Server]
Enabled     = true
Host        = "localhost"   # "0.0.0.0" or a network address to accept other devices
Port        = 9999
RequireAuth = false         # protect API endpoints with a bearer token

[Server.BasicAuth]
Enabled = true

[[Server.BasicAuth.Users]]
Username = "alice"
Password = "alice-password"

[[Server.BasicAuth.Users]]
Username = "bob"
Password = "bob-password"

Lo mismo en .pando.json:

{
  "server": {
    "host": "0.0.0.0",
    "basicAuth": {
      "enabled": true,
      "users": [
        { "username": "admin", "password": "your-secure-password" }
      ]
    }
  }
}
ClaveSignificado
Server.EnabledActiva o desactiva la API HTTP. Requiere reiniciar
Server.Hostlocalhost deja Pando solo en esta máquina. 0.0.0.0 o una dirección concreta lo abre a la red. Aquí requiere reiniciar; el interruptor del pie lo cambia en caliente
Server.PortPuerto de la API. Requiere reiniciar
Server.RequireAuthPide un token en las llamadas a la API
Server.BasicAuth.EnabledPide usuario y contraseña
Server.BasicAuth.UsersLista de pares Username / Password. Las contraseñas se guardan cifradas con AGE

Cuándo se pide usuario y contraseña:

Pando escucha enAccesible desde otros dispositivosPide credenciales
localhost o 127.0.0.1NoNo. El ajuste queda inactivo
0.0.0.0 o una dirección de redSíSí, a todos los clientes

No se puede activar sin al menos un usuario, y al borrar el último se desactiva.

Gestión de usuarios por la API (cambia el puerto y los nombres):

# Add
curl -X POST http://localhost:3939/api/v1/config/api-server/basic-auth/users \
  -H "Content-Type: application/json" \
  -d '{"username": "newuser", "password": "securepass"}'

# Delete
curl -X DELETE http://localhost:3939/api/v1/config/api-server/basic-auth/users/username

# Reveal a password
curl -X POST http://localhost:3939/api/v1/config/api-server/basic-auth/users/username/reveal

Espacios de proyecto

[Projects]
Enabled           = true
AutoRestore       = false
MaxProjects       = 20
MaxWebInstances   = 6
WebStartupTimeout = "20s"
ClavePor defectoSignificado
EnabledtrueActiva o desactiva los proyectos
AutoRestorefalseReactiva el último proyecto activo al arrancar
MaxProjects20Cuántos proyectos se pueden registrar. 0 es sin límite
MaxWebInstances6Cuántas pestañas de proyecto pueden estar en marcha a la vez. 0 es sin límite
WebStartupTimeout"20s"Cuánto espera Pando a que arranque una pestaña de proyecto antes de darla por fallida

Atajos de la barra de pestañas:

TeclasAcción
Ctrl+Alt+1..9Ir a la pestaña principal o a una de las primeras de proyecto
Ctrl+Alt+Left / Ctrl+Alt+RightPestaña anterior / siguiente
Ctrl+Alt+WCerrar la pestaña de proyecto activa

API que usa la vista de proyectos:

EndpointPara qué
POST /api/v1/projects/{id}/web/openArranca o reutiliza el espacio de trabajo del proyecto. Devuelve status (opened o already_open), project_id, web_url relativa (/api/v1/projects/{id}/web/) y web_port
POST /api/v1/projects/{id}/web/closeDetiene solo el espacio de trabajo y devuelve cancelled_delegations
GET /api/v1/projects/webLista los espacios en marcha como instances[] con project_id, name, path, web_port, web_url, pid, state, started_at y delegations
GET /api/v1/projects/eventsFlujo de eventos web_started, web_stopped y web_error para que la barra de pestañas se actualice sola

GET /api/v1/projects y GET /api/v1/projects/{id} incluyen además web_state, web_port y web_url, para que el navegador recupere las pestañas al recargar. activate arranca o enfoca el proceso de delegación de un proyecto, stop detiene ese proceso y el espacio de trabajo, y open-desktop abre una ventana nativa aparte.

Cómo se mantiene privada una pestaña de proyecto: solo escucha en esta máquina (127.0.0.1); el Pando principal habla con ella por TLS con un certificado que ha generado él mismo; su token de acceso nunca llega al navegador; el navegador recibe una cookie válida solo para la ruta de ese proyecto; y la pestaña se detiene cuando se cierra el Pando principal.

Design Studio

[Design]
OutputDir   = 'designer'   # project-relative folder that holds the designs
SystemDir   = '_system'    # sub-folder that holds the design system
DefaultKind = 'web'        # 'web' or 'deck'

[Design.Critique]
Enabled   = true
MaxRounds = 3        # designer/critic rounds per request
Threshold = 8.0      # score to beat, out of 10
Policy    = 'standard'

[MCPServer.Design]
Enabled = false      # publish the design_* tools through Pando's MCP server

Comandos:

pando design create "Landing page"             # create an empty design
pando design create "Q3 review" --skill deck-basic
pando design list                              # every design in the project
pando design open                              # open the most recent one
pando design open quarterly-review --slide 3   # jump to a slide
pando design versions landing                  # version history (--json for scripts)
pando design critique landing                  # run the quality check
pando design export landing --format html --out /tmp/landing.html
pando design export deck --format pdf --landscape
pando design export landing --format png --full-page

pando design skills                            # list templates and references
pando design skills show deck-basic

pando design system init                       # write the default system if none exists
pando design system show                       # print the current tokens
pando design system examples                   # list the bundled style guides
pando design system extract --from code        # from your stylesheets and components
pando design system extract https://example.com --from url
pando design system extract ./brand.png --from image     # colours only
pando design system extract ./brand-guide.md --from text
pando design system apply landing              # link the system into a design

pando design open mantiene una vista previa local hasta que pulsas Ctrl+C; --no-wait abre el fichero directamente y vuelve (en ese modo no funcionan los recursos relativos ni la selección de elementos). extract acepta --dry-run. Plantillas incluidas: landing-page, web-prototype, dashboard-page, deck-basic, magazine-deck y design-system-extract (un flujo de trabajo, no una plantilla).

TipoPara
webPáginas web y prototipos: landing pages, paneles, sitios de marketing
deckPresentaciones, con estilos de impresión para que el PDF pagine bien

Ficheros del sistema de diseño, en designer/_system/: tokens.json (la fuente de verdad), system.css (generado) y DESIGN.md (las reglas escritas que sigue el agente).

Interfaz de terminal

[TUI]
Theme               = 'pando'   # pando, light, dracula, gruvbox, opencode, onedark, tron, flexoki, tokyonight, catppuccin, monokai; add -nobg for a transparent background
ShowHiddenFiles     = false
NerdFonts           = true      # false draws plain characters instead of icon glyphs
ChatSidebar         = 'auto'    # 'auto' or 'off'
ChatSidebarMinWidth = 120       # terminal width, in columns, at which the sidebar appears

[Permissions]
AutoApproveTools = false

PANDO_NERD_FONTS=0 desactiva los iconos para una ejecución.

TeclasAcción
Ctrl+NSesión nueva
Ctrl+SCargar una sesión anterior. Mientras el agente trabaja: encolar tu mensaje como indicación
Ctrl+GAjustes
Ctrl+PComandos y opciones
Ctrl+RPanel de ficheros
Ctrl+HAtajos de la vista actual
Ctrl+TCambiar de tema
Alt+1 / Alt+2 / Alt+3Chat / Editor / Editor y chat
Ctrl+Shift+BMostrar u ocultar el panel de información del chat
Ctrl+Shift+HMostrar u ocultar ficheros ocultos
Ctrl+Shift+NFichero nuevo en el árbol
Shift+TabAprobar herramientas automáticamente, sí o no
Ctrl+UMostrar u ocultar el panel de terminal
Ctrl+Y / Ctrl+Shift+YNueva pestaña de terminal / cambiar de pestaña
Up / DownMensajes que enviaste antes
@Elegir un fichero para mencionarlo
/Comandos slash

La barra de estado muestra, de izquierda a derecha según el espacio: un botón de ayuda, los últimos ficheros editados, el proyecto activo, cuánto se ha llenado el contexto de la conversación (con ~ mientras el agente trabaja y un aviso a partir del 80 %), una etiqueta de aprobación automática, el número de favoritos del gateway MCP, errores y avisos del comprobador de código y el nombre del modelo. Todas las zonas admiten clic.

El panel de información del chat muestra el título de la sesión, el estado de los servidores de lenguaje, el plan con el estado de cada paso, los ficheros modificados con su recuento de cambios, y la dirección del repositorio y la carpeta de trabajo. El árbol de ficheros marca el estado de git (+, -, ?, →).

Preguntas e indicaciones

[InternalTools]
AskUserQuestionDisabled = true   # the agent can no longer ask you structured questions

Una ronda tiene de 1 a 4 preguntas, cada una con 2 a 4 opciones, una opción «Otro» de texto libre que se añade sola, selección múltiple opcional y un encabezado de hasta 12 caracteres.

Enviar una indicación a una sesión en marcha por la API:

curl -X POST http://localhost:8766/api/v1/sessions/:id/steer \
  -H "Content-Type: text/plain" \
  -d "Focus on the authentication module instead"

Tus propios comandos slash

Los ficheros Markdown se convierten en comandos:

CarpetaSe muestra como
<data-dir>/commands/project:command-name
~/.config/pando/commands/ o ~/.pando/commands/user:command-name

Compilar la app de escritorio desde el código

make build-desktop