Zum Inhalt springen
← Zurück zu den Projekten

LoopTroop

#LoopTroop

A smart local engine that automates big coding tasks from start to finish. LLM councils plan it. Ralph loops perfect it. OpenCode worktrees ship it.

LoopTroop helps you turn a coding ticket into a planned, reviewable, agent-executed pull request.

Instead of trusting a single, endless AI chat session - where the conversation history gets bloated, the AI gets confused, and code quality falls off a cliff - LoopTroop breaks the job into clean, separate stages. Planning turns an interview into a PRD, which is then split into the smallest manageable milestones, called "beads." Execution runs each bead through multiple targeted auto-fix loops. A final review ties it all together.

Architectural Layer Core Technical Lifecycle
1. Planning LLM Councils Plan It Human Input ➔ AI Interview ➔ PRD ➔ Atomic Beads
2. Execution Ralph Loops Perfect It Isolated Bead Work ➔ Multi-Loop Automated Testing & Fixing
3. Shipping OpenCode Worktrees Ship It Code Isolation ➔ Final Verification Pass ➔ Main Branch Handoff

Start here: Docs | Getting Started | Ticket Lifecycle Screenshots | LLM Council | Context Engineering | Execution

LoopTroop workflow demo An animated walkthrough of a ticket lifecycle and the configuration menu.

#📸 Screenshots

Click to expand the screenshot gallery

Projects dialog Manage attached repositories, review ticket counts, and add new projects from the dashboard.

Configuration dialog Choose the main implementer model, council members, and effort levels for local orchestration.

Interview workspace Answer focused planning questions before specs and implementation plans are approved.

Ticket workflow detail Track council progress, generated artifacts, and live execution logs inside a ticket.

Implementation review Review bead completion, commits, changes, and final implementation details before closing the workflow.

Bead execution detail Inspect bead-level progress, task status, and live execution logs while an implementation bead runs.

Bead error view Review the focused workspace view shown when an implementation bead is blocked by an error.

Alternate bead error view Compare a different bead's error state, diagnostics, and recovery context before deciding whether to continue or retry.

#🎬 16 Min Deep Dive - Presentation & Full Ticket Demo

Click to expand the presentation and demo

LoopTroop Demo Watch the full 16-minute presentation and ticket demo.


#Quick start

curl --proto '=https' --tlsv1.2 -fsSL https://www.looptroop.ovh/install | sh
looptroop open

open starts LoopTroop in the background if it is not already running. Use looptroop start if you want the service without a browser.

For maintenance, clean --apply rechecks each abandoned worktree immediately before removal and keeps it when ownership, activity, registration, or Git state has changed. If Git cannot list registered worktrees, cleanup keeps the directories in place, including when that check fails after the preview. Both CLI cleanup and Free Disk Space keep worktrees containing ignored files such as .env, dependency folders, or build output, except LoopTroop's own runtime files. Explicit ticket and project deletion remains destructive. Process cleanup refuses a signal when the recorded process identity is missing, recycled, or otherwise unverifiable. See the CLI Reference for service commands.

When start launches a daemon itself, it can still accept that live direct child if Windows temporarily cannot report its start time. A persisted record without a verifiable identity is never adopted or signalled by PID alone. Health checks must return the recorded instance ID. Failed starts can stop their own live child through the retained process handle, even when the start-time probe is unavailable. Log follow watches the containing directory so rename-and-create rotation resumes at the start of the replacement file.

Then configure your settings and models (from providers already added in OpenCode), attach a local repository with a GitHub origin, create a ticket, and start it.

If LoopTroop cannot confirm that an OpenCode session stopped remotely, it keeps the ticket retryable and leaves the ownership visible. The durable session- ownership marker, runtime/opencode-pending-sessions.json, can recover those session IDs when the project database is unavailable. Cancellation separately writes the private .ticket/runtime/cancellation-pending.json marker before cleanup; missing means no pending stop, while malformed or unreadable content fails closed and blocks coding. This cancellation marker records the stop request but does not identify or recover a remote session. Cleanup removes it only after terminal cleanup through the contained ticket-file boundary, or after a CODING Retry has confirmed the previous stop and safely recovered its bead. If both the database and ownership marker storage are unavailable, only the current process can guard the session, so a restart cannot claim recovery.

