Skip to content
    ↑↓ select↵ openesc close
    English中文
    kalkidanyishakz

    Lisp

    v1.0.0Other
    opencode-plugin-lisp

    OpenCode plugin that runs a persistent SBCL (Steel Bank Common Lisp) sidecar for evaluating Common Lisp expressions.

    GitHub stars

    0

    Monthly installs

    123

    123 in 7 days

    Composite scoreSCORE

    32.9

    Multi-signal model

    Last commit

    1 day ago

    2026-08-18

    Install and configure

    opencode.json

    Writes to this project's opencode.json — applies to this repository only.

    opencode.json

    {
      "$schema": "https://opencode.ai/config.json",
      "plugin": ["opencode-plugin-lisp@1.0.0"]
    }

    opencode loads npm dependencies through its embedded runtime on startup and caches them locally — no manual global install needed.

    OpenCode plugin that runs a persistent SBCL (Steel Bank Common Lisp) sidecar for evaluating Common Lisp expressions.

    State, packages, and defvars persist across evaluations for the lifetime of the sidecar process.

    Prerequisites

    You need SBCL installed on your system:

    # macOS
    brew install sbcl
    
    # Ubuntu / Debian
    sudo apt install sbcl
    
    # Fedora
    sudo dnf install sbcl
    
    # Windows — download from https://www.sbcl.org
    

    Installation

    Add the plugin to your opencode.json:

    {
      "$schema": "https://opencode.ai/config.json",
      "plugin": ["opencode-plugin-lisp"]
    }
    

    OpenCode will automatically install the plugin via Bun on startup.

    Usage

    The plugin provides two tools:

    lisp_eval

    Evaluate a Common Lisp expression in the persistent SBCL sidecar. The expression must be a single line.

    lisp_eval code="(let ((x 40)) (+ x 2))"
    

    Returns the printed value, its type, and any output the expression wrote.

    lisp_reset

    Clear the sidecar's observation history.

    lisp_reset
    

    Configuration

    Environment Variable Default Description
    OPL_SBCL sbcl Path to the SBCL binary
    OPL_DEBUG 0 Set to 1 to enable debug logging

    How It Works

    The plugin spawns a persistent SBCL subprocess that communicates over stdin/stdout using a simple line-based, tab-separated protocol. The sidecar maintains state between evaluations — variables, packages, and definitions persist until the process is restarted.

    The plugin also observes chat messages and tool calls via OpenCode hooks, feeding context to the sidecar's history buffer.

    License

    MIT