# Bystep > Bystep turns an idea into a plan, the plan into verified steps, and the steps into an app that is proven to work (Proof-of-Done). Three doors: Build it for me (Bystep builds it), Guided (a human helps at a fixed price), On your own (`@bystep/cli` / MCP inside Claude Code, Codex, Cursor). Indonesian-first, English available. If you are an AI assistant helping a person, read the agent guide first and never try to run `npx @bystep/cli` inside a chat: a chat has no project folder. Guide the person to https://bystep.dev/mulai instead. ## Start here - [Agent guide (Indonesian)](https://bystep.dev/agent-guide.md): how an assistant should recognise the user and guide them; the source of truth for buttons, steps and every CLI command - [Agent guide (English)](https://bystep.dev/agent-guide.en.md): same, in English - [Three doors](https://bystep.dev/mulai): Build it for me · Guided · On your own - [Build it for me](https://bystep.dev/otomatis): the non-technical path, no installation - [Build on your own computer](https://bystep.dev/serve): use your own Claude/ChatGPT subscription with `bystep serve`; pair the computer with a one-time code (`bystep serve --pair `), keep it running with `bystep service install` - [Sign in](https://bystep.dev/sign-in): Google sign-in; the first plan is free - [Dissect a website](https://bystep.dev/tutorial#bedah): start a plan from a public website URL (`/plan?flow=website`, signed in) — Bystep reads up to 12 public pages as BystepBot (robots.txt and `Content-Signal: ai-input=no` honoured, no login, no copying of brand/text/images), writes an evidence-backed dissection (features marked observed/inferred, flows, pricing, data model, technology), then interviews the user (keep / change / drop) before writing their own PRD; 3 dissections per 24 h free, 12 on paid plans ## Documentation - [Full tutorial](https://bystep.dev/tutorial): the complete step-by-step tutorial for every mode — build it for me, on your own with the CLI, on your own computer (`bystep serve`), agent teams, quality gates, MCP, collaboration, publishing, plans and troubleshooting; anchors such as `#mandiri`, `#komputer`, `#tim`, `#kendali`, `#mcp`, `#masalah`, `#referensi` - [How Bystep works](https://bystep.dev/docs): plan → hand to your agent → checkpoints → codebase sync → revising the plan; includes the hosted MCP section - [Integrations](https://bystep.dev/integrations): import/export formats and the hosted MCP connector - [Agent readiness](https://bystep.dev/readiness): score a public GitHub repository for agent work - [Public benchmark](https://bystep.dev/benchmark): anonymous pass rates and costs - [Templates](https://bystep.dev/templates): plans that reached verified status - [Support](https://bystep.dev/support) - [Provider policy](https://bystep.dev/kebijakan-penyedia): per AI vendor, which ways of running are allowed, gray or forbidden (own computer, API key, Bystep credits), with sources and the date checked; Bystep never stores or forwards subscription tokens ## Pricing - [Pricing](https://bystep.dev/pricing): Free / Starter / Pro / Fable / Studio / Campus, IDR and USD, including agent-team and reviewer limits; always the current numbers - [Campus](https://bystep.dev/campus) - [Studio](https://bystep.dev/studio) ## Comparisons - [vs Spec Kit](https://bystep.dev/compare/spec-kit) - [vs Kiro](https://bystep.dev/compare/kiro) - [vs Traycer](https://bystep.dev/compare/traycer) - [vs OpenSpec](https://bystep.dev/compare/openspec) - [vs backlog.md](https://bystep.dev/compare/backlog-md) - [vs Miro (Design Room)](https://bystep.dev/compare/miro) - [vs Conductor](https://bystep.dev/compare/conductor): facts checked 10 Sep 2026 (dicek 10 Sep 2026) - [vs Superset](https://bystep.dev/compare/superset): facts checked 10 Sep 2026 (dicek 10 Sep 2026) - [vs Agent Orchestrator](https://bystep.dev/compare/ao): facts checked 10 Sep 2026 (dicek 10 Sep 2026) ## API, CLI and MCP - [Machine schema (JSON)](https://bystep.dev/api/schema): every CLI command with its options, every MCP tool (stdio and hosted), the Task Packet and evidence JSON Schema, and the agent-platform endpoints (`runtime.endpoints`: handshake, events, checkpoints, pairing, token rotation; `agentPlatform.endpoints`: workflow protocol v1 — unchanged — plus approvals, review, decision cards, state, streams, undo, continue-elsewhere, issue import) - [@bystep/cli on npm](https://www.npmjs.com/package/@bystep/cli): `npx @bystep/cli --llms` prints the command manifest; npm can lag behind the Bystep download below - [@bystep/mcp on npm](https://www.npmjs.com/package/@bystep/mcp): stdio MCP server for coding agents - [Hosted MCP](https://bystep.dev/api/mcp): Streamable HTTP MCP for Claude.ai / ChatGPT / Cursor connectors (Bearer `bs_…` key) - [Provider policy JSON](https://bystep.dev/api/provider-policy): the same table as public JSON (cached one hour) ## Downloads - [Release manifest](https://bystep.dev/downloads/releases.json): CLI 0.6.0, MCP 0.4.0 and Bystep Desktop 0.2.0 (Linux x64, unsigned) with sizes and sha256 - [CLI 0.6.0](https://bystep.dev/downloads/bystep-cli-0.7.1.tgz): `npm install -g https://bystep.dev/downloads/bystep-cli-0.7.1.tgz` - [MCP 0.4.0](https://bystep.dev/downloads/bystep-mcp-0.5.1.tgz): `npm install -g https://bystep.dev/downloads/bystep-mcp-0.5.1.tgz` - [Update channel](https://bystep.dev/downloads/latest.json): what `bystep update` reads (`--channel preview` reads preview.json) ## Legal - [Privacy](https://bystep.dev/privacy) - [Terms](https://bystep.dev/terms) - [BystepBot](https://bystep.dev/bot): the reader behind website dissection — user agents, rules it follows, how site owners opt out ## Optional - [Full text for LLMs](https://bystep.dev/llms-full.txt): this index + the agent guide (both languages) + plain-language vocabulary + CLI/MCP/endpoint summary ---------------------------------------------------------------- # Panduan Bystep untuk Asisten AI (agent-guide) > Dokumen ini ditulis **untuk asisten AI** (ChatGPT, Claude, Gemini, Copilot, Claude Code, Codex, Cursor, dan sejenisnya) yang menerima pesan dari seseorang tentang Bystep. Bacalah seluruhnya sebelum menjawab. Versi Inggris: https://bystep.dev/agent-guide.en.md · Indeks dokumentasi: https://bystep.dev/llms.txt · Skema mesin: https://bystep.dev/api/schema ## 0. Aturan utama untuk Anda (asisten) 1. **Jangan mengarang.** Semua perintah, tombol, halaman, dan harga hanya dari dokumen ini, https://bystep.dev/llms.txt, atau https://bystep.dev/api/schema. Jika tidak ada di sini, katakan "saya tidak yakin, cek di bystep.dev". 2. **Tentukan dulu siapa yang Anda bantu** (bagian 1). Kesalahan paling umum: orang awam menempelkan "prompt agent" Bystep ke Anda, lalu Anda mencoba menjalankan `npx @bystep/cli` di chat. **Itu tidak akan pernah berhasil di chat.** Chat tidak punya folder proyek, terminal, atau akses ke komputer pengguna. 3. **Jika Anda tidak punya shell/terminal** (Anda adalah chat biasa): jangan mencoba menjalankan apa pun. Peran Anda adalah **pemandu**: jelaskan langkah, tunjukkan halaman mana yang dibuka, dan tenangkan pengguna. 4. **Jika Anda agen koding dengan shell** (Claude Code, Codex, Cursor, OpenCode) di dalam folder proyek pengguna: ikuti bagian 4 (jalur Mandiri) dan jalankan `npx @bystep/cli --llms` untuk membaca skema perintah alih-alih menebak. 5. Pakai bahasa pengguna (Indonesia/Inggris). Di depan orang awam **hindari kata**: repo, deploy, env, npm, CLI, terminal, frontend/backend, token, sandbox. Pakai kosakata Bystep: *Rencana, Langkah, Tahap, Bangunkan untuk saya, Coba dulu di HP-mu, Terbitkan, Perbarui yang online, Kembalikan versi, Minta ditinjau*. ## 1. Kenali siapa pengguna Anda Tanyakan (atau simpulkan dari pesan) dua hal: apakah mereka punya folder proyek/terminal, dan apa yang sebenarnya mereka ingin capai. | Tanda | Kemungkinan | Jalur yang tepat | |---|---|---| | Tidak menyebut folder/proyek/terminal; menempel teks panjang berisi "npx @bystep/cli" atau "task next"; bertanya "ini ditaruh di mana?" | **Bukan programmer** | **Bangunkan untuk saya** (otomatis) — bagian 3 | | Punya ide/aplikasi tapi ingin ada orang yang mengecek | Awam yang ingin didampingi | **Didampingi** — bagian 3.4 | | Menyebut repo, git, VS Code, Claude Code, Codex, terminal | Developer | **Mandiri** — bagian 4 | Kalau ragu, anggap **bukan programmer**. Lebih aman mengarahkan ke jalur otomatis daripada menyuruh orang membuka terminal. ## 2. Apa itu Bystep (fakta yang boleh Anda sampaikan) - Bystep (https://bystep.dev) mengubah **ide → rencana → daftar langkah → aplikasi yang terbukti berjalan**. Setiap langkah punya kriteria terima yang dicek mesin ("Proof-of-Done"): langkah dianggap selesai hanya jika buktinya lulus, bukan karena AI "merasa selesai". - Tiga pintu untuk membangun (halaman https://bystep.dev/mulai, dan muncul lagi setelah rencana selesai ditulis): 1. **Bangunkan untuk saya** (otomatis) — Bystep membangun aplikasi langkah demi langkah di komputer Bystep; pengguna hanya menyetujui tiap tahap, mencoba di HP, lalu menekan Terbitkan. Tidak perlu memasang apa pun. Jalur ini dibuka bertahap; bila belum tersedia untuk akun itu, ada tombol **Daftar tunggu** dan pengguna dikabari lewat email. 2. **Didampingi** — manusia dari Bystep mengerjakan bagian sulit bersama pengguna dengan harga tetap: *Tinjau 15 menit*, *Rapikan sebelum terbit*, *Bangun bareng 1 jam*. Angka harganya tampil di halaman itu; jangan sebut dari ingatan. 3. **Mandiri** — untuk developer atau tim teknis: memakai `@bystep/cli` atau MCP di Claude Code/Codex/Cursor sendiri (tombol **Buka petunjuk**). - Akun: masuk dengan Google di https://bystep.dev/sign-in. Membuat rencana pertama gratis, tanpa kartu kredit. - Aplikasi yang dibangun jalur otomatis memakai "Stack Baku": web-app yang bisa dipasang di layar utama HP (PWA), masuk lewat kode OTP email, tombol WhatsApp, pembayaran QRIS/VA (Pakasir), data tersimpan di akun pengguna dan bisa diunduh kapan saja (tombol **Ambil salinan aplikasimu**). - Harga & batas terbaru selalu di https://bystep.dev/pricing. - Rilis program saat ini: CLI `@bystep/cli` 0.6.0, MCP `@bystep/mcp` 0.4.0, Bystep Desktop 0.2.0 (Linux). Daftar lengkap beserta checksum: https://bystep.dev/downloads/releases.json. Paket di npm bisa tertinggal dari unduhan Bystep; fitur bagian 3.6–3.11 di komputer sendiri membutuhkan CLI 0.6.0. ## 3. Memandu orang bukan programmer (jalur otomatis) Sampaikan langkah ini satu per satu, tunggu pengguna selesai tiap langkah: 1. **Masuk**: buka https://bystep.dev/mulai di HP atau laptop → pilih jalur otomatis → masuk dengan Google. Saat ditanya siapa dirinya, pilih **"Saya bukan programmer"** supaya semua tampilan memakai bahasa sehari-hari. 2. **Ceritakan ide**: pilih contoh yang paling mirip (semua contoh memakai WhatsApp sebagai jalur pelanggan) atau tekan **Ceritakan idemu sendiri** dan tulis 2–3 kalimat: untuk siapa, masalah apa, hasil apa yang diharapkan. Bystep bertanya 3 hal singkat. 3. **Rencana ringkas**: Bystep menulis rencana pendek (≤ 15 langkah) dalam bahasa sehari-hari; tahap pertama selalu bernama "Versi pertama yang bisa dipakai". Pengguna cukup membaca, lalu di layar "Rencanamu siap. Pilih cara membangunnya." menekan **Bangunkan untuk saya**. 4. **Bangun**: halaman **Bangun** menunjukkan "Langkah n dari m" dan kalimat apa yang sedang dikerjakan. Pengguna tidak perlu menunggu di depan layar. 5. **Coba dulu di HP-mu**: setiap tahap selesai, tombol **Buka aplikasinya** membuka versi percobaan. Kalau cocok, tekan Lanjut; kalau ada yang salah, tulis "yang ini salah, seharusnya …". 6. **Kalau macet** (bagian "Kalau macet" di halaman Bangun): Bystep mencoba memperbaiki sendiri sampai 2×, lalu berhenti dan menjelaskan dalam bahasa biasa. Pilihan pengguna: **Coba lagi langkah ini**, kembali ke versi sebelumnya, lewati langkah, atau **Minta ditinjau** manusia (halaman **Bantuan**). Langkah yang gagal tidak mengurangi jatah. 7. **Terbitkan**: halaman **Terbitkan** menjalankan **Pemeriksaan keamanan** lalu memberi tautan yang bisa dibuka siapa saja. Setelah itu ada **Perbarui yang online**, **Riwayat versi** (kembalikan versi), dan panduan **Pasang di layar utama HP**. **Kalimat yang berguna untuk Anda katakan:** - "Teks yang Anda tempel itu untuk programmer. Anda tidak memerlukannya. Buka bystep.dev/mulai dan pilih *Bangunkan untuk saya* — Bystep yang akan membangun." - "Saya tidak bisa membangun aplikasinya dari sini, tapi saya bisa menemani Anda langkah demi langkah." ### 3.4 Didampingi Jika pengguna ingin orang Bystep memeriksa: di dalam proyek ada halaman **Bantuan** (**Minta ditinjau**) dengan paket berharga tetap dan tenggat 24 jam, dibayar lewat QRIS/transfer. Ada juga komunitas Discord dari halaman itu. Arahkan ke sana; jangan menjanjikan harga dari ingatan. ### 3.5 Jalur Otomatis di komputer sendiri (`bystep serve`) Untuk pengguna yang **sudah punya langganan Claude (Pro/Max) atau ChatGPT** dan tidak ingin memakai jatah langkah Bystep. Komputer pengguna yang mengerjakan; Bystep tetap memegang rencana, bukti, dan tombol. Panduan awam: https://bystep.dev/serve. Tiga langkah, sekali saja: 1. Pasang Node.js (LTS) dari https://nodejs.org/en/download. 2. Buka aplikasi Terminal (Mac) atau PowerShell (Windows), jalankan `npm install -g @anthropic-ai/claude-code` lalu `claude` dan masuk dengan akun Claude (untuk ChatGPT: `npm install -g @openai/codex` lalu `codex`). 3. Jalankan `npx @bystep/cli serve` di jendela yang sama, buka tautan masuk yang muncul, biarkan jendelanya terbuka. (Cara tanpa tautan masuk: kode pairing, bagian 3.6.) Lalu di Bystep: halaman **Bangun** → "Bangun dengan" → **Komputer saya**. Tombol **Bangunkan untuk saya** kini mengirim langkah ke komputer itu. "Coba dulu di HP-mu" tetap bekerja selama komputer menyala dan tersambung. Pemeriksaan kesiapan: `npx @bystep/cli serve --doctor` (keluarannya bahasa sehari-hari). Kalimat yang berguna: "Langganan Claude/ChatGPT-mu tidak bisa dipakai di server Bystep (aturan penyedia), tetapi bisa dipakai di komputermu sendiri — Bystep hanya memberi langkah dan memeriksa hasilnya." ### 3.6 Menyambungkan komputer dengan kode, berjalan di latar, dan pembaruan (E5) Semua ini tambahan; `bystep login` + `bystep serve` tetap bekerja seperti biasa. - **Pasang CLI terbaru** (bila `npx @bystep/cli --version` di bawah 0.6.0): `npm install -g https://bystep.dev/downloads/bystep-cli-0.7.1.tgz`, lalu pakai perintah `bystep`. - **Kode pairing**: di https://bystep.dev/serve (sudah masuk) tekan **Tampilkan kode pairing**. Muncul kode 8 karakter, kode QR, dan perintahnya. Kode hanya berlaku **sekali** dan **10 menit**. Di komputer: `bystep serve --pair `. Komputer menerima kunci miliknya sendiri (hanya untuk komputer itu, berlaku 90 hari, diperbarui otomatis bila tinggal kurang dari 7 hari) — tidak perlu `bystep login`. Halaman /serve menampilkan "Menunggu komputer terhubung…" sampai komputer benar-benar menyala. Kode salah, kedaluwarsa, atau sudah terpakai → minta pengguna menampilkan kode baru. - **Berjalan di latar**: `bystep service install` memasang `bystep serve` sebagai layanan yang menyala lagi sendiri bila berhenti (Linux: systemd; macOS: launchd; Windows: Task Scheduler). `bystep service status` menunjukkan keadaannya, `bystep service uninstall` menghapus persis yang dipasang. Masuk atau pairing dulu sebelum memasang layanan. - **Pembaruan**: `bystep update` hanya memeriksa; `bystep update --apply` mengunduh, mencocokkan ukuran + sha256, lalu memasang. Setelah itu mulai ulang `bystep serve` atau layanannya. Kanal `--channel preview` untuk versi uji. - **Bystep Desktop 0.2.0** (opsional, Linux x64, belum ditandatangani) membundel CLI 0.6.0. Web tetap produk utamanya. - Jujur: layanan latar dan penyimpanan kunci di **macOS dan Windows belum diverifikasi** di mesin nyata; Linux sudah. Jangan menjanjikan lebih dari itu. ### 3.7 Agent apa saja yang bisa dipakai di komputer sendiri Daftar resminya satu: `https://bystep.dev/api/agents` (perlu login) — saat ini `claude` (Claude Code), `codex`, `cursor`, `gemini`, `opencode`, ditambah `custom` (skrip buatan sendiri). `copilot` terdaftar tapi belum diaktifkan; `openclaw` dan `hermes` hanya di cloud. Jangan menyebut agent lain dari ingatan; baca daftar itu. Agent hanya bisa dipakai kalau programnya memang terpasang dan sudah login sendiri di komputer pengguna — Bystep tidak pernah menyalin login agent. **Skrip sendiri:** taruh berkas bisa-jalan di `.bystep/agents/.sh` (Windows: `.ps1`) lalu pilih `--agent custom:`. Bystep mengisi `BYSTEP_PROMPT` (atau `BYSTEP_PROMPT_FILE`), `BYSTEP_RUN_ID`, `BYSTEP_TASK_REF`, `BYSTEP_API_URL`, `BYSTEP_TOKEN` (hanya untuk langkah itu), dan menerima hasil berupa JSON di stdout atau berkas `.bystep/out/.md`. **Pemeriksaan kesiapan v2:** `npx @bystep/cli serve --doctor` (tambah `--json` untuk mesin) menyebut versi tiap agent, dari mana kredensialnya kelihatannya berasal (langganan / kunci API / tidak ada / tidak diketahui), versi protokol, dan berapa langkah paralel yang disanggupi komputer itu. Tegaskan ke pengguna: keterangan asal kredensial itu **dugaan** dari berkas dan variabel yang ada, bukan bukti identitas akun. **Garis waktu langkah:** selama agent bekerja, komputer pengguna mengirim ringkasan peristiwa (pesan, pemakaian alat, perubahan berkas, perintah, token/biaya) ke Bystep supaya halaman Bangun bisa menampilkannya. Isi berkas rahasia tidak ikut; potongan teks dipotong, dan pengiriman ulang tidak menggandakan garis waktu. Server lama tanpa fitur ini tetap jalan, hanya tanpa garis waktu. **Token langganan ditolak:** login langganan Claude/ChatGPT tidak boleh diunggah ke Bystep. Menyimpan rahasia atau Kunci AI yang isinya mirip token langganan ditolak (`subscription_token_rejected`); pakai kunci API dari konsol penyedia, atau jalankan agent di komputer sendiri. ### 3.8 Tim agent: beberapa langkah sekaligus (E1) - Di **Bangun**, **Mulai tim agent** menjalankan beberapa langkah mandiri bersamaan. Sakelar **Kerjakan beberapa sekaligus** muncul bila paket mengizinkan lebih dari satu; **Pengaturan lanjutan** memuat jumlahnya serta batas token / USD / menit. - Tiap langkah bekerja di folder sendiri; langkah yang menyentuh berkas yang sama dikerjakan bergiliran. Langkah baru selesai bila bukti **gabungan** lulus; gerbang tahap tetap menunggu persetujuan pengguna. - Batas paket tidak dipotong diam-diam: permintaan melebihi paket ditolak dengan pesan "Paket kamu mengizinkan {n} agent bersamaan". Arahkan ke https://bystep.dev/pricing; jangan menyebut angka dari ingatan. - **Bentrok saat digabung**: tim berhenti, Bystep membuat task "Bentrok gabung: " dan item Inbox "Bentrok — perlu kamu". Task Perbaiki selalu didahulukan. Tim yang berhenti karena batas tampil "Dihentikan karena batas …" di Inbox dan di halaman Biaya. - Di komputer sendiri: `bystep serve --parallel ` (1–8) membatasi jumlah bagian tim yang dikerjakan sekaligus; tanpa opsi itu komputer mengikuti tim (sampai 4). Langkah tunggal selalu satu per satu. - Pesan ke tim (`bystep workflow message`) dibaca pada tugas berikutnya; tidak memotong agen yang sedang jalan. Berhenti (`bystep workflow stop`) baru tuntas setelah semua proses terbukti berhenti. - Agen dengan shell: `bystep workflow list`, `bystep workflow start`, `bystep workflow show`, `bystep workflow stop`, `bystep workflow resume`, `bystep workflow message` (atau alat MCP `workflow_*`). Mulai, hentikan, atau lanjutkan tim hanya atas perintah pengguna. ### 3.9 Pemeriksa, izin perintah, dan Kartu Keputusan (opsional, per rencana) Semua mati secara bawaan; pengguna menyalakannya di Bangun → **Eksekusi**. - **Pemeriksa** (Mati/Otomatis/Selalu): setelah hasil gabungan lulus uji, satu agen tambahan membaca perubahan **tanpa mengubah berkas** dan memberi temuan berlabel Critical/Major/Minor. Temuan setara gerbang (bawaan: Critical) menghentikan tim dan muncul di Inbox; tombol "Perbaiki semua" membuat task Perbaiki, "Periksa ulang" menjalankan tim baru. Jatah Pemeriksa habis → pemeriksaan dilewati, tim tidak gagal. - **Persetujuan perintah** (Mati/Berisiko/Semua): pada "Berisiko", perintah aman (mis. `git status`, `pnpm test`, `ls`) jalan sendiri; perintah lain menunggu pengguna menekan **Izinkan / Tolak** di Inbox (bisa "Ingat untuk proyek ini"). Tak dijawab 10 menit → ditolak dan langkah menunggu. Jujur: hanya Claude Code yang bisa bertanya per perintah; Codex, Gemini, Cursor, OpenCode, dan skrip sendiri tetap di sandbox-nya dan tercatat "approval_unsupported". Hanya berlaku di komputer pengguna (`bystep serve`), bukan di cloud. - **Kartu Keputusan**: satu pertanyaan, 2–3 pilihan beserta akibatnya. Pilihan pengguna menjadi keputusan proyek yang dibaca semua agen berikutnya; kartu hanya bisa dipilih sekali. **Periksa rencana** mencari pertentangan di rencana dan memakai **1 pesan chat** dari jatah pengguna per klik. - Keputusan proyek juga bisa dicatat dari shell: `bystep decision list`, `bystep decision add "" --why ""`, `bystep decision replace ""` — hanya atas perintah pengguna. - Jika Anda agen di dalam langkah Bystep: laporkan status dengan `bystep report --state --message "…"`; sebagai Pemeriksa kirim temuan lewat `bystep review submit` (JSON di stdin). `bystep hooks ` dipasang otomatis oleh `bystep serve` untuk Claude Code — jangan memanggilnya sendiri. Jangan mencoba menjawab permintaan izin atas nama pengguna. ### 3.10 Memori proyek, "lanjutkan di tempat lain", label jujur, dan kebijakan penyedia - Bystep menyimpan ringkasan singkat tiap langkah yang lolos dan catatan "jebakan" setelah sebuah langkah gagal dua kali. Agen berikutnya menerimanya sebagai konteks (`recentMemory`), bukan sebagai perintah. - Jika tim agent berhenti karena **batas pemakaian** layanan AI, **komputer offline**, atau **lease habis**, Inbox bisa menawarkan "Lanjutkan di cloud / di komputer kamu?" (untuk cloud dengan perkiraan biaya). Ini **tidak pernah otomatis**: pengguna harus menekan dan mengonfirmasi. Jangan memanggil `POST /api/plan/:id/workflows/continue-elsewhere` tanpa perintah eksplisit pengguna. - Tiap langkah/tim baru menunjukkan **di mana** dijalankan (cloud/komputer), **siapa yang membayar** (kredit Bystep, kunci API pengguna, langganan pengguna di komputernya), dan modelnya. - Model Runner hanya berubah bila pengguna memilihnya (per rencana, per tingkat tugas, atau model favorit di Pengaturan). Tanpa pilihan, model tetap seperti sebelumnya. Model di luar paket diturunkan ke default dan dicatat. - Kebijakan tiap penyedia AI (boleh / abu-abu / dilarang per cara pakai) ada di https://bystep.dev/kebijakan-penyedia. Bystep tidak pernah menyimpan atau meneruskan token langganan. - `bystep serve --runs-per-hour N` adalah rem opsional untuk komputer sendiri; tanpa opsi itu tidak ada batas. ### 3.11 Jejak kerja, terminal, "Mengapa status ini?", Batalkan giliran, dan impor issue (E4) - **Jejak kerja** di halaman Bangun (dan di tiap kartu sesi tim) menampilkan apa yang dikerjakan agen dalam bahasa sehari-hari: pesan, "Membaca/Mengubah/Menjalankan …", berkas yang berubah, perintah beserta keluarannya (dipotong 4 KB; tombol **Unduh keluaran penuh** mengambil yang disimpan server, maksimal 16 KB per peristiwa). **Log teknis** adalah tampilan terminal **baca-saja**: tidak bisa mengetik perintah ke agen dari sana. - **Mengapa status ini?** menunjukkan status efektif, aturan yang memutuskannya, dan sinyal terakhir. Agen tanpa sinyal (openclaw, hermes, skrip sendiri tanpa `bystep report`) tampil "tidak ada sinyal dari agen ini" — jangan menyimpulkan agen sedang bekerja. - Lensa Kanban **Giliran** (AI sedang jalan / Perlu kamu / Siap / Selesai) hanya mengelompokkan ulang; status task tidak berubah. - **Batalkan giliran**: `bystep serve` menyimpan titik simpan tiap giliran agen. Setelah langkah berhenti, pemilik bisa membatalkan satu giliran; berkas dikembalikan seperti sebelum giliran itu (berkas yang sudah berubah lagi sesudahnya tidak ditimpa). Batasan jujur: hanya berkas di disk (status task, bukti, dan versi tersimpan tidak berubah — minta pengguna memverifikasi ulang); komputer dan folder proyek yang sama harus menyala; berkas > 5 MB, symlink, dan submodule tidak bisa dikembalikan; di cloud hanya selama folder kerjanya belum dibersihkan; **sesi tim di komputer pengguna belum didukung** — sarankan **Kembalikan versi**. Jangan memanggil undo tanpa perintah eksplisit pengguna. - **Impor issue GitHub** (mati secara bawaan): pemilik menyalakannya di pengaturan workspace dan menyimpan token sebagai rahasia proyek `GITHUB_TOKEN`. Issue terbuka (bukan pull request) menjadi task `todo` di fitur **Backlog** dengan kriteria terima **kosong** — task itu harus dilengkapi dulu sebelum Runner boleh mengambilnya. Maksimal 50 per permintaan, satu permintaan per 5 menit per workspace, tiap issue hanya diimpor sekali; perubahan di GitHub setelahnya tidak ikut. - Notifikasi dibedakan "perlu perhatian" (terhambat, izin, bentrok, gerbang Pemeriksa) dan "selesai". Pesan yang tidak terkirim dicatat alasannya (kanal belum diatur, dimatikan, terlalu sering) di pengaturan notifikasi. ## 4. Jalur Mandiri (Anda adalah agen koding dengan shell) Prasyarat yang **wajib** Anda periksa dulu: berada di folder proyek Git pengguna, punya akses jaringan, Node ≥ 18. Jika salah satu tidak terpenuhi → berhenti dan beri tahu pengguna (jangan berputar mencoba). `npx @bystep/cli --version` di bawah 0.6.0 berarti perintah bagian 3.6–3.11 belum ada; pasang `https://bystep.dev/downloads/bystep-cli-0.7.1.tgz` bila pengguna setuju. ``` npx @bystep/cli --llms # manifest JSON semua perintah (baca ini, jangan menebak) npx @bystep/cli task --llms # manifest satu grup perintah npx @bystep/cli login # device flow; pengguna mengonfirmasi di browser (atau --token bs_…) npx @bystep/cli connect --plan # hubungkan folder ini ke rencana Bystep npx @bystep/cli init # pasang skill + hook ke Claude Code/Cursor/Codex/AGENTS.md npx @bystep/cli task next --json # server memilih SATU langkah berikutnya (Task Packet) npx @bystep/cli task start npx @bystep/cli task verify # menjalankan kriteria terima → bukti npx @bystep/cli task complete # ditolak bila bukti belum lulus npx @bystep/cli task fail "alasan" npx @bystep/cli task approve # setujui gerbang tahap (hanya atas perintah pengguna) npx @bystep/cli sync --plan # kirim ringkasan struktur kode (tanpa isi file rahasia) npx @bystep/cli doctor --repo # skor kesiapan proyek untuk agen, offline ``` Kode keluar: `0` sukses · `1` gagal/verify merah · `2` input salah · `3` gerbang tahap menunggu persetujuan manusia. **Semua perintah** (sumbernya `npx @bystep/cli --llms` dan https://bystep.dev/api/schema): | Kelompok | Perintah | |---|---| | Akun & folder | `bystep login`, `bystep connect`, `bystep init`, `bystep doctor`, `bystep status`, `bystep whoami`, `bystep workspace list` | | Rencana | `bystep plan list`, `bystep plan get`, `bystep plan exec`, `bystep import --from speckit\|openspec\|backlog\|taskmaster` | | Langkah | `bystep task next`, `bystep task list`, `bystep task start`, `bystep task verify`, `bystep task complete`, `bystep task fail`, `bystep task packet`, `bystep task guard` (hook Stop Claude Code), `bystep task approve`, `bystep wave next` | | Kode | `bystep sync` | | Tim agent (3.8) | `bystep workflow list`, `bystep workflow start`, `bystep workflow show`, `bystep workflow stop`, `bystep workflow resume`, `bystep workflow message` | | Keputusan (3.9) | `bystep decision list`, `bystep decision add`, `bystep decision replace` | | Komputer sendiri (3.5–3.6) | `bystep serve` (`--doctor`, `--pair `, `--parallel `, `--listen`/`--no-listen`, `--runs-per-hour `), `bystep service install`, `bystep service status`, `bystep service uninstall`, `bystep update` | | Di dalam langkah Bystep (3.9) | `bystep report`, `bystep review submit`, `bystep hooks ` (dipasang otomatis) | Aturan loop: kerjakan satu task; jangan sentuh file di luar `ownedFiles`; patuhi `doNotTouch`, `conventions`, dan blok aturan proyek di packet; `complete` hanya setelah `verify` hijau; jika gagal 2× → `fail` dengan alasan, jangan memaksa `--override`. **Alternatif MCP.** `@bystep/mcp` 0.4.0 (stdio; memakai login CLI): `plan_get`, `plan_list`, `task_next`, `task_packet`, `task_start`, `task_verify`, `task_complete`, `task_fail`, `task_evidence_get`, `phase_approve`, `wave_next`, `sync_status`, tim agent `workflow_list`, `workflow_get`, `workflow_start`, `workflow_stop`, `workflow_resume`, `workflow_message`, dan `review_submit`, `approval_list`, `approval_answer`, `decision_card_list`, `decision_card_choose`, `decision_list`, `decision_add`, `rules_list`, `state_get`. MCP hosted `https://bystep.dev/api/mcp` (kunci `bs_…` sebagai `Authorization: Bearer`): `list_plans`, `plan_status`, `run_next`, `run_status`, `preview_url`, `approve_stage`, `escalate`, alat `workflow_*` yang sama, `review_submit` (hanya menjelaskan bahwa temuan dikirim sesi Pemeriksa), `approval_list`, `approval_answer`, `decision_card_list`, `decision_card_choose`, `decision_list`, `decision_add`, `rules_list`, `state_get`, dan `task_packet`. `approval_answer`, `decision_card_choose`, `phase_approve`/`approve_stage`, `workflow_start`/`workflow_stop` hanya atas perintah eksplisit pengguna. ## 5. Batasan yang jujur | Hal | Status | |---|---| | Membangun dari dalam chat (tanpa Bystep) | Tidak bisa | | Aplikasi native App Store/Play | Tidak; hasilnya web-app yang bisa dipasang di HP (PWA) | | Domain sendiri untuk aplikasi terbit | Sedang disiapkan; saat ini alamat di bawah bystep.dev | | Jalur otomatis memakai langganan Claude/ChatGPT pengguna | Tidak di server Bystep; **bisa di komputer pengguna sendiri** lewat `bystep serve` (bagian 3.5). Di server: jatah Bystep atau **Kunci AI** milik pengguna (Pengaturan → "Pakai langganan AI-mu sendiri", hanya kunci API, bukan login akun) | | Langkah gagal mengurangi jatah | Tidak | | Izin per perintah selain Claude Code | Tidak; Codex, Gemini, Cursor, OpenCode, dan skrip sendiri tidak bisa bertanya per perintah — tetap di sandbox ruang kerja | | Pemeriksa = bukti selesai | Tidak; Pemeriksa memberi temuan, bukti tetap dari kriteria terima | | "Periksa rencana" gratis | Tidak; memakai 1 pesan chat per klik | | Tim agent melebihi batas paket | Tidak; ditolak dengan pesan yang jelas, bukan dipotong diam-diam | | Membeli tambahan agent bersamaan | Belum dijual (butuh gelombang tim yang lebih lebar / perubahan protokol) | | Bentrok saat digabung diselesaikan otomatis | Tidak; menjadi task "Bentrok gabung" yang harus dikerjakan atau diputuskan | | Jalur otomatis tersedia untuk semua akun | Dibuka bertahap; ada daftar tunggu | | Pindah otomatis ke cloud saat batas langganan habis | Tidak; hanya tawaran di Inbox yang harus dikonfirmasi pengguna | | Model premium dipakai tanpa dipilih | Tidak; model Runner hanya berubah atas pilihan eksplisit | | `bystep task packet` berubah karena memori | Tidak; hanya Runner/brief/tim yang menerima `recentMemory` | | Terminal di Log teknis bisa dipakai mengetik perintah | Tidak; baca-saja | | Batalkan giliran untuk sesi tim di komputer pengguna | Belum; pakai Kembalikan versi | | Batalkan giliran mengubah status task/bukti | Tidak; hanya berkas di disk — verifikasi ulang | | Issue GitHub yang diimpor langsung dikerjakan Runner | Tidak; kriteria terima kosong, harus dilengkapi dulu | | Layanan latar & penyimpanan kunci di macOS/Windows | Belum diverifikasi di mesin nyata; Linux sudah | | Manifest pembaruan ditandatangani | Tidak; `bystep update --apply` mencocokkan ukuran + sha256 dari manifest yang diambil lewat HTTPS | | Bystep Desktop di macOS/Windows | Belum; paket Linux x64 tanpa tanda tangan, eksekusi di Windows dimatikan | | Paket npm selalu sama dengan unduhan Bystep | Tidak selalu; npm bisa tertinggal — cek `npx @bystep/cli --version` | ## 6. Tautan yang boleh Anda berikan https://bystep.dev/tutorial · https://bystep.dev/mulai · https://bystep.dev/otomatis · https://bystep.dev/serve · https://bystep.dev/kebijakan-penyedia · https://bystep.dev/sign-in · https://bystep.dev/pricing · https://bystep.dev/docs · https://bystep.dev/support · https://bystep.dev/llms.txt · https://bystep.dev/api/schema · https://bystep.dev/downloads/releases.json Versi dokumen: 2026-09-11. ## 7. Build bersama tim kecil Setiap tugas mempunyai penanggung jawab manusia dan reviewer terpisah. Developer dapat menggunakan akun AI masing-masing di komputernya. Keanggotaan workspace tidak memberikan akses ke komputer, secret, atau billing orang lain. Buka halaman Tim untuk Tugas saya, review, milestone, perencanaan PRD/brief/codebase yang ditinjau, PR/CI GitHub, dan impor issue GitLab opsional. Alur pribadi: `bystep team tasks` → `bystep team claim REF` → `bystep team context REF` → pengerjaan dengan alat Anda → `bystep task verify REF` → `bystep team report REF --file report.json`. Ambil konteks setelah klaim dan setelah sumber terkait berubah. `bystep team heartbeat REF` memperpanjang sesi. `bystep team assign`, `bystep team review`, `bystep team handoff`, `bystep team release`, dan `bystep team relinquish` menerima ref tugas dan berkas JSON yang sudah ditinjau. Gunakan `--key` untuk retry mutasi identik. Klaim tidak menjalankan AI; pencatatan rilis tidak melakukan deployment. Tool MCP setara: `team_tasks`, `team_context`, `team_claim`, `team_heartbeat`, `team_assign`, `team_report`, `team_review`, `team_handoff`, `team_release`, `team_relinquish`. Tool menggunakan login Bystep dan state klaim lokal developer sendiri. Jangan memindahkan token langganan AI. Baca [panduan tim](https://bystep.dev/downloads/bystep-team-guide.md). ### Pemulihan Jurnal Keputusan / Decision Journal Semua keputusan aktif (maksimal 60) masuk Task Packet. Ringkasan aktivitas perubahan task tidak memakai slot keputusan. Buka **Workspace → Pengaturan → Jurnal Keputusan (Decision Journal)**; tautannya juga ada di halaman Bangun dan keluaran `bystep decision list`. - `bystep decision list --history --json` menampilkan ID lengkap, keputusan aktif, keputusan terganti, dan arsip. - `bystep decision replace ""` menerima UUID lengkap atau awalan unik minimal delapan karakter heksadesimal, termasuk ketika kuota penuh. Gunakan hanya saat keputusan yang sama berubah; jangan mengganti ruling lain demi membuka slot. - `bystep decision archive ` mengarsipkan keputusan usang tanpa menghapus riwayat dan membuka satu slot. - `bystep decision restore ` mengaktifkan arsip. Untuk keputusan terganti, teks dipulihkan sebagai salinan aktif terpisah tanpa mengganti penerusnya. Pemanggilan ulang tidak menggandakan teks. - MCP menyediakan `decision_replace`, `decision_archive`, dan `decision_restore`, bersama `decision_list` dan `decision_add`, pada stdio dan hosted MCP. - Kuota penuh mengembalikan `decisions_limit` (409) dengan petunjuk pemulihan. ID ambigu atau yang sudah diganti mendapat konflik yang jelas. ID tidak valid mendapat 400. Jangan mengulang permintaan yang sama terus-menerus atau mengarang keputusan pemilik. Pasang CLI rilis ini: `npm install -g https://bystep.dev/downloads/bystep-cli-0.7.1.tgz`; MCP: `npm install -g https://bystep.dev/downloads/bystep-mcp-0.5.1.tgz`. Registry npm dapat tertinggal dari rilis langsung. CLI 0.6.0 langsung mendapat perbaikan ID pendek dari server; perintah arsip/pulihkan memerlukan CLI baru. # Bystep guide for AI assistants (agent-guide) > This document is written **for AI assistants** (ChatGPT, Claude, Gemini, Copilot, Claude Code, Codex, Cursor and the like) that receive a message from a person about Bystep. Read all of it before answering. Indonesian version: https://bystep.dev/agent-guide.md · Documentation index: https://bystep.dev/llms.txt · Machine schema: https://bystep.dev/api/schema ## 0. Rules for you (the assistant) 1. **Do not invent.** Every command, button, page and price comes only from this document, https://bystep.dev/llms.txt or https://bystep.dev/api/schema. If it is not here, say "I'm not sure, check bystep.dev". 2. **First work out who you are helping** (section 1). The most common mistake: a non-technical person pastes a Bystep "agent prompt" into you, and you try to run `npx @bystep/cli` inside the chat. **That can never work in a chat.** A chat has no project folder, no terminal and no access to the user's computer. 3. **If you have no shell/terminal** (you are a plain chat): do not try to run anything. Your role is **guide**: explain the steps, point to the page to open, reassure the person. 4. **If you are a coding agent with a shell** (Claude Code, Codex, Cursor, OpenCode) inside the user's project folder: follow section 4 (the "On your own" door) and run `npx @bystep/cli --llms` to read the command schema instead of guessing. 5. Use the user's language (Indonesian/English). In front of non-technical people **avoid**: repo, deploy, env, npm, CLI, terminal, frontend/backend, token, sandbox. Use Bystep's vocabulary: *Plan, Step, Stage, Build it for me, Try it on your phone, Publish, Update the live app, Restore version, Ask for a review*. ## 1. Recognise who the user is Ask (or infer from the message) two things: do they have a project folder/terminal, and what do they actually want to achieve. | Sign | Likely | Right path | |---|---|---| | No mention of a folder/project/terminal; pastes a long text containing "npx @bystep/cli" or "task next"; asks "where do I put this?" | **Not a programmer** | **Build it for me** (automatic) — section 3 | | Has an idea/app but wants a human to check it | Non-technical, wants support | **Guided** — section 3.4 | | Mentions repo, git, VS Code, Claude Code, Codex, terminal | Developer | **On your own** — section 4 | When in doubt, assume **not a programmer**. Pointing to the automatic path is safer than telling someone to open a terminal. ## 2. What Bystep is (facts you may state) - Bystep (https://bystep.dev) turns an **idea → plan → list of steps → an app that is proven to work**. Every step has acceptance criteria checked by a machine ("Proof-of-Done"): a step counts as done only when its evidence passes, not because an AI "felt done". - Three doors to build (page https://bystep.dev/mulai, shown again once the plan is written): 1. **Build it for me** (automatic) — Bystep builds the app step by step on Bystep's own computers; the user only approves each stage, tries it on their phone, then presses Publish. Nothing to install. This path is opened gradually; when it is not yet available for an account there is a **Join the waiting list** button and the user is emailed. 2. **Guided** — a human from Bystep works the hard parts with the user at fixed prices: *15-minute review*, *Polish before publishing*, *Build together for 1 hour*. Prices are shown on that page; never quote them from memory. 3. **On your own** — for developers or a technical team: use `@bystep/cli` or MCP in their own Claude Code/Codex/Cursor (button **Open the instructions**). - Account: sign in with Google at https://bystep.dev/sign-in. The first plan is free, no credit card. - Apps built on the automatic path use the "standard stack": a web app that installs to the phone home screen (PWA), sign-in by email OTP code, WhatsApp button, QRIS/bank-transfer payments (Pakasir), data kept in the user's account and downloadable at any time (**Download a copy of your app**). - Current prices and limits are always at https://bystep.dev/pricing. - Current releases: CLI `@bystep/cli` 0.6.0, MCP `@bystep/mcp` 0.4.0, Bystep Desktop 0.2.0 (Linux). Full list with checksums: https://bystep.dev/downloads/releases.json. The npm packages can lag behind Bystep's downloads; the own-computer features of sections 3.6–3.11 need CLI 0.6.0. ## 3. Guiding a non-programmer (automatic path) Give these steps one at a time and wait for the user to finish each: 1. **Sign in**: open https://bystep.dev/mulai on a phone or laptop → choose the automatic path → sign in with Google. When asked who they are, pick **"I'm not a programmer"** so every screen uses everyday language. 2. **Describe the idea**: pick the closest example (all examples use WhatsApp as the customer channel) or press **Describe your own idea** and write 2–3 sentences: for whom, which problem, what outcome. Bystep asks 3 short questions. 3. **Short plan**: Bystep writes a short plan (≤ 15 steps) in everyday language; the first stage is always called "A first version you can use". The user reads it and, on the screen "Your plan is ready. Choose how to build it.", presses **Build it for me**. 4. **Build**: the **Build** page shows "Step n of m" and a sentence about what is being worked on. The user does not have to wait in front of the screen. 5. **Try it on your phone**: whenever a stage completes, **Open the app** opens a trial version. If it is right, press Continue; if something is wrong, write "this is wrong, it should be …". 6. **If it gets stuck** (the "If it gets stuck" part of the Build page): Bystep tries to fix it by itself up to 2×, then stops and explains in plain words. The user can **Retry this step**, go back to the previous version, skip the step, or **Ask for a review** by a human (the **Help** page). Failed steps do not use up the allowance. 7. **Publish**: the **Publish** page runs a **security check** and then gives a link anyone can open. From then on there are **Update the live app**, **Version history** (restore a version) and a guide **Add to your phone's home screen**. **Useful sentences for you to say:** - "The text you pasted is meant for programmers. You do not need it. Open bystep.dev/mulai and choose *Build it for me* — Bystep will build it." - "I can't build the app from here, but I can walk you through it step by step." ### 3.4 Guided If the user wants a Bystep person to check things: inside the project there is a **Help** page (**Ask for a review**) with fixed-price packages and a 24-hour deadline, paid by QRIS/bank transfer. A community Discord is linked from that page. Point there; do not promise prices from memory. ### 3.5 Automatic path on the user's own computer (`bystep serve`) For people who **already pay for Claude (Pro/Max) or ChatGPT** and do not want to use Bystep step credits. Their computer does the work; Bystep keeps the plan, the proof and the buttons. Plain guide: https://bystep.dev/serve. Three steps, once: 1. Install Node.js (LTS) from https://nodejs.org/en/download. 2. Open Terminal (Mac) or PowerShell (Windows), run `npm install -g @anthropic-ai/claude-code` then `claude` and sign in with the Claude account (ChatGPT: `npm install -g @openai/codex` then `codex`). 3. Run `npx @bystep/cli serve` in the same window, open the sign-in link it prints, leave the window open. (Without a sign-in link: a pairing code, section 3.6.) Then on Bystep: **Build** page → "Build with" → **My computer**. **Build it for me** now sends steps to that computer. "Try it on your phone" keeps working while the computer is on and connected. Readiness check: `npx @bystep/cli serve --doctor` (plain-language output). Useful sentence: "Your Claude/ChatGPT subscription cannot be used on Bystep's servers (provider rules), but it can be used on your own computer — Bystep only hands over the steps and checks the results." ### 3.6 Connecting a computer with a code, running in the background, and updates (E5) All of this is additive; `bystep login` + `bystep serve` keep working as before. - **Install the latest CLI** (when `npx @bystep/cli --version` is below 0.6.0): `npm install -g https://bystep.dev/downloads/bystep-cli-0.7.1.tgz`, then use the `bystep` command. - **Pairing code**: signed in on https://bystep.dev/serve, press **Show pairing code**. An 8-character code, a QR code and the command appear. The code works **once** and for **10 minutes**. On the computer: `bystep serve --pair `. The computer receives its own key (only for that computer, valid 90 days, renewed automatically when fewer than 7 days remain) — no `bystep login` needed. The /serve page shows "Waiting for the computer to connect…" until the computer is actually running. A wrong, expired or already used code → ask the user to show a new code. - **Running in the background**: `bystep service install` installs `bystep serve` as a service that restarts by itself when it stops (Linux: systemd; macOS: launchd; Windows: Task Scheduler). `bystep service status` shows its state, `bystep service uninstall` removes exactly what was installed. Sign in or pair first, then install the service. - **Updates**: `bystep update` only checks; `bystep update --apply` downloads, compares size + sha256, then installs. Afterwards restart `bystep serve` or the service. `--channel preview` gives test versions. - **Bystep Desktop 0.2.0** (optional, Linux x64, not signed yet) bundles CLI 0.6.0. The web app stays the main product. - Be honest: the background service and key storage on **macOS and Windows are not verified** on real machines yet; Linux is. Do not promise more than that. ### 3.7 Which agents can be used on the user's own computer There is one official list: `https://bystep.dev/api/agents` (sign-in required) — today `claude` (Claude Code), `codex`, `cursor`, `gemini`, `opencode`, plus `custom` (your own script). `copilot` is listed but not enabled yet; `openclaw` and `hermes` run in the cloud only. Never name other agents from memory; read that list. An agent can only be used when its program is installed and already signed in on the user's computer — Bystep never copies an agent's login. **Your own script:** put an executable file at `.bystep/agents/.sh` (Windows: `.ps1`) and choose `--agent custom:`. Bystep sets `BYSTEP_PROMPT` (or `BYSTEP_PROMPT_FILE`), `BYSTEP_RUN_ID`, `BYSTEP_TASK_REF`, `BYSTEP_API_URL`, `BYSTEP_TOKEN` (for that one step only), and takes the result as JSON on stdout or the file `.bystep/out/.md`. **Readiness check v2:** `npx @bystep/cli serve --doctor` (add `--json` for machines) names each agent's version, where its credential appears to come from (subscription / API key / none / unknown), the protocol version and how many parallel steps the computer offers. Tell the user plainly: the credential source is a **guess** from the files and variables present, not proof of an account identity. **Step timeline:** while the agent works, the user's computer sends a summary of events (messages, tool use, file changes, commands, tokens/cost) to Bystep so the Build page can show them. Secret file contents never go along; long text is cut, and a re-sent batch never doubles the timeline. An older server without this feature keeps working, just without a timeline. **Subscription tokens are refused:** a Claude/ChatGPT subscription login may not be uploaded to Bystep. Saving a secret or an AI key whose value looks like a subscription token is refused (`subscription_token_rejected`); use an API key from the provider's console, or run the agent on the user's own computer. ### 3.8 Agent teams: several steps at once (E1) - On **Build**, **Start agent team** runs several independent steps at the same time. The switch **Work on several at once** appears when the plan allows more than one; **Advanced settings** hold the number and the token / USD / minute limits. - Each step works in its own folder; steps that touch the same files take turns. A step is done only when the **combined** evidence passes; stage gates still wait for the user's approval. - The plan's limit is never lowered silently: a request above it is refused with the message "Your plan allows {n} agents at once". Point to https://bystep.dev/pricing; never quote numbers from memory. - **Conflict while combining**: the team stops, Bystep creates a task "Bentrok gabung: " (merge conflict) and an Inbox item "Conflict — needs you". Fix tasks always go first. A team stopped by a limit shows "Stopped by a limit" in the Inbox and on the Cost page. - On the user's own computer: `bystep serve --parallel ` (1–8) caps how many team parts it runs at once; without the option the computer follows the team (up to 4). Single steps always run one at a time. - A message to the team (`bystep workflow message`) is read by the next assignments; it does not interrupt a running agent. Stopping (`bystep workflow stop`) completes only once every process is proven stopped. - Agents with a shell: `bystep workflow list`, `bystep workflow start`, `bystep workflow show`, `bystep workflow stop`, `bystep workflow resume`, `bystep workflow message` (or the MCP tools `workflow_*`). Start, stop or resume a team only when the user says so. ### 3.9 Reviewer, command approvals and decision cards (optional, per plan) All are off by default; the user turns them on under Build → **Execution**. - **Reviewer** ("Pemeriksa"; Off/Auto/Always): after the combined result passes its tests, one extra agent reads the change **without changing files** and reports findings labelled Critical/Major/Minor. Findings at the gate level (default: Critical) stop the team and appear in the Inbox; **Fix all (Critical + Major)** creates Fix tasks, **Re-check** runs a new team. When the reviewer allowance is used up, the review is skipped and the team does not fail. - **Command approvals** (Off/Risky/All): on "Risky", safe commands (e.g. `git status`, `pnpm test`, `ls`) run by themselves; any other command waits until the user presses **Allow / Decline** in the Inbox (optionally "Remember for this project"). No answer within 10 minutes → declined and the step waits. Honestly: only Claude Code can ask per command; Codex, Gemini, Cursor, OpenCode and custom scripts keep their sandbox and record "approval_unsupported". It works only on the user's own computer (`bystep serve`), not in the cloud. - **Decision cards**: one question with 2–3 options and their consequences. The user's choice becomes a project decision every later agent reads; a card can be chosen only once. **Check the plan** looks for contradictions in the plan and uses **1 chat message** of the user's allowance per click. - Project decisions can also be recorded from a shell: `bystep decision list`, `bystep decision add "" --why ""`, `bystep decision replace ""` — only when the user says so. - If you are an agent inside a Bystep step: report your state with `bystep report --state --message "…"`; as the reviewer, submit findings with `bystep review submit` (JSON on stdin). `bystep hooks ` is installed automatically by `bystep serve` for Claude Code — do not call it yourself. Never answer a permission request on the user's behalf. ### 3.10 Project memory, "continue elsewhere", honest labels and provider policy - Bystep keeps a short summary of every step that passed and a "gotcha" note after a step failed twice. The next agents receive it as context (`recentMemory`), not as instructions. - When an agent team stops because of an AI service's **usage limit**, an **offline computer** or an **expired lease**, the Inbox can offer "Continue in the cloud / on your computer?" (for the cloud with a cost estimate). This is **never automatic**: the user has to press and confirm it. Never call `POST /api/plan/:id/workflows/continue-elsewhere` without the user's explicit instruction. - Every new step/team shows **where** it ran (cloud/computer), **who pays** (Bystep credits, the user's API key, the user's subscription on their computer) and the model. - The Runner model changes only when the user chooses one (per plan, per task tier, or a favourite model in Settings). Without a choice the model stays as before. A model outside the plan falls back to the default and that is recorded. - Each AI provider's policy (allowed / gray / forbidden per way of running) is at https://bystep.dev/kebijakan-penyedia. Bystep never stores or forwards subscription tokens. - `bystep serve --runs-per-hour N` is an optional brake for the user's own computer; without the option there is no limit. ### 3.11 Work trail, terminal, "Why this status?", undo a turn, and issue import (E4) - The **Work trail** on the Build page (and on every team session card) shows what the agent does in everyday language: messages, "Reading/Changing/Running …", changed files, commands with their output (cut at 4 KB; **Download full output** fetches what the server kept, at most 16 KB per event). The **Technical log** is a **read-only** terminal view: nothing typed there reaches the agent. - **Why this status?** shows the effective state, the rule that decided it and the last signals. Agents without signals (openclaw, hermes, a custom script without `bystep report`) show "No signal from this agent." — never conclude that the agent is working. - The Kanban lens **Turn** (AI working / Needs you / Ready / Done) only regroups; task statuses do not change. - **Undo a turn**: `bystep serve` keeps a checkpoint after every agent turn. Once the step has stopped, the owner can undo one turn (**Undo this step**); files return to how they were before that turn (a file changed again afterwards is not overwritten). Honest limits: files on disk only (task status, evidence and the saved version do not change — ask the user to verify again); the same computer and project folder must be on; files > 5 MB, symlinks and submodules cannot be restored; in the cloud only while the working folder has not been swept; **team sessions on the user's computer are not supported yet** — suggest **Restore version**. Never call undo without the user's explicit instruction. - **Import GitHub issues** (off by default): the owner turns it on in the workspace settings and stores a token as the project secret `GITHUB_TOKEN`. Open issues (not pull requests) become `todo` tasks in the **Backlog** feature with **empty** acceptance criteria — such a task must be completed before the Runner may take it. At most 50 per request, one request per 5 minutes per workspace, each issue is imported once; later changes on GitHub are not synced. - Notifications are split into "needs attention" (blocked, approval, conflict, reviewer gate) and "done". A message that could not be sent is logged with its reason (channel not set, turned off, too frequent) on the notification settings. ## 4. "On your own" (you are a coding agent with a shell) Prerequisites you **must** check first: you are inside the user's Git project folder, you have network access, Node ≥ 18. If any is missing → stop and tell the user (do not loop trying). `npx @bystep/cli --version` below 0.6.0 means the commands of sections 3.6–3.11 do not exist yet; install `https://bystep.dev/downloads/bystep-cli-0.7.1.tgz` if the user agrees. ``` npx @bystep/cli --llms # JSON manifest of every command (read this, do not guess) npx @bystep/cli task --llms # manifest of one command group npx @bystep/cli login # device flow; the user confirms in the browser (or --token bs_…) npx @bystep/cli connect --plan # bind this folder to a Bystep plan npx @bystep/cli init # install the skill + hooks into Claude Code/Cursor/Codex/AGENTS.md npx @bystep/cli task next --json # the server picks ONE next step (Task Packet) npx @bystep/cli task start npx @bystep/cli task verify # runs the acceptance criteria → evidence npx @bystep/cli task complete # refused while the evidence has not passed npx @bystep/cli task fail "reason" npx @bystep/cli task approve # approve a stage gate (only when the user says so) npx @bystep/cli sync --plan # upload a summary of the code structure (never secret file contents) npx @bystep/cli doctor --repo # offline agent-readiness score of the project ``` Exit codes: `0` ok · `1` failure/verify red · `2` bad input · `3` a stage gate is waiting for human approval. **Every command** (the source is `npx @bystep/cli --llms` and https://bystep.dev/api/schema): | Group | Commands | |---|---| | Account & folder | `bystep login`, `bystep connect`, `bystep init`, `bystep doctor`, `bystep status`, `bystep whoami`, `bystep workspace list` | | Plans | `bystep plan list`, `bystep plan get`, `bystep plan exec`, `bystep import --from speckit\|openspec\|backlog\|taskmaster` | | Steps | `bystep task next`, `bystep task list`, `bystep task start`, `bystep task verify`, `bystep task complete`, `bystep task fail`, `bystep task packet`, `bystep task guard` (Claude Code Stop hook), `bystep task approve`, `bystep wave next` | | Code | `bystep sync` | | Agent teams (3.8) | `bystep workflow list`, `bystep workflow start`, `bystep workflow show`, `bystep workflow stop`, `bystep workflow resume`, `bystep workflow message` | | Decisions (3.9) | `bystep decision list`, `bystep decision add`, `bystep decision replace` | | Own computer (3.5–3.6) | `bystep serve` (`--doctor`, `--pair `, `--parallel `, `--listen`/`--no-listen`, `--runs-per-hour `), `bystep service install`, `bystep service status`, `bystep service uninstall`, `bystep update` | | Inside a Bystep step (3.9) | `bystep report`, `bystep review submit`, `bystep hooks ` (installed automatically) | Loop rules: work on one task; never touch files outside `ownedFiles`; respect `doNotTouch`, `conventions` and the project-rules block in the packet; `complete` only after `verify` is green; after 2 failures → `fail` with a reason, never force `--override`. **MCP alternatives.** `@bystep/mcp` 0.4.0 (stdio; reuses the CLI login): `plan_get`, `plan_list`, `task_next`, `task_packet`, `task_start`, `task_verify`, `task_complete`, `task_fail`, `task_evidence_get`, `phase_approve`, `wave_next`, `sync_status`, agent teams `workflow_list`, `workflow_get`, `workflow_start`, `workflow_stop`, `workflow_resume`, `workflow_message`, and `review_submit`, `approval_list`, `approval_answer`, `decision_card_list`, `decision_card_choose`, `decision_list`, `decision_add`, `rules_list`, `state_get`. Hosted MCP `https://bystep.dev/api/mcp` (`bs_…` key as `Authorization: Bearer`): `list_plans`, `plan_status`, `run_next`, `run_status`, `preview_url`, `approve_stage`, `escalate`, the same `workflow_*` tools, `review_submit` (only explains that findings come from the reviewer session), `approval_list`, `approval_answer`, `decision_card_list`, `decision_card_choose`, `decision_list`, `decision_add`, `rules_list`, `state_get`, and `task_packet`. `approval_answer`, `decision_card_choose`, `phase_approve`/`approve_stage`, `workflow_start`/`workflow_stop` only on the user's explicit instruction. ## 5. Honest limits | Item | Status | |---|---| | Building from inside a chat (without Bystep) | Not possible | | Native App Store/Play apps | No; the result is a web app that installs on the phone (PWA) | | Custom domain for a published app | Being prepared; today the address is under bystep.dev | | Automatic path using the user's Claude/ChatGPT subscription | Not on Bystep's servers; **yes on the user's own computer** via `bystep serve` (section 3.5). On the server: Bystep's allowance or the user's own **AI key** (Settings, API key only, never an account login) | | Failed steps consume the allowance | No | | Per-command approval for agents other than Claude Code | No; Codex, Gemini, Cursor, OpenCode and custom scripts cannot ask per command — they stay in the workspace sandbox | | Reviewer = proof of done | No; the reviewer gives findings, proof still comes from the acceptance criteria | | "Check the plan" is free | No; it uses 1 chat message per click | | An agent team above the plan's limit | No; refused with a clear message, never lowered silently | | Buying extra agents at once | Not on sale yet (needs wider team waves / a protocol change) | | Merge conflicts resolved automatically | No; they become a "Bentrok gabung" task to work on or decide | | Automatic path available to every account | Opened gradually; there is a waiting list | | Moving to the cloud automatically when a subscription limit is hit | No; only an Inbox offer the user has to confirm | | A premium model used without being chosen | No; the Runner model changes only on an explicit choice | | `bystep task packet` changes because of memory | No; only the Runner/brief/team receive `recentMemory` | | Typing commands into the Technical log terminal | No; read-only | | Undo a turn of a team session on the user's computer | Not yet; use Restore version | | Undo a turn changes task status/evidence | No; files on disk only — verify again | | Imported GitHub issues are worked on by the Runner right away | No; empty acceptance criteria, complete them first | | Background service & key storage on macOS/Windows | Not verified on real machines yet; Linux is | | Signed update manifest | No; `bystep update --apply` compares size + sha256 from a manifest fetched over HTTPS | | Bystep Desktop on macOS/Windows | Not yet; unsigned Linux x64 package, execution disabled on Windows | | The npm package always equals Bystep's download | Not always; npm can lag behind — check `npx @bystep/cli --version` | ## 6. Links you may give https://bystep.dev/tutorial · https://bystep.dev/mulai · https://bystep.dev/otomatis · https://bystep.dev/serve · https://bystep.dev/kebijakan-penyedia · https://bystep.dev/sign-in · https://bystep.dev/pricing · https://bystep.dev/docs · https://bystep.dev/support · https://bystep.dev/llms.txt · https://bystep.dev/api/schema · https://bystep.dev/downloads/releases.json Document version: 2026-09-11. ## 7. Build with a small team Each task has a human owner and an independent reviewer. Each developer can use their own AI account on their computer. Workspace membership does not grant another person’s computer, secrets or billing. Open the workspace Team page for My work, reviews, milestones, reviewed PRD/brief/codebase planning, GitHub PR/CI and optional GitLab issue import. The personal loop is `bystep team tasks` → `bystep team claim REF` → `bystep team context REF` → edit with your tool → `bystep task verify REF` → `bystep team report REF --file report.json`. Refresh context after claiming and after a relevant source change. `bystep team heartbeat REF` renews the lease. `bystep team assign`, `bystep team review`, `bystep team handoff`, `bystep team release`, and `bystep team relinquish` take the task ref plus a reviewed JSON file. Use `--key` to retry the same mutation. Claiming does not start an AI; recording a release does not deploy it. MCP equivalents: `team_tasks`, `team_context`, `team_claim`, `team_heartbeat`, `team_assign`, `team_report`, `team_review`, `team_handoff`, `team_release`, `team_relinquish`. They reuse the developer’s own local Bystep login and claim state. Never transfer an AI subscription token. See the [team setup guide](https://bystep.dev/downloads/bystep-team-guide.md). ### Decision Journal recovery All active decisions (up to 60) are included in Task Packets. Activity summaries no longer use decision slots. The journal is at **Workspace → Settings → Decision Journal**, also linked from the Build page and `bystep decision list`. - `bystep decision list --history --json` returns full IDs and active, replaced and archived history. - `bystep decision replace ""` accepts a full UUID or a unique prefix of at least eight hexadecimal characters. It works at capacity. Use it only when that same decision changes; never replace an unrelated ruling to make space. - `bystep decision archive ` preserves obsolete text in history and frees a slot. - `bystep decision restore ` reactivates an archive. For a replaced decision it creates a separate active copy, preserving its successor. Repeated restoration does not duplicate the text. - MCP exposes `decision_replace`, `decision_archive`, and `decision_restore` alongside `decision_list` and `decision_add`, over both stdio and hosted MCP. - A full journal returns `decisions_limit` (409) with recovery guidance. Ambiguous prefixes and stale IDs return actionable conflicts. Invalid IDs return 400. Do not retry these unchanged or invent a new owner decision. Install the released CLI with `npm install -g https://bystep.dev/downloads/bystep-cli-0.7.1.tgz`; MCP with `npm install -g https://bystep.dev/downloads/bystep-mcp-0.5.1.tgz`. The npm registry can lag behind direct releases. Existing CLI 0.6.0 benefits from the server fix for short IDs without an upgrade; archive/restore commands require this newer CLI. # Plain-language vocabulary (simple mode) / Kosakata mode sederhana | Indonesia | English | Meaning | |---|---|---| | Rencana | Plan | the PRD, written short (≤ 15 steps) in simple mode | | Langkah | Step | one task with machine-checked acceptance criteria | | Tahap | Stage | a group of steps ending in a gate the person approves ("phase" internally) | | Bangunkan untuk saya | Build it for me | the automatic door: Bystep's Runner builds the step | | Coba dulu di HP-mu | Try it on your phone | preview link after a stage passes | | Terbitkan | Publish | production release with a public link | | Perbarui yang online | Update the live app | publish a new version | | Kembalikan versi | Restore version | roll back without rebuilding | | Kunci rahasia layanan | Service secret | encrypted secrets the app needs (e.g. payment key) | | Riwayat proyek | Project history | versions and activity | | Minta ditinjau | Ask for a review | the Guided door: a human reviews at a fixed price | | Kunci AI | AI key | the person's own API key (never an account login) | | Komputer saya | My computer | build on the person's own computer with `bystep serve` | | Kode pairing | Pairing code | one-time 8-character code that connects a computer without `bystep login` | | Mulai tim agent | Start agent team | several independent steps at once, each in its own folder | | Kerjakan beberapa sekaligus | Work on several at once | the simple switch for an agent team | | Bentrok gabung | Merge conflict task | Fix task created when two parts of a team collide | | Pemeriksa | Reviewer | read-only agent that reports Critical/Major/Minor findings | | Izinkan / Tolak | Allow / Decline | answer to a command the agent wants to run | | Kartu Keputusan | Decision card | one question, 2–3 options with consequences; the choice binds every agent | | Jejak kerja | Work trail | plain-language timeline of what the agent did | | Log teknis | Technical log | read-only terminal view | | Mengapa status ini? | Why this status? | the effective state and the rule that decided it | | Batalkan langkah ini | Undo this step | undo one agent turn (files on disk only) | Words that must not be used in front of non-technical users: repo, deploy, env, npm, CLI, terminal, frontend/backend, layer, phase, token, sandbox. # CLI summary (`@bystep/cli` 0.6.0; exit codes 0 ok · 1 error/verify failed · 2 bad input · 3 checkpoint pending) - Account & folder: `bystep login` · `bystep connect` · `bystep init` · `bystep doctor [--repo]` · `bystep status` · `bystep whoami` · `bystep workspace list` - Plans: `bystep plan list` · `bystep plan get` · `bystep plan exec` · `bystep import --from speckit|openspec|backlog|taskmaster` - Steps: `bystep task next` · `bystep task list` · `bystep task start` · `bystep task verify` · `bystep task complete` · `bystep task fail` · `bystep task packet` · `bystep task guard` · `bystep task approve` · `bystep wave next` · `bystep sync [--plan]` - Agent teams: `bystep workflow list` · `bystep workflow start` · `bystep workflow show` · `bystep workflow stop` · `bystep workflow resume` · `bystep workflow message` - Decisions: `bystep decision list` · `bystep decision add` · `bystep decision replace` - Own computer: `bystep serve` (`--doctor`, `--pair `, `--no-keychain`, `--parallel `, `--listen [host:port]` / `--no-listen`, `--runs-per-hour `, `--once`, `--json`) · `bystep service install` · `bystep service status` · `bystep service uninstall` · `bystep update [--check|--apply] [--channel stable|preview]` - Inside a Bystep step: `bystep report --state ` · `bystep review submit` · `bystep hooks ` (installed by `bystep serve`) - `--llms` on the program or any group prints the JSON manifest; https://bystep.dev/api/schema lists the same commands with their options. # MCP summary stdio `@bystep/mcp` 0.4.0: plan_get, plan_list, task_next, task_packet, task_start, task_verify, task_complete, task_fail, task_evidence_get, phase_approve, wave_next, sync_status, workflow_list, workflow_get, workflow_start, workflow_stop, workflow_resume, workflow_message, review_submit, approval_list, approval_answer, decision_card_list, decision_card_choose, decision_list, decision_add, rules_list, state_get. hosted `https://bystep.dev/api/mcp` (Bearer bs_…): list_plans, plan_status, run_next, run_status, preview_url, approve_stage, escalate, workflow_list, workflow_get, workflow_start, workflow_stop, workflow_resume, workflow_message, review_submit, approval_list, approval_answer, decision_card_list, decision_card_choose, decision_list, decision_add, rules_list, state_get, task_packet. # Agent-platform endpoints (summary; the machine schema is authoritative) - Workflow runtime protocol v1 is unchanged: claim/dispatch with a persisted requestId, lease id + epoch headers on every effect, idempotent receipts, integration verifies ownership (`ownership_violation`). - E0: handshake fields (`agents`, `capabilities`, `capacity` → `serverCapabilities`, `protocolVersion: 2`), `GET /api/machines/:id/events` (SSE wake), run/session event batches, `GET /api/agents`. - E1: team limits on `GET/POST /api/plan/:planId/workflows` (402 `parallel_runs`, 402 `daily_usd_cap`), `merge_conflict` → "Bentrok gabung" Fix task. - E2: approvals (`/api/run/:runId/approvals`, `/api/workflows/:id/sessions/:sid/approvals`, `/api/approvals/:id`), effective state (`…/state`), reviewer (`…/sessions/:sid/review`, `/api/workflows/:id/review`, `…/review/fix-all`, `…/review/recheck`), decision cards (`/api/plan/:planId/decision-cards`, `…/:cardId/choose`, `/api/plan/:planId/assist/contradictions`). - E3: `POST /api/plan/:planId/workflows/continue-elsewhere` (only with `confirm: true`), `GET /api/provider-policy`. - E4: SSE `GET /api/run/:runId/events/stream`, `GET /api/workflows/:id/stream`, stored payloads `…/events/:seq/payload`, undo (`/api/run/:runId/undo`, `…/sessions/:sid/undo`, `/api/checkpoints/:id`, `/api/checkpoints/:id/result`), `POST /api/workspaces/:id/issues/import`. - E5: `POST /api/machines/pair/code` (browser session), `POST /api/machines/pair` (one-time code → machine-scoped daemon token), `POST /api/machines/:id/token/rotate`; other endpoints answer `403 token_scope` to a machine token. Machine schema with JSON Schema of the Task Packet and evidence payload: https://bystep.dev/api/schema