#Every way to install it

curl / irm — the one-line installer (shown above)
curl --proto '=https' --tlsv1.2 -fsSL https://www.looptroop.ovh/install | sh
irm https://www.looptroop.ovh/install.ps1 | iex

Resolves the newest release, checks the download against the checksum that release published, and hands it to npm. Because it installs through npm, npm install -g looptroop@latest and npm uninstall -g looptroop keep working exactly as they would have. Pin a version with --version X.Y.Z (-Version on Windows). It installs wherever npm's global prefix points; change that with npm config set prefix.

Needs Node 24.18.1 or newer and npm 12.0.2 or newer already installed. It never installs Node for you, never asks for sudo, and writes nothing outside npm's global prefix.

There is also a standalone executable that carries its own Node runtime — see Installation.

npm — everywhere
npm install -g looptroop
npm install -g looptroop@latest   # upgrade

Needs Node 24.18.1 or newer and npm 12.0.2 or newer, plus git and gh.

Homebrew — macOS and Linux
brew install looptroop-ai/tap/looptroop
brew upgrade looptroop            # upgrade

Needs nothing else. The formula pulls in node@24 and gh, and takes git from the OS. It installs a locked bundle built once per release from the release lockfile, so everyone on this channel runs the exact versions the release was tested against.

Scoop — Windows
scoop bucket add looptroop https://github.com/looptroop-ai/scoop-bucket
scoop install looptroop
scoop update looptroop            # upgrade

Needs nothing else. The manifest depends on nodejs-lts, git and gh. Like Homebrew, it installs the locked bundle built from the release lockfile.

bun — everywhere
bun add -g looptroop
bun add -g looptroop@latest       # upgrade

Needs Node 24.18.1 or newer as well as bun — the launcher is a Node program, so bun installs it but Node runs it — plus git and gh.

pnpm — everywhere
pnpm add -g looptroop
pnpm add -g looptroop@latest      # upgrade

Needs Node 24.18.1 or newer as well as pnpm, plus git and gh.

pnpm holds a new version back for about a day: it will not resolve a tag to a version published in the last 24 hours — a supply-chain protection, on by default — so @latest installs the newest release older than that window. Asking for an exact version bypasses it.

Yarn Classic — Bash/zsh commands
yarn global add looptroop
export PATH="$(yarn global bin):$PATH"   # Yarn does not do this for you
yarn global upgrade looptroop@latest     # upgrade

Needs Node 24.18.1 or newer as well as Yarn, plus git and gh.

These commands use Bash or zsh syntax. Yarn Classic also runs on Windows, but a PowerShell PATH command is not documented here. Use npm on Windows for the recommended documented setup.

In Bash or zsh, Yarn does not put its global binaries on PATH. This looks like a failed install and is not: the add reports success, and then looptroop is not a command. Add the line above to your shell profile, or the next terminal will have forgotten it. npm, bun and pnpm all install somewhere already on PATH, which is why this catches people out on Yarn alone.

Yarn Classic (1.x) only. Yarn 2 removed yarn global and never replaced it, so modern Yarn cannot install a CLI globally at all — and it does not say so cleanly: yarn global add looptroop on Yarn 4 reads global as a package name and fails with a lockfile error. On modern Yarn, run it without installing with yarn dlx looptroop, or install it with one of the other channels.

Docker — linux/amd64 and linux/arm64
docker pull looptroopai/looptroop:latest

Needs only Docker. Node, git and gh are all in the image. Release images use the matching tarball and package-lock.json, then record the installed package versions before the multi-architecture image is published. Two things the image still needs from you, both deliberately not baked in: an OpenCode server it can reach, and a project mounted at its own absolute path. See the Installation page.

#Standalone executable

