beeno_core 0.1.0

Core engine and provider runtime for the beeno CLI.
Documentation

beeno

beeno is a Rust CLI wrapper that uses the deno binary as execution backend and adds LLM-assisted pseudocode support for repl, eval, and run.

Commands

  • beeno init-config [--force]
  • beeno repl [--provider <id>] [--model <name>] [--policy <path>] [--json]
  • beeno dev [--file <path>] [--port 8080] [--open]
  • beeno eval "<input>" [--json]
  • beeno run <file> [--json]

Install via curl

Use the installer script (downloads the right release archive, verifies checksum, and installs to ~/.local/bin by default):

curl -fsSL https://raw.githubusercontent.com/arvid/beeno/main/install.sh | sh

Install a specific release:

curl -fsSL https://raw.githubusercontent.com/arvid/beeno/main/install.sh | VERSION=v0.2.0 sh

Install to a different path:

curl -fsSL https://raw.githubusercontent.com/arvid/beeno/main/install.sh | INSTALL_DIR=/usr/local/bin sh

The release workflow publishes archives named beeno-v{version}-{target}.{tar.gz|zip} plus SHA256SUMS.txt. Windows assets are published as beeno-v{version}-x86_64-pc-windows-msvc.zip.

Checksum verification examples

macOS:

shasum -a 256 -c SHA256SUMS.txt

Linux:

sha256sum -c SHA256SUMS.txt

Configuration

Beeno uses .beeno.toml in project root, with optional fallback to ~/.beeno.toml.

Precedence order:

  1. CLI flags
  2. Environment variables
  3. Local .beeno.toml
  4. Home ~/.beeno.toml
  5. Built-in defaults

Provider support:

  • provider = "ollama" for local models (endpoint default: http://127.0.0.1:11434/api/generate)
  • provider = "chatgpt" for OpenAI Chat Completions API
  • provider = "openrouter" for OpenRouter Chat Completions API
  • provider = "openai_compat" for custom OpenAI-compatible URLs
  • provider = "http" for legacy custom endpoint returning { "code": "..." }
  • provider = "mock" for local testing

Use llm.endpoint (or env var referenced by llm.endpoint_env_var) to override provider URL.

Documentation

  • docs/architecture.md - module/runtime overview
  • docs/dev-mode.md - beeno dev behavior and commands
  • docs/testing.md - testing strategy and coverage targets
  • docs/agentic-development.md - contributor/agent workflow guardrails

Notes

  • Native JS/TS is classified and executed without translation when possible.
  • Pseudocode is translated through a provider adapter before AST policy checks.
  • Tagged script blocks (/*nl ... */) are translated and inlined.
  • REPL supports background server workflow:
    • /serve-js <code> / /serve-nl <pseudocode>
    • /serve-hotfix-js <code> / /serve-hotfix-nl <pseudocode>
    • /serve-status, /serve-stop, /serve-port <port>
    • prompts to open the hosted page in your default browser
  • beeno dev starts a dedicated long-running dev server shell with hotfix commands:
    • /status, /open, /restart, /hotfix-js, /hotfix-nl, /stop, /start, /quit

Maintainer release notes

  • Release automation lives in .github/workflows/release.yml
  • crates.io publish auth uses trusted publishing (GitHub OIDC), not a long-lived token.
  • Configure trusted publishers on crates.io for both beeno_core and beeno to allow this repository/workflow/environment (release) to publish.
  • Versioning is tag-driven: on release events, CI syncs Cargo versions from the release tag (for example v0.2.0 -> 0.2.0) before publish/build.
  • On Release -> Publish release, CI runs license checks, publishes beeno_core then beeno to crates.io, builds Tier-1 binaries, generates SHA256SUMS.txt, and uploads all artifacts.
  • Optional dry-run validation: run release via workflow_dispatch with publish_crates = false and optionally set release_version to simulate tag-driven builds.