suzumearch 0.2.12 → 0.2.14
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 +111 -50
- package/{suzume.cjs → bin/suzume.cjs} +2 -1
- package/cli.mjs +1727 -1716
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -1,90 +1,151 @@
|
|
|
1
1
|
# SuzumeArch
|
|
2
2
|
|
|
3
|
-
SuzumeArch is an independent
|
|
4
|
-
|
|
5
|
-
Anthropic software.
|
|
3
|
+
SuzumeArch is an independent terminal AI coding CLI. It is not affiliated with,
|
|
4
|
+
endorsed by, sponsored by, or presented as Anthropic software.
|
|
6
5
|
|
|
7
|
-
|
|
8
|
-
external model provider support, and optional local web search through SearXNG.
|
|
6
|
+
## Requirements
|
|
9
7
|
|
|
10
|
-
|
|
8
|
+
- Windows, macOS, Linux, or WSL
|
|
9
|
+
- Git
|
|
10
|
+
- Node.js 22 or newer
|
|
11
|
+
- Bun 1.1 or newer
|
|
12
|
+
- At least one model-provider API key, such as `ANTHROPIC_API_KEY`,
|
|
13
|
+
`OPENAI_API_KEY`, or `OPENROUTER_API_KEY`
|
|
14
|
+
|
|
15
|
+
## Install From Source
|
|
11
16
|
|
|
12
17
|
```bash
|
|
18
|
+
git clone https://github.com/forsterdev/suzume-arch.git
|
|
19
|
+
cd suzume-arch
|
|
13
20
|
bun install
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
PowerShell uses the same commands:
|
|
24
|
+
|
|
25
|
+
```powershell
|
|
26
|
+
git clone https://github.com/forsterdev/suzume-arch.git
|
|
27
|
+
cd suzume-arch
|
|
28
|
+
bun install
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Set the provider key for your shell:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
export ANTHROPIC_API_KEY="sk-..."
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
```powershell
|
|
38
|
+
$env:ANTHROPIC_API_KEY="sk-..."
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Run the CLI from the repository:
|
|
42
|
+
|
|
43
|
+
```bash
|
|
14
44
|
bun run suzume
|
|
15
45
|
```
|
|
16
46
|
|
|
17
|
-
|
|
47
|
+
## Build The CLI
|
|
18
48
|
|
|
19
49
|
```bash
|
|
20
|
-
bun run lint
|
|
21
|
-
bun run typecheck
|
|
22
50
|
bun run build:prod
|
|
51
|
+
node dist/cli.mjs --version
|
|
52
|
+
bun dist/cli.mjs --version
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
The npm package name is `suzumearch`, with command entry points `suzume` and
|
|
56
|
+
`szm`. The manifest is currently marked `private`; remove that flag before
|
|
57
|
+
publishing to npm. After publishing, install it with:
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
npm install -g suzumearch
|
|
61
|
+
suzume
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
For local package testing:
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
npm link
|
|
68
|
+
suzume --version
|
|
23
69
|
```
|
|
24
70
|
|
|
25
|
-
|
|
71
|
+
## Common Checks
|
|
72
|
+
|
|
73
|
+
Recommended full verification:
|
|
26
74
|
|
|
27
75
|
```bash
|
|
76
|
+
bun install
|
|
77
|
+
bun run typecheck
|
|
78
|
+
bun run lint
|
|
79
|
+
bun run build:prod
|
|
28
80
|
node dist/cli.mjs --version
|
|
29
81
|
bun dist/cli.mjs --version
|
|
30
82
|
```
|
|
31
83
|
|
|
32
|
-
|
|
84
|
+
Fast local checks while developing:
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
bun run lint
|
|
88
|
+
bun run typecheck
|
|
89
|
+
```
|
|
33
90
|
|
|
34
|
-
|
|
91
|
+
## Scheduling And Recaps
|
|
92
|
+
|
|
93
|
+
- Ask naturally, for example `remind me at 3pm to push the release branch`.
|
|
94
|
+
SuzumeArch should use `CronCreate` for one-shot reminders.
|
|
95
|
+
- Use `/schedule` to create, list, update, or run local scheduled routines.
|
|
96
|
+
- Use `/tasks` to inspect running background shell or agent work.
|
|
97
|
+
- Use `/recap` for an on-demand one-line session recap. Automatic recaps can be
|
|
98
|
+
toggled in `/config`.
|
|
99
|
+
|
|
100
|
+
Session-only scheduled tasks stop when SuzumeArch exits. Durable tasks are stored
|
|
101
|
+
in `.suzume/scheduled_tasks.json` when the model explicitly creates them that
|
|
102
|
+
way.
|
|
103
|
+
|
|
104
|
+
## Discord Bot Bridge
|
|
105
|
+
|
|
106
|
+
Configure the bot:
|
|
35
107
|
|
|
36
108
|
```bash
|
|
37
|
-
export
|
|
109
|
+
export DISCORD_BOT_TOKEN="..."
|
|
110
|
+
export DISCORD_CHANNEL_ID="..."
|
|
38
111
|
```
|
|
39
112
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
{
|
|
44
|
-
"plugins": {
|
|
45
|
-
"entries": {
|
|
46
|
-
"searxng": {
|
|
47
|
-
"config": {
|
|
48
|
-
"webSearch": {
|
|
49
|
-
"baseUrl": "http://localhost:8888",
|
|
50
|
-
"categories": "general,news",
|
|
51
|
-
"language": "en"
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
}
|
|
113
|
+
```powershell
|
|
114
|
+
$env:DISCORD_BOT_TOKEN="..."
|
|
115
|
+
$env:DISCORD_CHANNEL_ID="..."
|
|
58
116
|
```
|
|
59
117
|
|
|
60
|
-
|
|
61
|
-
|
|
118
|
+
Then run `/discord on` inside SuzumeArch. `/discord` opens the configuration
|
|
119
|
+
menu; `/discord status` prints the active settings.
|
|
62
120
|
|
|
63
|
-
|
|
121
|
+
Warning: Discord mode automatically switches the session to
|
|
122
|
+
`bypassPermissions` by default. Anyone who can post in the configured Discord
|
|
123
|
+
channel can trigger tools and shell commands without per-action prompts. Use a
|
|
124
|
+
private channel and a dedicated bot token.
|
|
64
125
|
|
|
65
|
-
|
|
126
|
+
## Web Search
|
|
127
|
+
|
|
128
|
+
SuzumeArch can use a self-hosted SearXNG instance for external models:
|
|
66
129
|
|
|
67
130
|
```bash
|
|
68
|
-
|
|
69
|
-
npm install
|
|
70
|
-
npm run build
|
|
71
|
-
npm start
|
|
131
|
+
export SEARXNG_BASE_URL="http://localhost:8888"
|
|
72
132
|
```
|
|
73
133
|
|
|
74
|
-
Use `
|
|
75
|
-
|
|
134
|
+
Use `/web-search` in the CLI to install, start, stop, or configure a managed
|
|
135
|
+
SearXNG instance.
|
|
76
136
|
|
|
77
137
|
## Web Terminal
|
|
78
138
|
|
|
79
|
-
The
|
|
80
|
-
Required runtime settings:
|
|
139
|
+
The browser-facing PTY server lives at `src/server/web/pty-server.ts`:
|
|
81
140
|
|
|
82
|
-
|
|
83
|
-
-
|
|
84
|
-
|
|
141
|
+
```bash
|
|
142
|
+
bun src/server/web/pty-server.ts
|
|
143
|
+
```
|
|
85
144
|
|
|
86
|
-
|
|
145
|
+
Runtime settings:
|
|
87
146
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
147
|
+
- `PORT`, default `3000`
|
|
148
|
+
- `AUTH_TOKEN`
|
|
149
|
+
- `MAX_SESSIONS`
|
|
150
|
+
- `ALLOWED_ORIGINS`
|
|
151
|
+
- The required model-provider API key
|
|
@@ -16,7 +16,8 @@ var pathToFileURL = require("url").pathToFileURL;
|
|
|
16
16
|
// (ERR_UNSUPPORTED_ESM_URL_SCHEME — the drive letter "c:" is parsed as
|
|
17
17
|
// a URL scheme). Convert to a file:// URL so the ESM loader accepts it
|
|
18
18
|
// on every platform.
|
|
19
|
-
|
|
19
|
+
// Preflight lives in bin/, cli.mjs sits one level up at the package root.
|
|
20
|
+
var entry = pathToFileURL(path.join(__dirname, "..", "cli.mjs")).href;
|
|
20
21
|
import(entry).catch(function (err) {
|
|
21
22
|
process.stderr.write(String(err && err.stack || err) + "\n");
|
|
22
23
|
process.exit(1);
|