Standalone release archives carry Node v26.9.0 in the executable, so a downloaded archive runs without Node installed on the host. That embedded runtime is separate from the application and package floor: Node 24.18.1+ remains required for the npm, bun, pnpm and Yarn channels and for the container's application runtime.

Node 26 is currently the Current release line, with its planned Active LTS transition on 2026-10-28. Embedded-runtime security maintenance follows Node's release schedule separately from LoopTroop's application-runtime support; dates can change.

The Installation page is the one place that tracks which channels are live, and covers upgrading, uninstalling, verifying a download against the checksums each release publishes, and running in a container.

#What you need besides LoopTroop

  • git, and gh authenticated, for the pull-request step at the end of a ticket. Installed for you via Homebrew, Scoop, Chocolatey, WinGet and the AUR; not installed if you used npm, bun, pnpm, Yarn or the standalone executable, which have no way to declare a dependency.
  • OpenCode, with at least one configured model provider. LoopTroop will start it if it is already installed, but it will not work without it and it will not install it for you.
  • On Linux user namespaces, a tool whose owner is the kernel's unmapped overflow UID is refused by default, including in a canonical OpenCode directory. If you deliberately keep tools in such a directory, set LOOPTROOP_TRUSTED_EXECUTABLE_DIRS in the daemon's own environment to the absolute directory that contains them. Separate multiple directories with : on macOS/Linux or ; on Windows; only the directories you name are opted in, and a child process cannot change this setting.
  • Windows tool discovery uses the supported .exe, .com, .cmd and .bat entries in PATHEXT. It skips script types that need another interpreter, such as .ps1 and .vbs, rather than selecting a tool it cannot launch.

#What is LoopTroop?

LoopTroop is a local GUI orchestrator for long-running, high-correctness AI software delivery - taking you from a raw idea to merged code. Free and fully open-source.

Unlike high-speed coding tools that optimize for immediate chat responses, LoopTroop is built for complex, multi-file feature work where alignment and correctness are paramount. It optimizes for a "slow and perfect" paradigm, intentionally sacrificing raw speed to deliver a final result that matches exactly how you envisioned it.

Great Context Engineering = Zero AI Slop: LoopTroop employs precise context curation at every stage, feeding the agent only the absolute minimum context it needs. See Context Engineering below for details.


#How it works

flowchart LR
    A["🎫 Ticket Input"] --> B["🔍 Codebase Discovery"]
    B --> C["🏛️ LLM Council Planning<br/>(Interview, PRD & Beads)"]
    C --> D["🛑 Human Approval Gate<br/>(optional in future releases)"]
    D --> E["🧪 Isolated OpenCode Bead Execution<br/>(Git Worktree)"]
    E --> F["✅ Final Tests"]
    F --> H["🧭 Optional Manual QA<br/>(user runs the app)"]
    H --> I["📦 Integration & PR Review"]
    H -.->|"Failures become QA fix beads"| E
    E -.->|"On Failure"| G["🔄 Ralph-Style Recovery Loop"]
    G -.->|"Retry"| E

LoopTroop keeps workflow state outside the model, stores durable artifacts, and asks for approval at important boundaries. Optional Manual QA runs after final tests: you complete the checklist while manually controlling the app, then the ticket continues to integration. Failed checks create QA-fix beads, while improvements creates new tickets.

#Core ideas

#Context Engineering

Context rot is the enemy of autonomous agents. Traditional agent loops suffer from it-excessive conversational history and irrelevant files overwhelm the model, causing code quality to degrade. Performance can drop severely when reaching just 40% of the maximum context window, resulting in missing files, broken imports, and "AI slop." [note]

LoopTroop solves this through precise context curation. Instead of sending full conversational transcripts, the engine isolates payloads to the active status. During execution, the agent only sees the specific active bead, its immediate file target, and the test file. During planning phases, it receives only the minimum context relevant to the current step.

This eliminates conversation pollution from previous execution attempts, prevents LLM drift and performance degradation, and keeps model focus high. Keeping the working context fresh is what makes multi-hour, multi-step engineering cycles actually work.

