Skip to content
vic

jbr/sibilant

Just another compile-to-js LISP-like language

jbr/sibilant.json
{
"createdAt": "2010-07-05T03:15:12Z",
"defaultBranch": "main",
"description": "Just another compile-to-js LISP-like language",
"fullName": "jbr/sibilant",
"homepage": "https://sibilant.org",
"language": "JavaScript",
"name": "sibilant",
"pushedAt": "2020-07-29T20:47:15Z",
"stargazersCount": 388,
"topics": [],
"updatedAt": "2025-08-07T15:20:03Z",
"url": "https://github.com/jbr/sibilant"
}

CI Gitter

  • Sibilant is a language that is parsed by javascript and compiles to javascript.
  • Sibilant is inspired by lisp and follows many lisp conventions, although it is still relatively close to the underlying javascript.
  • Macros can be defined in sibilant and included at compile time.
  • Sibilant is entirely written in sibilant.
  • Prefer verbose names to abbreviations by default.
  • Avoid line noise. Prefer established punctuation semantics from natural languages and common programming languages (eg commas come after things and mean a pause or separation).
  • Prefer readable and idiomatic javascript output, which necessitates sticking fairly closely to javascript semantics. Switching cost from sibilant to directly editing the output javascript should be low.
  • Prefer expressions to statements. This is the most notable exception to the adherance to idiomatic javascript. Self-executing functions are used extensively to this end.
  • Allow as much of the language to be modified in-source as possible. This includes the ability to rename/remove/redefine all keywords and macros.
  • Any language constructs that do not output readable javascript should be opt-in.
  • Add language features slowly, and only when there’s a real use case. Don’t blindly implement Lisp features without reasoning through the need.
  • Provide tools to simplify avoidance of repetition.

First, install node.js [ github ] and npm [ github ]. Then, it’s as simple as:

$ npm install sibilant -g
$ sibilant --help
$ sibilant
sibilant> (+ 1 2)
(1 + 2)
result: 3
sibilant> (console.log "hello world")
console.log("hello world")
hello world

sibilant.org includes an in-browser as-you-type sibilant compiler and tutorial, so you can get a sense of the language without leaving your browser.

The most up to date documentation is at sibilant.org and docs.sibilant.org. Also, check out sibilant itself, which is written 100% in sibilant to get a sense of what’s possible.

Sibilant is released under the MIT license (wikipedia).