@rebon/cli-darwin-x64 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,133 @@
1
+ # rebon
2
+
3
+ An agent CLI for coding and more — a terminal harness that drives an LLM through
4
+ a real agent loop with tools, sessions, permissions, and a full TUI.
5
+
6
+ ## Install
7
+
8
+ ```bash
9
+ npm install -g @rebon/cli
10
+ ```
11
+
12
+ Upgrade later:
13
+
14
+ ```bash
15
+ npm install -g @rebon/cli@latest
16
+ ```
17
+
18
+ `@rebon/cli` is a thin launcher that pulls the matching native binary as
19
+ an optional dependency. Supported platforms: `win32-x64`, `darwin-x64`,
20
+ `darwin-arm64`, `linux-x64`, `linux-arm64`.
21
+
22
+ > If install fails with "missing optional platform package", you likely passed
23
+ > `--omit=optional` or `--no-optional`. Reinstall without that flag.
24
+
25
+ ## Quick start
26
+
27
+ ```bash
28
+ # Local TUI in the current directory
29
+ rebon
30
+
31
+ # Resume a previous session
32
+ rebon --resume sess-0-1712937600000
33
+
34
+ # Override the active provider / model
35
+ rebon --provider openrouter --model gpt-5.5
36
+
37
+ # Run as an ACP JSON-RPC server on stdio (for editor / IDE integrations)
38
+ rebon --acp
39
+ ```
40
+
41
+ The first run drops you into onboarding: pick a provider, sign in (OAuth +
42
+ PKCE for Claude / OpenAI, or paste an API key), and you're in.
43
+
44
+ ## CLI flags
45
+
46
+ | Flag | Purpose |
47
+ | ------------------- | ------------------------------------------------------------ |
48
+ | `--acp` | Run as an ACP JSON-RPC server on stdio. |
49
+ | `--provider <name>` | Override `activeCustomProvider` from `~/.rebon/config.json`. |
50
+ | `--model <id>` | Override the resolved provider's default model. |
51
+ | `--resume <id>` | Load an on-disk transcript and replay it into the TUI. |
52
+
53
+ ## Config & data
54
+
55
+ - `~/.rebon/config.json` — providers, models, credentials, defaults.
56
+ - `~/.rebon/sessions/` — saved transcripts.
57
+ - `~/.rebon/skills/`, `~/.rebon/agents/`, `~/.rebon/memory/` — user assets.
58
+ - `$REBON_LOG_DIR/rebon.log` — TUI log file (defaults to
59
+ `%TEMP%/rebon/logs/rebon.log` on Windows, `$TMPDIR/rebon/logs/rebon.log`
60
+ elsewhere). `--acp` mode logs to stderr instead.
61
+
62
+ Project-level overrides live under `.rebon/` and `.claude/` in your working
63
+ directory.
64
+
65
+ ## What you get
66
+
67
+ - **Local TUI** — prompt input with history, paste, image paste, `@`-mention
68
+ and slash-command pickers, queued submissions, mode cycling; streaming
69
+ transcript with markdown, tool grouping, thinking blocks, plan approval,
70
+ permission modal; full dialog stack for onboarding, settings, resume,
71
+ rewind, quick-open, history search, global search, tasks, background
72
+ tasks, teams, agents.
73
+ - **Agentic tool loop** — Bash / PowerShell, Read / Write / Edit, Glob /
74
+ Grep, Sleep, TaskCreate / TaskUpdate / TaskList / TaskGet / TaskStop,
75
+ Agent, SkillTool, AskUserQuestion, SendMessage, EnterPlanMode /
76
+ ExitPlanMode, ToolSearch, Team{Create,Delete,Files,Mailbox,Manager},
77
+ Worktree, plus MCP tools (stdio, Streamable HTTP, legacy SSE).
78
+ - **Providers** — Anthropic, OpenAI, and OpenAI-Responses, with streaming,
79
+ compact / context-prune passes, and automatic session titles.
80
+ - **Permissions, hooks, sandbox** — fine-grained allow / deny for shell,
81
+ filesystem, web-fetch, and skill invocations; user-defined hooks; sandbox
82
+ config with violation reporting.
83
+ - **Skills, agents, memory** — bundled and user skills; spawnable
84
+ worker agents and a coordinator for background tasks; a persistent memory
85
+ layer with recall and surfacing.
86
+ - **ACP server** — drive Rebon from an editor over stdio JSON-RPC:
87
+ `initialize`, `session/new`, `session/load`, `session/list`,
88
+ `session/prompt`, `session/cancel`, reverse-RPC permission prompts,
89
+ streamed tool output.
90
+
91
+ ## Common tasks
92
+
93
+ ```bash
94
+ # Start a fresh session in the current repo
95
+ rebon
96
+
97
+ # Resume the last session you worked on (use Tab in the TUI to browse)
98
+ rebon --resume <session-id>
99
+
100
+ # Plug Rebon into an editor over ACP (the editor manages stdio for you)
101
+ rebon --acp
102
+
103
+ # Override provider/model without editing config
104
+ rebon --provider anthropic --model claude-opus-4-7
105
+ ```
106
+
107
+ Inside the TUI:
108
+
109
+ - `?` — keyboard help
110
+ - `/` — slash-command picker
111
+ - `@` — file / symbol mention
112
+ - `Tab` — switch panel / list
113
+ - `Esc` — cancel current step or dismiss a dialog
114
+
115
+ ## Updating
116
+
117
+ `rebon` ships with a built-in updater that checks for new releases on launch.
118
+ You can also just rerun:
119
+
120
+ ```bash
121
+ npm install -g @rebon/cli@latest
122
+ ```
123
+
124
+ ## Troubleshooting
125
+
126
+ - **"missing optional platform package"** — reinstall without
127
+ `--omit=optional` / `--no-optional` / `--ignore-optional`.
128
+ - **"unsupported platform"** — your `process.platform`/`process.arch` is not
129
+ one of the five supported targets.
130
+ - **TUI looks scrambled** — make sure your terminal supports truecolor and
131
+ Unicode width tables (modern Windows Terminal, iTerm2, Alacritty, WezTerm,
132
+ Kitty all work). The legacy `cmd.exe` and `conhost` are not supported.
133
+ - **Logs** — check `$REBON_LOG_DIR/rebon.log` (TUI) or stderr (`--acp`).
package/bin/rebon ADDED
Binary file
package/package.json ADDED
@@ -0,0 +1,23 @@
1
+ {
2
+ "name": "@rebon/cli-darwin-x64",
3
+ "version": "0.1.3",
4
+ "description": "Agent cli for coding and more.",
5
+ "license": "MIT OR Apache-2.0",
6
+ "bin": {
7
+ "rebon": "bin/rebon"
8
+ },
9
+ "files": [
10
+ "bin",
11
+ "README.md",
12
+ "scripts"
13
+ ],
14
+ "os": [
15
+ "darwin"
16
+ ],
17
+ "cpu": [
18
+ "x64"
19
+ ],
20
+ "scripts": {
21
+ "postinstall": "node scripts/postinstall.js"
22
+ }
23
+ }
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+
3
+ const childProcess = require("child_process");
4
+ const fs = require("fs");
5
+ const path = require("path");
6
+
7
+ const INSTALL_SUPERVISOR_ENV = "REBON_INSTALL_SUPERVISOR";
8
+
9
+ function log(message) {
10
+ console.log(`[rebon postinstall] ${message}`);
11
+ }
12
+
13
+ function envFlagEnabled(value) {
14
+ return /^(1|true|yes|on)$/i.test(String(value || "").trim());
15
+ }
16
+
17
+ function supervisorHintMessage() {
18
+ return "background supervisor scheduler was not registered; run `rebon agents service install` to keep queued jobs moving after login, or set REBON_INSTALL_SUPERVISOR=1 before install to opt in.";
19
+ }
20
+
21
+ function packageRootFromScript() {
22
+ return path.resolve(__dirname, "..");
23
+ }
24
+
25
+ function installWindowsPayload(packageRoot) {
26
+ const {
27
+ installManagedPackage,
28
+ readPackageInfo,
29
+ requireManagedBinDir,
30
+ } = require("../lib/windows-managed");
31
+
32
+ requireManagedBinDir();
33
+ const packageInfo = readPackageInfo(packageRoot);
34
+ if (!fs.existsSync(packageInfo.payloadPath)) {
35
+ throw new Error(`payload executable is missing: ${packageInfo.payloadPath}`);
36
+ }
37
+
38
+ const managedExe = installManagedPackage(packageInfo);
39
+ if (!managedExe) {
40
+ throw new Error("could not install payload executable into managed bin directory");
41
+ }
42
+ return managedExe;
43
+ }
44
+
45
+ function packageExecutable(packageRoot, platform) {
46
+ if (platform === "win32") {
47
+ return installWindowsPayload(packageRoot);
48
+ }
49
+
50
+ const exePath = path.join(packageRoot, "bin", "rebon");
51
+ if (!fs.existsSync(exePath)) {
52
+ throw new Error(`payload executable is missing: ${exePath}`);
53
+ }
54
+
55
+ try {
56
+ fs.chmodSync(exePath, 0o755);
57
+ } catch (_) {
58
+ }
59
+ return exePath;
60
+ }
61
+
62
+ function installSupervisorScheduler(exePath, spawnSyncImpl) {
63
+ const result = spawnSyncImpl(exePath, ["agents", "service", "install"], {
64
+ stdio: "inherit",
65
+ windowsHide: true,
66
+ });
67
+
68
+ if (result.error) {
69
+ throw result.error;
70
+ }
71
+ if (result.status !== 0) {
72
+ throw new Error(`supervisor scheduler install exited with status ${result.status}`);
73
+ }
74
+ }
75
+
76
+ function runPostinstall(options = {}) {
77
+ const platform = options.platform || process.platform;
78
+ const env = options.env || process.env;
79
+ const logger = options.log || log;
80
+ const spawnSyncImpl = options.spawnSync || childProcess.spawnSync;
81
+ const packageRoot = options.packageRoot || packageRootFromScript();
82
+ const exePath = packageExecutable(packageRoot, platform);
83
+
84
+ logger(`installed ${exePath}`);
85
+
86
+ if (envFlagEnabled(env[INSTALL_SUPERVISOR_ENV])) {
87
+ logger(`registering per-user background supervisor scheduler because ${INSTALL_SUPERVISOR_ENV} is enabled`);
88
+ installSupervisorScheduler(exePath, spawnSyncImpl);
89
+ logger("registered background supervisor scheduler");
90
+ return;
91
+ }
92
+
93
+ logger(supervisorHintMessage());
94
+ }
95
+
96
+ try {
97
+ if (require.main === module) {
98
+ runPostinstall();
99
+ }
100
+ } catch (error) {
101
+ console.error(`[rebon postinstall] ${error.message}`);
102
+ process.exit(1);
103
+ }
104
+
105
+ module.exports = {
106
+ INSTALL_SUPERVISOR_ENV,
107
+ envFlagEnabled,
108
+ installSupervisorScheduler,
109
+ packageExecutable,
110
+ runPostinstall,
111
+ supervisorHintMessage,
112
+ };