bynara-cli
v2.0.0
Published
ByNara AI coding agent - one sign-in, all models via router.bynara.id
Readme
ByNara CLI
One sign-in, every model. A coding agent that delegates specialist work to focused subagents and brings evidence to every claim.
ByNara CLI is an AI coding agent that:
- Routes all model traffic through router.bynara.id with one API key — Claude, GPT, Gemini, DeepSeek, GLM, Kimi, MiniMax, Mistral, and more.
- Ships a roster of focused subagents (
nara-build,nara-architect,nara-release,nara-review,nara-debug,nara-plan,nara-explore,nara-search,nara-fe,nara-droid) — each with its own skills and references. - Provides a
delegatetool that fans work out to subagents in parallel, sequential chains, or single focus — each in an isolated context window.
Table of contents
Install
# Requires Node.js >= 22.19
npm install -g bynara-cliThis installs the naracli command. Then sign in with your ByNara account:
naracli loginByNara CLI is proprietary software. Access requires a valid ByNara account and API key — sign up at router.bynara.id.
Quickstart
# 1. Sign in (one-time)
naracli login
# 2. Verify auth
naracli status
# 3. Launch the agent in the current project
naracliInside the agent, press / for the command palette, /agents to list subagents, /skills to list skills.
# Quick subcommands without launching the TUI
naracli login # sign in to router.bynara.id
naracli logout # wipe local credentials
naracli status # show auth + quota + current model
naracli status --usd # same, with USD cost equivalentRemote control (/remote on)
Drive a naracli session running on your laptop from a phone or another
browser. The agent + every model call stay on your laptop; the remote client
only sees the live session stream.
Inside the TUI:
/remote on # start bridge + auto cloudflared tunnel
/remote status # show URL, token fingerprint, attached client
/remote off # tear down, invalidate token, kill tunnelWhat happens on /remote on:
- An HTTP+WebSocket server binds
127.0.0.1:<random port>and mints a one-shot 256-bit session token. The full token is printed in the TUI once — copy it. - If
cloudflaredis onPATH, a tunnel auto-starts and gives you a publichttps://*.trycloudflare.comURL. Nocloudflared? Runtailscale serve <port>or your own tunnel and point it at the local port. - Open the URL on your phone, paste the token. The page is the player — it streams the session, lets you send prompts, reconnects on idle.
Security (non-negotiable, see docs-naracli/REMOTE-CONTROL.md for the full
threat model):
- Token required at the WS handshake. Browsers can't set headers from JS,
so it's passed via the
Sec-WebSocket-Protocolsubprotocol. Wrong/absent token → handshake401, socket closes4401. - WebSocket binds
127.0.0.1only; exposure is the tunnel's job. - Remote drivers cannot pick Allow for this session on a permission prompt — the bridge downgrades it to Allow once before pi sees it. Permission gate itself stays on the laptop (Phase 1.5 limitation — Phase 2 managed relay forwards the gate).
- Single client at a time; a second remote gets
4409. /remote offinvalidates the token and kills the tunnel. A/reloador quit also tears it down.
Free plan: bring your own tunnel (Cloudflare cloudflared, Tailscale
serve). Paid plan: managed relay with a stable subdomain + Web Push
is on the roadmap (docs-naracli/REMOTE-CONTROL.md §Phase 2).
Usage
Interactive mode
naracli # launch in cwd
naracli --model bynara/glm-5 # override default model for this session
naracli --continue # resume the last sessionSlash commands inside the TUI:
| Command | Effect |
|---|---|
| /agents | list subagents |
| /agent-model <name> | change a subagent's model |
| /skill:<name> [args] | load a skill |
| /skills | list available skills |
| /help | full command palette |
Headless / scripted
naracli -p "audit the auth module for OWASP top 10" # single prompt, prints result, exits
naracli -p --json <task> # machine-readable outputDelegation patterns
The agent delegates to specialists via the delegate tool. You do not invoke it directly — you phrase the request and the model decides.
// One focused specialist
delegate { agent: "nara-droid", task: "..." }
// Independent units in parallel
delegate { tasks: [
{ agent: "nara-search", task: "research X" },
{ agent: "nara-explore", task: "find usages of Y" },
{ agent: "nara-plan", task: "draft plan for Z" }
]}
// Sequential, {previous} injects the prior step's output
delegate { chain: [
{ agent: "nara-explore", task: "map the auth flow" },
{ agent: "nara-plan", task: "draft a plan based on {previous}" },
{ agent: "nara-review", task: "review the plan in {previous}" }
]}Subagents
ByNara ships a roster of focused subagents. The model picks based on the unit of work, not the surface form.
Coordination
| Agent | Purpose | When to use |
|---|---|---|
| nara-build | Implements features, bugfixes, refactors, releases | Top-level orchestrator. Default for "implement X", "fix Y", "refactor Z" |
| nara-architect | System design, ADRs, component decomposition | Greenfield design, scaling decisions, API contracts, trade-offs. Read-only |
| nara-release | Version sync, verification, deploy safety | Before any production push, store release, or schema migration |
| nara-review | Multi-aspect code review (security, perf, a11y, API, tests) | Pre-merge review, audit, self-review. Does not fix |
| nara-debug | 4-phase root-cause debugging | "X is broken", flaky tests, intermittent failures |
Investigation (read-only)
| Agent | Purpose | When to use |
|---|---|---|
| nara-plan | Implementation plans, never edits code | Pair with nara-build for hand-off |
| nara-explore | Fast codebase navigation | "Where is X defined?", "who calls Y?", quick map |
| nara-search | Evidence-first research with citations | Library comparison, version migration, doc lookup |
Specialist (writes code in their domain)
| Agent | Purpose | When to use |
|---|---|---|
| nara-fe | Frontend UI/UX (React, Vue, Svelte, Angular, CSS, Tailwind, a11y) | UI changes, component design, responsive, accessibility |
| nara-droid | Native Android (Kotlin, Gradle, Compose, Room, Hilt, adb, APK/AAB) | Android tasks, build failures, release |
If multiple roles apply, the model fans out to parallel subagents.
Skills
ByNara bundles a large pool of skills that any agent can load on demand via /skill:<name>. Highlights:
| Skill | What it covers |
|---|---|
| systematic-debugging | 4-phase root-cause debugging |
| test-driven-development | RED-GREEN-REFACTOR discipline |
| writing-plans | Implementation plans with bite-sized tasks |
| security, auth-identity, compliance-governance | Security review and compliance |
| architecture, api-design-patterns, distributed-systems | System design |
| android-kotlin, compose-patterns, gradle-troubleshoot | Android development |
| react-patterns, css-patterns | Frontend |
Skills vs subagents: a skill is a workflow / lens the agent applies inline. A subagent is a separate context that runs in parallel. Use skills for "do X the right way", subagents for "do X in isolation".
For project-specific guidance, add an AGENTS.md to your repository — the agent reads it automatically.
Support
- Account, billing, API keys: router.bynara.id
- Sign-in issues: run
naracli logoutthennaracli loginto refresh your session.
License
Proprietary. Copyright © 2026 ByNara. All rights reserved. See LICENSE.
