A structured procedural language w/ a Lisp runtime / Rust ATProto bridge, to build a working TUI Bsky client
Common Lisp 72.1%
Rust 23.9%
Other 4.0%
13 1 0

Clone this repository

https://tangled.org/formerlab.tngl.sh/superplansky https://tangled.org/did:plc:lwy5gwqtuidigarad3bwhcsl/superplansky
git@tangled.org:formerlab.tngl.sh/superplansky git@tangled.org:did:plc:lwy5gwqtuidigarad3bwhcsl/superplansky

For self-hosted knots, clone URLs may differ based on your setup.

Download tar.gz
README.md

Superplan(sky)#

License: MIT Status: Experimental VS Code Support

A modern systems experiment built on historical programming language ideas.

Superplan is a structured, procedural programming language inspired by early high-level languages such as ALGOL, Plankalkül, and Superplan — reimagined for modern systems experimentation.

This repository contains a working system where Superplan programs interact with the AT Protocol (Bluesky) through a Lisp runtime and a Rust bridge.

Superplan terminal demo


Editor Support#

Superplan includes a VS Code language extension in:

editors/vscode/superplan

Superplan VS Code support

Current support includes:

  • syntax highlighting
  • snippets
  • .spl file association

Why Superplan#

This project explores a simple question:

What if early structured languages evolved directly into modern networked systems?

Instead of building everything in contemporary languages, this stack is deliberately split:

  • Superplan — visible application layer
  • Common Lisp — parser, AST, interpreter
  • Rust — protocol edge (AT Proto / Bluesky)

The result is a real system capable of:

  • login
  • profile lookup
  • home timeline fetch
  • posting content

Architecture#

Superplan (.spl)
      ↓
Lisp lexer / parser / AST / interpreter
      ↓
Bridge client (JSON over stdio)
      ↓
Rust AT Proto bridge
      ↓
Bluesky / AT Protocol

Example#

PROGRAM HELLO

BEGIN
    WRITE("HELLO SUPERPLAN")
END

Real Example (Bluesky)#

PROGRAM PROFILE

STRING ACTOR
JSON PROFILE

PROCEDURE SHOW_PROFILE(JSON PROFILE)
BEGIN
    WRITE("HANDLE:")
    WRITE(JSON_STRING(JSON_GET(PROFILE, "handle")))
END

BEGIN
    WRITE("ACTOR:")
    ACTOR = READLINE()
    PROFILE = ATP_PROFILE(ACTOR)
    CALL SHOW_PROFILE(PROFILE)
END

Getting Started#

Requirements#

  • SBCL (Common Lisp)
  • Rust / Cargo

Build the bridge#

cargo build --manifest-path bridge/Cargo.toml

Run the Superplan program#

sbcl --script lisp-tools/parser/run.lisp

Example Programs#

Located in:

superplan/examples/

Included:

  • home.spl — interactive client (timeline, profile, post, whoami)
  • profile.spl — profile lookup
  • post.spl — post creation

File Extension#

Superplan source files use:

.spl

(.sp is avoided due to GitHub Linguist mapping to SourcePawn)


Project Status#

Early but functional.

Currently working:

  • Superplan parsing and execution
  • terminal client written in Superplan
  • real Bluesky profile lookup
  • real authenticated timeline fetch
  • real post creation

Not yet implemented:

  • automatic token refresh
  • static type checking
  • compiled backend

Repo Layout#

  • docs/ — vision, spec, grammar, bridge ABI
  • superplan/examples/.spl programs
  • lisp-tools/parser/ — lexer, parser, AST, runner
  • lisp-tools/interpreter/ — runtime + bridge client
  • bridge/ — Rust AT Proto bridge
  • editors/vscode/superplan/ — VS Code language support

Design Influences#

  • ALGOL — structure and control flow
  • Plankalkül — typed data model thinking
  • Lisp — language tooling and meta-layer
  • modern API systems — practical integration

License#

MIT


Former Lab