Read more: Context Engineering

#LLM Council

The LLM Council is LoopTroop's planning system. Instead of relying on a single model run, LoopTroop orchestrates multiple independent model instances that draft plans, score each other using a weighted rubric, and vote on proposals. The winner then refines its draft by synthesizing the strongest ideas from the losing drafts and verifies coverage before any execution begins.

This multi-role process (draft → vote → refine → verify) is utilized for:

  • Interview questions
  • PRD/Specs generation
  • Bead/blueprint generation

Read more: LLM Council

#Interview

Before writing a spec, the LLM Council compiles a list of targeted questions to resolve any ambiguities. This interactive session gathers requirements and clarifies intent-because matching your vision is the goal, this phase can take over an hour by design.

You answer these questions directly in the Interview workspace to clarify edge cases, design decisions, and requirements, ensuring the model never operates on false assumptions. Although a final interview is created after the council's draft-vote-refine cycle is complete, the user still receives questions in batches that can adapt based on previous answers.

Read more: Interview

#PRD (Product Requirements Document)

Once the interview phase is complete, the LLM Council translates your initial ticket and your interview answers into a structured Product Requirements Document consisting of Epics and User Stories, complete with highly decomposed implementation steps. This spec serves as the single source of truth for the implementation, detailing the technical approach, edge cases, scope, and expected validation steps before any coding starts. The PRD is stored as a durable artifact for later reference during bead execution.

Read more: PRD

#Beads

LoopTroop implements only the Beads methodology-not the full external Beads Project-extracting just the lightweight planning structure needed to bring immediate value to your repository.

Using Steve Yegge's Beads Project methodology, epics are split into "beads"-the smallest, independently implementable units of work. Each bead contains:

  • Clear purpose and objective
  • Measurable acceptance criteria
  • Necessary dependencies and prerequisite context
  • Specific target files
  • Expected validation and testing steps

A bead acts as a small, isolated implementation unit, allowing the execution agent to complete concrete tasks sequentially rather than attempting a massive, single-pass code rewrite.

Read more: Beads

Bead approval preserves unknown stored statuses for JSONL repair instead of silently changing them to pending. Known aliases still normalize to supported statuses, while approval rejects a missing status or priority rather than inventing one. Executable beads must include their acceptance criteria, tests, and target-file lists, and each test command is a structured command or has an explicit reason for being omitted. Editing waits for the loaded artifact's content hash, so every save can check that it is replacing the version you read; saves return the canonical JSONL and hash that the server wrote. Duplicate bead IDs and malformed nested Manual QA evidence are rejected on authoritative reads, and malformed JSON bodies receive a stable 400 response. Canonical empty fields clear legacy aliases in the editor as they do on the server. YAML repair keeps valid answers, folded text, and literal block text unchanged, including compact nested blocks.

#Execution & Ralph-style recovery

The actual implementation is carried out by an AI coding agent (OpenCode) running in an isolated workspace. If the agent struggles, continuing the same conversation can make things worse. LoopTroop's retry mechanism (the "Ralph Loop") preserves a highly compact error trace from the failure, attempts a safe worktree reset, discards the contaminated session, and begins a fresh run with clean context plus a note from previous failures. A conflicting OpenCode step-cap marker can refuse that destructive reset while preserving the edited config and sidecar; a later bead may continue without a fresh cap when no reset is needed.

fail ──> log failure trace ──> safe reset ──> retry fresh

This cycle repeats until all tests pass or retry limits are reached. This can take hours (sometimes 10+ hours) by design. It is built to run unattended (e.g., overnight).

