Skip to main content
Glama

pult

Kontrollpanel för lokala utvecklingsappar. Peka på ett repo, välj branch, spara profiler med miljövariabler — och starta/stoppa allt från en dashboard som visar vad som körs, på vilken port och med vilken profil.

status

Vad den gör

  • Appar — registrera ett repo; projekttyp autodetekteras (Node/TypeScript via package.json, Java via pom.xml/Gradle, Docker via compose-fil eller Dockerfile) och git-brancher listas.

  • Standard + profiler — utan profil körs projektets egen konfiguration (standardkommandot, inga env-overrides, repots nuvarande branch). Profiler är overrides: egen branch, eget kommando och miljövariabler — klistra in en hel .env eller redigera rad för rad. Allt sparas i SQLite.

  • Parallella körningar — flera profiler av samma app kan köra samtidigt (t.ex. PORT=3000 mot Supabase och PORT=3001 mot lokal postgres); varje körning har egen rad med PID, port, uptime och stoppknapp. Samma profil kan också köras flera gånger, så länge varje körning får en egen port.

  • Engångsstart bredvid Starta ger en port och miljövariabler som gäller just den starten. Profilen ändras inte, och värdena sparas aldrig: bara nyckelnamnen hamnar i körningens kvitto.

  • Pin-läge — ⌖ i titelraden fäster pult som en smal alltid-överst-panel uppe till höger: en rad per app och en rad under den per körning som lever, med egen port och egen stoppknapp. ⌗ lossar den igen.

  • Glas — ramlöst fönster med egen titelrad och Windows-acrylic rakt igenom.

  • Branchdisciplin — profilens branch checkas ut före start, men bara om arbetsytan är ren och inga andra körningar av appen är igång. Ett smutsigt repo muteras aldrig.

Related MCP server: procm-mcp

Kom igång

npm install
npm run dev

Ingen native-kompilering: databasen använder Nodes inbyggda node:sqlite (Electron ≥ 35).

Installation (Windows)

npm run dist:win

bygger en NSIS-installer till release/ (per-användare, ingen admin). App-id: se.sockulags.pult, produktnamn pult, version från package.json. Kodsignering och auto-update är dokumenterade som senare steg (ingen certifikat-/distributionskanal ännu).

Datakataloger, backup och recovery

Vad

Var

Databas (appar, profiler, miljöer, historik)

%APPDATA%\pult\pult.db

Körningsloggar

%APPDATA%\pult\logs\run-<id>.log

Hanterade worktrees

%APPDATA%\pult\worktrees\

  • Backup: kopiera pult.db (och logs/ om du vill behålla loggarna). Stäng pult först så att skrivningar inte pågår.

  • Uppgradering bevarar all data (samma kataloger; migreringar är append-only och körs automatiskt vid start).

  • Avinstallation raderar aldrig databasen, loggarna eller worktrees — ta bort %APPDATA%\pult manuellt om du vill börja om.

  • Recovery: kraschar pult visas körningar från förra sessionen i en banner vid nästa start — levande processer kan återanslutas eller stoppas; osäkra identiteter rörs aldrig automatiskt.

Tray

pult lägger sig i systemfältet: visa/dölj fönstret, lista aktiva körningar, stoppa alla (efter bekräftelse), öppna senast kraschade körning. Om stängknappen ska avsluta eller minimera till tray väljs i tray-menyn, liksom valfri start med Windows (avstängd som standard).

Kommandon

Kommando

Gör

npm run dev

Startar appen med hot reload

npm test

Enhets-/integrationstester (vitest)

npm run typecheck

TypeScript över main, preload och renderer

npm run build

Produktionsbygge till out/

npm run e2e

De tolv kritiska Electron-E2E-resorna (Playwright, temporär databas)

npm run dist:win

NSIS-installer till release/

Språk

