LLeMbas CLI 1.0.0
ci / check (push) Waiting to run

The first public release of LLeMbas CLI: a terminal coding agent and project manager for any LLM
API, with permission modes, git snapshots, memory and skills, knowledge bases, MCP, voice, and a
link to a LLeMbas instance whose web UI can work its sessions too. Signed Linux binaries for x64
and arm64.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
HomerandClaude Opus 5.5 committed 2026-10-09 21:59:03 +00:00
commit f9bad01ed7
355 files changed
+47028

No files matched your search

+22
View File
@@ -0,0 +1,22 @@
// A stand-in microphone: raw 16 kHz mono s16le on stdout — `tone` seconds of a loud 440 Hz tone,
// then silence until killed (or for `silence` seconds). Paced at 10× real time.
const [tone = "1", silence = "-1"] = process.argv.slice(2)
const RATE = 16000
const chunk = (loud: boolean, n: number, t0: number) => {
const b = new Uint8Array(n * 2)
const d = new DataView(b.buffer)
for (let i = 0; i < n; i++) d.setInt16(i * 2, loud ? Math.round(8000 * Math.sin((2 * Math.PI * 440 * (t0 + i)) / RATE)) : 0, true)
return b
}
process.on("SIGINT", () => process.exit(0))
const step = RATE / 10 // 0.1 s
let t = 0
while (true) {
const loud = t < Number(tone) * RATE
if (!loud && Number(silence) >= 0 && t >= (Number(tone) + Number(silence)) * RATE) break
process.stdout.write(chunk(loud, step, t))
t += step
await Bun.sleep(10)
}
export {}
+12
View File
@@ -0,0 +1,12 @@
// A stand-in piper: -m model -f out.wav, the text on stdin; writes a WAV whose data is the text.
const a = process.argv.slice(2)
const out = a[a.indexOf("-f") + 1]!
const model = a[a.indexOf("-m") + 1]!
if (!model.endsWith(".onnx")) {
console.error("no such model")
process.exit(2)
}
const text = new TextEncoder().encode(await new Response(Bun.stdin.stream()).text())
await Bun.write(out, new Uint8Array([...new TextEncoder().encode("RIFF"), ...text]))
export {}
+5
View File
@@ -0,0 +1,5 @@
// A stand-in audio player: notes the size of each file it is given, then "plays" for 50 ms.
import { appendFileSync, statSync } from "node:fs"
const file = process.argv[2]!
appendFileSync(process.env.PLAYLOG!, `${statSync(file).size}\n`)
await Bun.sleep(50)