When OpenCode Max Steps is set, LoopTroop keeps the authoritative restore marker in its owner-only app configuration at <app-config>/opencode-steps/<ticket-directory-hash>.json, outside the mutable worktree. A ticket-side opencode-steps-restore.json is only a convenient copy for inspection. If the capped root opencode.json is edited, the edited bytes and authoritative marker stay in place and a destructive reset that would overwrite them is refused. Ordinary capped runs still retry normally; a later bead can continue without applying a fresh cap when no reset is needed, and valid marker evidence keeps the root config out of bead and final commits. A missing local copy does not erase valid external evidence. A missing marker after a restart provides no attributable restore operation, so LoopTroop does not infer ownership from the local copy or from absence; malformed existing authority likewise stays visible and is not overwritten. If a live retry loses that marker or cannot reapply the cap after a reset, the retry stops with the exact marker path and a manual remedy instead of running uncapped. Applying the cap does not add a common Git exclude rule. Filesystem-equivalent casing follows the actual worktree paths; native Windows/macOS equivalent-case behavior is not claimed here.

Managed OpenCode shutdown keeps its direct process handle until the complete owned tree is proven gone. On Windows, a leader exit alone is not that proof: the /T taskkill operation must finish successfully as well, so failed or interrupted cleanup keeps the daemon ownership records available for retry.

Protected Git-hook validation keeps its crash-recovery marker in LoopTroop's owner-only application data rather than inside the project, so a hook cannot delete the only record needed to undo its changes. Recovery compares the current tracked and staged state with that marker before restoring anything; new or edited files remain untouched until the ambiguity is resolved.

If startup finds an orphan YAML or whole-file JSONL temp without its matching proof, including an empty JSONL temp, it warns and leaves the temp unpromoted for inspection. Recovery blocks startup only when an in-progress fallback's .recovery ownership or completeness cannot be verified; that typed diagnostic appears before projections, ticket hydration, or execution timers, with the affected files preserved. LoopTroop does not guess or silently promote an uncertain write. A new bead stays pending until its reset commit has been recorded. If that read fails or the ticket is canceled while it runs, no coding session starts; Retry can attempt the checkpoint again without inventing a reset target. If the checkpoint was recorded but the status write was interrupted, Retry can also safely reset that still-pending bead from its recorded anchor; a pending bead without either marker remains untouched.

Read more: Beads & Execution

#Worktree isolation

LoopTroop runs execution steps inside isolated Git worktrees rather than modifying your active branch. This keeps your working copy clean and ensures reliable, inspectable diffs. Git mutations and resets have bounded process cleanup, unusual filenames stay intact when diffs are read, and generated runtime files stay out of candidate commits. Protected Git-hook validation uses an identity-bound restore marker for the worktree and index; invalid or escaped markers fail before recovery writes, and unknown untracked additions stay intact when attribution is unclear. Note that worktrees provide workspace isolation, not sandboxed host security.

When cleanup is run in its conservative mode, LoopTroop asks Git for ignored untracked entries in a real worktree and preserves user files; only its own .ticket/ and .looptroop/ roots are eligible for removal. A pre-start ticket skeleton is checked directly instead of inheriting ignore rules from the parent repository, and only its .ticket/ root is eligible. The Free Disk Space action uses this mode for completed and canceled ticket worktrees: protected worktrees are skipped and reported with the reason, while eligible worktrees are removed. An ignored file such as a local environment file therefore remains in place without preventing other cleanup. If Git yields while a worktree is being removed, a replacement directory is left alone. The daemon also waits for detached Git and GitHub children during shutdown and closes active SSE streams before waiting for its HTTP server, so a connected browser cannot hold graceful shutdown open indefinitely. Startup recovery refuses to overwrite a target that has advanced since a completed fallback copy.

Only select repositories you trust. LoopTroop preserves repository-local Git configuration, including core.sshCommand, so custom SSH wrappers keep working. Git may execute those wrappers with your account's permissions during remote operations, including connection checks. Worktree isolation does not restrict what a wrapper can do on the host.

Read more: System Architecture

#Security boundaries

LoopTroop runs coding agents with your local user permissions. Worktrees keep repository changes separate, but they do not sandbox the host. Use a disposable VM or another isolated development environment for unattended runs.

