经 AI Skill Hub 精选评估,WrongStack 获评「推荐使用」。这款Agent工作流在功能完整性、社区活跃度和易用性方面表现出色,AI 评分 7.5 分,适合有一定技术背景的用户使用。
WrongStack 是一套完整的 AI Agent 自动化工作流方案。通过可视化的节点编排,将复杂的多步骤任务拆解为清晰的自动化流程,实现全程无人值守的智能处理。支持与数百种外部服务和 API 无缝集成,适合构建数据处理管线、业务自动化和 AI 辅助决策系统。
WrongStack 是一套完整的 AI Agent 自动化工作流方案。通过可视化的节点编排,将复杂的多步骤任务拆解为清晰的自动化流程,实现全程无人值守的智能处理。支持与数百种外部服务和 API 无缝集成,适合构建数据处理管线、业务自动化和 AI 辅助决策系统。
# 方式一:npm 全局安装 npm install -g wrongstack # 方式二:npx 直接运行(无需安装) npx wrongstack --help # 方式三:项目依赖安装 npm install wrongstack # 方式四:从源码运行 git clone https://github.com/WrongStack/WrongStack cd WrongStack npm install npm start
# 命令行使用
wrongstack --help
# 基本用法
wrongstack [options] <input>
# Node.js 代码中使用
const wrongstack = require('wrongstack');
const result = await wrongstack.run(options);
console.log(result);
# wrongstack 配置说明 # 查看配置选项 wrongstack --config-example > config.yml # 常见配置项 # output_dir: ./output # log_level: info # workers: 4 # 环境变量(覆盖配置文件) export WRONGSTACK_CONFIG="/path/to/config.yml"
Built on the wrong stack. Shipped anyway.
A CLI AI coding agent that runs in your terminal. It reads your code, edits files, runs commands, and reasons through bugs — while you stay in control of every permission. It drives autonomous goal loops, parallel subagent fan-out, multi-agent Director orchestration, and collaborative debugging; guides Spec-Driven Development cycles; and ships with 36 built-in tools, 16 bundled skills, 7 first-party plugins (prompt library, GitHub cloud sync, git, security, skills, plan, observability), 10 more in the official @wrongstack/plugins collection, and ~110 providers from models.dev — all with AES-256-GCM encrypted secrets and per-tool permission policies.
Provider catalog comes from models.dev — no hardcoded provider lists, no hardcoded pricing, no hardcoded model names. API keys are encrypted at rest with a per-machine key. Every developer-level config lives under ~/.wrongstack/; the only thing you'd ever commit to a repo is .wrongstack/AGENTS.md.
Flips off MCP, plugins, memory tools, models.dev fetch, and skill discovery. What's left: kernel (Container + Pipeline + EventBus + RunController, 505 lines) + agent (525 lines) + 36 tools + permission policy + curated system prompt. The minimal-viable WrongStack runs offline with no network calls at startup. Provider family must be declared explicitly in config when using this mode.
---
- Collaborative debugging goes live in the TUI. The fleet monitor (Ctrl+F) now renders a dedicated ⚡ COLLAB SESSION banner during a Director.spawnCollab() run: live per-stage counters (🐛 bugs · 📐 plans · ⚖️ evaluations), a color-coded overall verdict chip (approve / needs_revision / reject), and an inline timeline of bug.found → refactor.plan → critic.evaluation → session done events with elapsed-time stamps. The TUI listens directly to the collab FleetBus events, detects each agent's role from its subagent id, and caps the timeline buffer so long runs stay bounded.
- AGENTS.md documents the collab pipeline + fleet commands. New reference sections cover the three-agent bug-hunter → refactor-planner → critic pipeline, the fleet_emit event contract, the relevant code references, and the full Ctrl+F / Ctrl+G / /fleet * command table.
- Security audit — findings F-01 → F-07 remediated. A full security-check pass closed: an arbitrary file write in the diff tool (a/b refs were pushed into git diff argv unguarded, so { a: "--output=<path>" } clobbered files with no confirmation — now validated as commit-ish), tool-registry wrap/unregister now enforce plugin trust tiers (external plugins can't silently downgrade a builtin), the subagent auto-approve guard now fails closed (denies edit/replace/all mcp__*, not just bash/write), symlink-resolving containment checks on read/edit/write, SSRF-guarded redirects in the search tool, session-log scrubbing of user/model turn text, and IPv6 IMDS parity in MCP transport validation. 26 new regression tests; pnpm audit reports 0 advisories across 591 deps. See security-report/ and CHANGELOG.md.
- Collaborative debugging — three agents on one problem, in parallel. Director.spawnCollab() runs BugHunter, RefactorPlanner, and Critic simultaneously on a shared immutable file snapshot. Findings flow through the FleetBus (bug.found → refactor.plan → critic.evaluation); the Director routes results between agents via a shared scratchpad and returns a structured CollabDebugReport. Subagents emit structured signals through the new fleet_emit tool, and each spawned worker now gets a memorable scientist nickname (Turing, Shannon, Gauss, …) instead of AGENT#N.
- Tougher streaming. Truncated tool-call argument streams (JSON that ends mid-object) are now salvaged by completePartialObject instead of dropping the call.
testing (vitest patterns, mocking, coverage, unit/integration/e2e), observability (structured logging, traces, metrics, redaction), api-design (REST patterns, error codes, pagination, auth), and docker-deploy (multi-stage builds, non-root user, image scanning).react-modern hook table expanded and a duplicate section removed, typescript-strict gained a Workflow section (tsconfig → per-file → CI gate), refactor-planner moved its dependency-graph example into Patterns, and audit-log documents the JSONL session-event structure.docs/skills.md now reflects 16 bundled skills, with AGENTS.md and the skill-gen docs synced to the standardized layout./autophase, /goal, and /sdd no longer crash when paths are unconfigured. All three slash commands now guard opts.paths before use and return a clear error message rather than throwing when the paths layer hasn't been wired into the command context./settings overlay now calls getSettings (wired to loadAutonomySetting) on mount so the mode and delay fields show the actual saved values instead of always starting from defaults.saveSettings return type is now async-compatible. saveSettings in RunTuiOptions returns string | null | Promise<string | null> so the async persistAutonomySetting implementation in the CLI executor no longer causes a type mismatch./settings works in the TUI — now with a real overlay. The old menu blocked on readline, which can't run under Ink (Ink owns stdin) — so in the TUI it hung invisibly and every keypress redrew the status bar into the chat history. Two fixes: (1) the builtin /settings is now argument-driven and non-blocking (/settings, /settings delay <seconds>, /settings mode <off|suggest|auto>, /settings defaults) — works in REPL + headless; (2) the TUI registers a keyboard-driven overlay (↑/↓ field · ←/→ change · Enter save · Esc cancel) for autonomy mode and auto-proceed delay, matching the /model and /autonomy pickers.providers.saved WebSocket message returns every saved provider (id, family, baseUrl) with its stored keys as { label, maskedKey, isActive, createdAt }. Only masked key values cross the wire — raw secrets stay server-side.scripts/guard-against-corruption.mjs runs on every commit and blocks two patterns of damage: the known worktreeMonitorToggle corruption fragment in any staged file, and suspicious mass-changes (>20 files by default, tunable via GUARD_MAX_FILES, override with --force). Auto-wired through postinstall so a fresh pnpm install activates the guard with zero setup./settings interactive menu. New slash command opens a terminal picker for the two most-asked-for runtime knobs: auto-proceed delay (seconds the agent waits in auto autonomy before continuing) and default autonomy mode (off / suggest / auto). Persisted to ~/.wrongstack/config.json.auto-permission tools now require user confirmation (a remote WS client can no longer trigger network-side-effect tools without a prompt). bash and exec redact secret-bearing CLI flags (--token=…, TOKEN=…, --github-token=…, …) before registering the process, so /ps and crash dumps never leak. config.json rollback on POSIX refuses to write when the calling euid does not own the file.build, typecheck, and test:coverage now prepend cross-env NODE_OPTIONS=--max-old-space-size=4096 so the monorepo's typecheck and coverage passes stop OOM'ing on Windows./autophase start [title] breaks a project into ordered phases (Discovery → Design → Implementation → Testing → Deployment) and runs them autonomously, with a live phase/task view in the web UI. Run /autophase for the full subcommand list./help lists every command in full.For earlier release notes, see CHANGELOG.md.
```bash npm install -g wrongstack
wrongstack init
Three ways to configure:
wrongstack init — interactive wizard, saves to ~/.wrongstack/config.jsonwrongstack with no config; saves after selectionwrongstack --provider <id> --model <id> — skips all interactivityAdd a key later: wrongstack auth groq (prompts, encrypts, stores).
```bash
See examples/ for 6 categories of working examples:
| # | Example | What it demonstrates |
|---|---|---|
| 01 | [Basic usage](examples/01-basic/) | Single-shot, REPL, session resume, YOLO |
| 02 | [Tool usage](examples/02-tools/) | File editing, code search, git, tests |
| 03 | [Multi-provider](examples/03-providers/) | Switching providers, custom endpoints |
| 04 | [MCP integration](examples/04-mcp/) | Connecting MCP servers, using MCP tools |
| 05 | [Multi-agent](examples/05-multi-agent/) | Director fleet, delegation, subagents |
| 06 | [Real-world workflows](examples/06-real-world/) | Refactoring, testing, debugging, audits |
wrongstack # provider list → model list → save prompt → REPL wrongstack --tui # same, then enters TUI
| Variable | Description |
|---|---|
<PROVIDER>_API_KEY | API key for the provider (e.g. ANTHROPIC_API_KEY, OPENAI_API_KEY) |
WRONGSTACK_FETCH_ALLOW_PRIVATE | Set to 1 to allow localhost / private IPs in the fetch tool |
WRONGSTACK_BASH_ENV_PASSTHROUGH | Set to 1 to disable the bash-tool env allowlist (legacy unsafe mode — see SECURITY.md) |
{
"version": 1,
"provider": "anthropic",
"model": "claude-opus-4-7",
"providers": {
"anthropic": { "apiKey": "enc:v1:<iv>:<tag>:<ciphertext>" }
},
"features": {
"mcp": true,
"plugins": true,
"memory": true,
"modelsRegistry": true,
"skills": true
},
"plugins": []
}
apiKey-like fields are auto-encrypted on first contact. Plaintext keys in older config files get migrated transparently on boot.
wrongstack --webui ```
--provider <id> Override provider (e.g. anthropic, openai, groq)
--model <id> Override model
--cwd <path> Project root (default: process.cwd())
--resume <id> Resume a saved session
--tui Use the Ink TUI instead of readline REPL
--no-tui Force-disable the TUI (overrides --tui)
--no-banner Suppress the startup banner
--no-features Minimal kernel — no MCP, plugins, memory, models.dev, skills
--yolo Auto-allow all tool calls (don't ask for confirmation)
--director Enable Director-based fleet orchestration (LLM-driven subagent planning)
--goal "<task>" Boot directly into goal mode — GOAL preamble injected, TUI auto-enabled
--ask "<text>" Submit one turn verbatim on TUI boot (no preamble)
--alt-screen TUI only: render into a separate screen buffer (no native scrollback)
--verbose / -v Log level → debug
--trace Log level → trace
--log-level <lvl> Explicit log level
--help / --version Standard
Ten ready-to-use plugins ship in one package, each available via a subpath export (@wrongstack/plugins/<name>):
| Plugin | Tools | Notes |
|---|---|---|
auto-doc | auto_doc, auto_doc_preview | JSDoc / TSDoc comment generation |
git-autocommit | git_autocommit, git_stage, git_status_summary | Conventional-commit messages |
shell-check | shellcheck_run, shellcheck_scan | ShellCheck wrapper |
cost-tracker | cost_summary, cost_reset, cost_export | Token usage + cost per model via provider.response events |
file-watcher | watch_start, watch_stop, watch_list | Emits file-watcher:changed events |
web-search | web_search, web_fetch | Cached DuckDuckGo + URL→markdown |
json-path | jsonpath_query, jsonpath_mutate | JSONPath-style queries and mutations |
cron | cron_schedule, cron_list, cron_cancel | Recurring actions via beforeIteration / afterIteration hooks |
template-engine | render_template, template_variables | {{var}} / {{#if}} / {{#each}} expansion + system-prompt contributor |
semver-bump | semver_bump, changelog_update | Conventional-commit-driven version bumps |
All plugins type-check under strict + noUncheckedIndexedAccess, use the real plugin API (api.onEvent not pipeline mutation), register AgentExtension for iteration hooks, and ship Record<string, unknown> typings on every tool execute.
Seven plugins ship enabled by default and load before any user plugin — they wire core infrastructure and claim bare slash-command names (only official first-party plugins may do so; external plugins stay namespaced). Opt a specific one out with { "name": "wstack-git", "enabled": false } in config.plugins, or disable all with features.plugins: false.
| Built-in plugin | Slash commands | What it adds |
|---|---|---|
wstack-prompts | /prompts list\|view\|add\|delete\|edit\|extend | Personal prompt library with LLM-powered enhancement |
wstack-sync | /sync status\|enable\|disable\|push\|pull\|categories | GitHub cloud sync for settings, skills, prompts, memory, and history — token encrypted via the secret vault, no git CLI needed |
wstack-git | /commit, /gitcheck, /push | LLM-written conventional commits, pre-commit sanity check, push |
wstack-security | /security scan\|audit\|report | Security scanning surface |
wstack-skills | /skill, /skill-gen, /skill-install, /skill-update, /skill-uninstall | Skill discovery, generation, and lifecycle |
wstack-plan | /plan show\|add\|start\|done\|remove\|clear | Per-session strategic roadmap (chip in the TUI status bar) |
wstack-observability | /metrics, /health | Prometheus metrics + health snapshot |
Cloud sync (/sync) pushes/pulls user-selected ~/.wrongstack categories — settings, skills, prompts, memory, history — to a private GitHub repo over the REST API. State lives in ~/.wrongstack/sync.json (token encrypted) + sync-state.json; pick categories with /sync categories.
Manage from CLI or REPL:
wstack plugin list
wstack plugin install telegram
wstack plugin official
wstack plugin disable telegram
wstack plugin enable telegram
wstack plugin remove telegram telegram and lsp are bundled aliases for @wrongstack/telegram and @wrongstack/plug-lsp.
| Package | Purpose |
|---|---|
@wrongstack/core | Kernel, agent, types, registries, plugin contract |
@wrongstack/runtime | Default runtime implementations, host composition helpers, extension pack contracts |
@wrongstack/providers | Anthropic/OpenAI/OpenAI-compatible/Google wire adapters + SSE |
@wrongstack/tools | 36 built-in tools (incl. SQLite codebase index) |
@wrongstack/mcp | MCP server registry + reconnection logic |
@wrongstack/cli | REPL, subcommands, slash commands, terminal renderer |
@wrongstack/tui | Ink-based TUI (lazy-loaded behind --tui) |
@wrongstack/plug-lsp | LSP plugin (wrongstack-lsp-setup binary) |
@wrongstack/telegram | Telegram plugin: send/read/notifications, /telegram:* slash commands |
@wrongstack/webui | Standalone web UI — webui binary, also via wrongstack --webui |
@wrongstack/plugins | Official plugin collection — 10 plugins via subpath exports |
WrongStack 是一款运行在终端(Terminal)中的 CLI AI 编程 Agent。它不仅能读取代码、编辑文件、执行命令并推理 Bug,还能在保持用户对权限完全控制的前提下,驱动自主目标循环(Autonomous Goal Loops)、并行子 Agent 分发(Parallel Subagent Fan-out)以及多 Agent Director 编排。它支持 Spec-Driven Development 周期,通过强大的协作调试能力,帮助开发者高效交付代码。
WrongStack 提供丰富的 AI 能力,支持通过 Director 进行多 Agent 协作。你可以通过 `--no-features` 模式启动一个极简内核,仅保留核心的 Container、Pipeline、EventBus 和 RunController,实现无网络调用的离线运行。此外,最新版本 0.9.20 引入了 TUI 协作调试功能,通过实时监控看板展示 Bug 发现、重构计划及 Critic 评估的完整生命周期,让调试过程透明可见。
运行 WrongStack 需要满足以下环境要求:Node.js 版本需 ≥ 22.0.0;包管理工具推荐使用 pnpm (≥ 9.0.0),同时也支持使用 npm 进行安装。
你可以通过 npm 全局安装 WrongStack:执行 `npm install -g wrongstack`。首次运行时,系统会启动交互式设置向导 `wrongstack init` 来保存配置。此外,你也可以通过 CLI 参数直接指定 Provider 和 Model 来跳过交互,或使用 `wrongstack auth <provider>` 命令来加密存储 API Key。
WrongStack 支持多种使用模式。你可以通过 REPL 模式进行单次交互或会话恢复(Session Resume),也可以使用 YOLO 模式快速执行。项目提供了丰富的 `examples/` 目录,涵盖了基础用法、工具调用(如文件编辑、Git 操作、测试执行)以及多 Provider 切换等 6 个类别的实战案例,方便开发者快速上手。
配置可以通过交互式向导、自动选择器或 CLI Flags(如 `--provider` 和 `--model`)完成。对于高级用户,可以通过环境变量进行配置,例如设置 `ANTHROPIC_API_KEY` 或 `OPENAI_API_KEY` 来授权。此外,通过 `WRONGSTACK_FETCH_ALLOW_PRIVATE=1` 可以允许 fetch 工具访问本地或私有 IP,确保开发环境的灵活性。
除了直接使用 CLI,你还可以通过 `wrongstack --webui` 命令“搭便车”启动 Web UI 界面。在 CLI 参数方面,支持使用 `--cwd` 指定项目根目录,使用 `--resume <id>` 恢复已保存的会话,以及使用 `--tui` 开启 Ink TUI 交互界面,或通过 `--no-tui` 强制禁用 TUI 以适配特定环境。
WrongStack 拥有强大的插件生态系统 `@wrongstack/plugins`,内置了如 `auto-doc`(自动生成 JSDoc/TSDoc)和 `git-autocommit` 等插件。其核心架构由 `@wrongstack/core`(内核与 Agent 逻辑)、`@wrongstack/runtime`(运行时实现)以及 `@wrongstack/providers`(支持 Anthropic、OpenAI、Google 等多种模型供应商)共同组成,构建了完整的模块化工作流。
WrongStack是一个有趣的AI编码代理项目,值得关注
AI Skill Hub 为第三方内容聚合平台,本页面信息基于公开数据整理,不对工具功能和质量作任何法律背书。
建议在沙箱或测试环境中充分验证后,再部署至生产环境,并做好必要的安全评估。
✅ MIT 协议 — 最宽松的开源协议之一,可自由商用、修改、分发,仅需保留版权声明。
AI Skill Hub 点评:WrongStack 的核心功能完整,质量良好。对于自动化工程师和运维人员来说,这是一个值得纳入个人工具库的选择。建议先在非生产环境试用,再逐步推广。
| 原始名称 | WrongStack |
| 原始描述 | 开源AI工作流:A CLI AI coding agent that runs in your terminal.。⭐46 · TypeScript |
| Topics | aitypescriptcode-generation |
| GitHub | https://github.com/WrongStack/WrongStack |
| License | MIT |
| 语言 | TypeScript |
收录时间:2026-05-31 · 更新时间:2026-06-01 · License:MIT · AI Skill Hub 不对第三方内容的准确性作法律背书。
选择 Agent 类型,复制安装指令后粘贴到对应客户端