UI:t finns på engelska (standard) och svenska — växla med SV/EN-knappen i verktygsraden; valet sparas lokalt. Fel- och kvittotexter från kärnan är i nuläget svenska oavsett språkval (känd begränsning).

Att känna till

  • Lokalt bruk. Miljövariabler lagras i klartext i den lokala SQLite-filen — pult är byggd för din egen maskin, inte för delade hemligheter.

  • Worktrees. Hanterade worktrees ligger i %APPDATA%/pult/worktrees och städas aldrig automatiskt — borttagning är alltid ett bekräftat val som vägrar smutsiga eller aktiva worktrees. Obs: djupa node_modules i en worktree kan nå Windows MAX_PATH-gränsen; aktivera long paths vid behov.

  • Loggretention. Varje körning får en egen loggfil i %APPDATA%/pult/logs. Pult behåller som mest 30 loggfiler eller 200 MB totalt; äldst rensas först, aktiva körningars filer rörs aldrig, och rensningen raderar aldrig något utanför pults egen loggkatalog.

  • Pult spårar bara processer den själv startat. För en översikt över allt som kör på maskinen, se systerprojektet localhost-dashboard.

MCP-server (AI-styrning)

Pult exponerar en MCP-server (Streamable HTTP) på 127.0.0.1:7858/mcp så att en AI-klient som Claude Code kan läsa läget, konfigurera appar och styra körningar. Anslutningskommandot (med bearer-token) kopieras från MCP-sektionen i appen; servern kan stängas av där. 36 verktyg i fyra grupper: läsa/förstå, konfiguration, köra/kontrollera samt kontrollplan — plus pult://-resurser (overview, appar, körningar, loggar, startgrupper, operationer).

Säkerhetsmodellen:

  • Godkännanden sker i pult. Muterande verktyg (ta bort app, spara profil, applicera manifest, stoppa allt m.fl.) returnerar awaiting_approval och kör först efter ett klick i godkännandepanelen. Det finns inget approve-verktyg — modellen kan aldrig godkänna sin egen operation.

  • Miljövärden lämnar aldrig pult. Profilers env maskeras (•••) i alla MCP-svar; request_env_input öppnar ett formulär där du fyller i värden direkt i pult, och modellen ser bara vilka nycklar som fylldes i.

  • Repoläsning är inhägnad. search_repo/read_repo_files är begränsade till registrerade repon, blockerar .env, nyckel-/credentialfiler och .git/, maskar tokenmönster och har storlekstak.

  • Inga generella verktyg. Inget shell-verktyg, ingen fri filläsning, ingen SQL, inga pid-kill — körkontroll går genom samma launcher-regler som UI:t (endast egna processer, inga branchbyten i smutsiga repon).

  • Auditlogg. Alla anrop loggas till logs/mcp-audit.log; alla mutationer får en rad i mcp_operation-tabellen.

Arkitektur

src/main/core/   ren kärnlogik (parseEnv, detectKind, migrate, parsePort, repoGuard) + tester
src/main/        Electron main: SQLite (node:sqlite), repo-inspektion, launcher, IPC
src/main/mcp/    MCP-server: kontrakt, registry, operations/godkännanden, tools, resurser
src/preload/     typad IPC-brygga (contextIsolation)
src/renderer/    React + TypeScript: dashboard, profiler, env-editor, loggvy

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    Production-grade MCP server that gives AI agents safe access to your local dev environment: filesystem, databases, processes, and OpenAPI specs.
    15
    26 npm
    3
    MIT
  • A
    license
    C
    quality
    D
    maintenance
    An MCP server for secure process management, allowing LLMs to start, monitor, and manage whitelisted processes like development servers and test watchers.
    11
    28 npm
    5
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    A self-hosted MCP server that enables AI coding agents to read, edit, search, and run code in local projects with human review loops and policy controls.
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    A secure local MCP server that provides AI assistants controlled filesystem access and command execution with an interactive approval system for dangerous actions.
    17
    15 npm
    MIT