Session cookies require same-origin proof; a bearer header cannot bypass checks on an accompanying cookie. Local mode requires a loopback Host, and an Origin matching the request's scheme, hostname, and effective port. Without Origin, cookie-bearing requests require Sec-Fetch-Site: same-origin. Origin parsing rejects alternate IPv4 spellings and explicit port 0; configured development origins remain a separate development-mode exception. For a browser behind a TLS terminating proxy, set LOOPTROOP_PUBLIC_ORIGIN (or publicOrigin in config.json) to the one HTTPS origin users open. The backend may remain HTTP; the setting does not change its bind address, and LOOPTROOP_ALLOW_REMOTE_API=1 is still required for remote browser access or when the backend itself is reachable off loopback, even if the proxy connects to a loopback bind. The cookie-bearing requests with an Origin must match the configured HTTPS origin exactly, and their cookies use Secure. Without Origin they still require Sec-Fetch-Site: same-origin, and the proxy must preserve the public Host; forwarded host and scheme headers are never trusted. A remote deployment without the setting is bearer-token only, and the browser session cookie is rejected even when a bearer header is also present. CLI sign-in links use the configured public origin while daemon API calls continue to use the internal address.

Startup rejects a configured public origin unless remote API mode is enabled. Bearer tokens do not enable browser CORS: a browser request from an unconfigured origin remains forbidden, while token-only scripts without an Origin can connect.

Server-sent events reserve a connection slot before asynchronous setup begins. The limits are six connections per ticket and 100 across the daemon. Failed opens, aborted streams, replay errors, and ticket cleanup release the same reservation safely; terminal ticket cleanup aborts a pending handshake or replay write before releasing its slot. Manual QA action IDs use letters, numbers, ., _, : and -, start with a letter or number, and are limited to 160 characters.

Project commands, Git and hook commands, managed or development OpenCode launches, and doctor probes remove LOOPTROOP_API_TOKEN and LOOPTROOP_DEV_EVENT_TOKEN from the child environment after all intended overrides are merged. Provider and Git credentials stay available where their caller needs them, and the trusted CLI handoff keeps its configured daemon environment. This filtering controls credential propagation; it is not a process sandbox. LOOPTROOP_API_TOKEN authorizes the wider bind; it is not the live API or browser-session token minted by the daemon and recorded in owner-only daemon state.

Static checks keep process launches and raw filesystem operations at their approved boundaries. They reject the ordinary static spellings of built-in loads too: namespace destructuring, direct or zero-expression-template require/import, computed string-literal child_process methods, process.getBuiltinModule, and re-exports, including computed filesystem methods, nested fs.promises, shell options, and directory APIs. Runtime callers still rely on contained, no-follow, managed-root, and ticket-root helpers. The checks use exact filenames and operation allowlists; they do not provide whole-program alias or dataflow analysis.

#Human approval gates

LoopTroop keeps you in control of critical state transitions. You actively review and sign off on planning specs, execution blueprints, and final pull request deliverables. (Note: Human approval gates will become optional in future releases).

For tickets with Manual QA enabled, LoopTroop prepares a checklist while you manually control the app and accept/reject/skip/create new tickets from the items.

Read more: Ticket Flow

#Run it in a VM

Beyond the install itself — covered per channel above — LoopTroop needs a local repository with a GitHub origin, and strongly wants a VM or sandboxed development environment.

#Why a VM?

LoopTroop is designed for serious agentic coding work that runs unattended. To make this possible, the orchestrator runs OpenCode in dangerously-skip-permissions (YOLO) mode, granting the agent full local execution rights without prompting for confirmation.

While this makes long-running autonomous tasks possible, it introduces real risks. AI agents are not perfect. If a generation goes wrong, the agent can execute commands that delete critical system folders, corrupt active configurations, or break your workspace. Git worktrees isolate your code changes, but they do not sandbox the command execution process itself. The agent runs with your local user privileges.

Recommended setup: run LoopTroop inside a disposable VM, cloud dev machine, or sandboxed development environment.

  • Git worktrees protect your attached repository checkout
  • Logs and artifacts help you inspect what happened
  • A VM protects the rest of your computer

#Why not just use a coding agent directly?

Direct coding-agent loops are highly useful, but they degrade rapidly when task complexity or repository scale increases.

Core Challenge Direct Agent Behavior LoopTroop's Structural Fix
Flawed Planning A single model attempts to draft a multi-step plan in one pass, frequently missing structural edge cases. LLM Council Consensus: Competing models draft, vote on, and synthesize a single, rigorous implementation plan.
Monolithic Overload Direct agents try to solve a complex feature in a single massive prompt, leaving incomplete files or "TODO" placeholders. Atomic Bead Decompositions: Automatically breaks down the feature into independent, test-backed "beads" to focus on smallest changes at a time.
Single-Provider Bias Relying on one model makes your pipeline highly vulnerable to that specific model's logical blind spots and systemic failures. Cross-Model Councils: Harnesses diverse providers and architectures (e.g., Anthropic, OpenAI, NVIDIA NIM) to critique and align code drafts.
Context Rot Long-running chats suffer from token bloat and context degradation, leading to broken imports or forgotten criteria. Modern Context Engineering: The environment strictly isolates context, feeding the agent only the absolute minimum context it needs at each step.
Degenerate Retries When a command fails, the agent tries to fix it within the same polluted chat session, compounding previous errors. Ralph-Style Retries: Discards the broken chat session entirely and retries the exact bead with a fresh context window (plus notes from previous failures).
Risky Edits Code modifications are made directly in your active checkout, potentially leaving your main branch in an unstable state. Isolated Git Worktrees: Executes all changes in dedicated, isolated worktrees away from your primary working branch.
Opaque Execution Internal states, planning notes, and test outputs are lost inside unstructured chat history. Structured Durability: Maintains state locally inside SQLite, JSONL logs, and easily inspectable .ticket/** YAML artifacts.

#What LoopTroop is not

LoopTroop is not a magic autopilot. It does not remove the need to review code, inspect diffs, protect secrets, or run work in a safe environment. It is best understood as an orchestration layer around coding agents: planning, state, approvals, execution boundaries, retries, and delivery.

  • Cost-Sensitive Budgets: Orchestrating multi-model councils and long retry loops uses a high volume of API tokens, though costs can be mitigated by leveraging subscription plans via providers in OpenCode.
  • Urgent or Quick Fixes: If you need a trivial change completed in seconds, LoopTroop's overhead will feel slow.
  • Simple Tasks: For quick edits or trivial apps, standard IDE chat tools or tools like Replit, Bolt, or Lovable are better fits.

#Documentation

The README gives a first-glance overview. The full docs are maintained in the public LoopTroop-Website repository and published at:

https://www.looptroop.ovh/docs/

Useful pages:

Page What it explains
Installation Every channel, what each installs, upgrading, uninstalling, and verifying a download
CLI Reference Every command and option, the --json output, and what running as a service means
Getting Started Setup, startup, ports, and first project attach
Configuration All profile settings with defaults, ranges, and trade-offs
Ticket Lifecycle Screenshots Visual walkthrough of every workflow status with screenshots and action summaries
LLM Council Multi-model draft, vote, refine, and coverage planning
Context Engineering Why prompts are built from minimal per-status context and what each status receives
Beads & Execution Bead execution, retries, resets, and context wipe notes

When the app is running, the same docs are also available from the dashboard.

#Project status

LoopTroop is early alpha software, but it is usable for real work. The full ticket lifecycle is implemented, but some bugs are still likely. The core primitives (planning, execution, retries) are functional.

Configured limitations: In LoopTroop alpha, LLM Councils support 2–10 distinct models, including the main implementer. Each project may have only one active ticket in the execution band at a time; additional tickets must wait until it finishes or is canceled.

Roadmap: Roadmap

#Contributing

Contributions, ideas, bug reports, and workflow feedback are welcome.

See CONTRIBUTING.md for setup, issue, pull request, documentation, and changelog guidance. Please also follow the Code of Conduct.

Neue Version verfügbar.