Squint ClojureScript runtime for minimal JS output compilation
Status: ✅ Production Ready Author: Michiel Borkent (borkdude) Trit: 0 (ERGODIC - neutral transport) Stars: 1.2k+
Squint is a light-weight ClojureScript dialect that compiles to JavaScript with minimal runtime overhead. It's the "minimal" alternative in borkdude's browser runtime spectrum.
| Aspect | Squint | Cherry 🍒 | |--------|--------|-----------| | Runtime size | Minimal (~10KB) | Full cljs.core (~100KB) | | Semantics | JS-like | Full CLJS | | Data structures | JS objects/arrays | Persistent immutable | | Keywords | Strings | CLJS keywords | | Interop | Seamless | Requires macros | | JSX | ❌ | ✅ | | Use case | Small scripts, interop | Full applications |
npm install squint-cljs@latest
;; example.cljs
(ns example)
;; Functions compile to regular JS functions
(defn greet [name]
(str "Hello, " name "!"))
;; JS interop is seamless
(js/console.log (greet "World"))
;; Object destructuring works naturally
(defn process [{:keys [a b c]}]
(+ a b c))
(process #js {:a 1 :b 2 :c 3}) ; => 6
# Compile to JS
npx squint compile example.cljs
# Run directly
npx squint run example.cljs
Data structures are JS native:
{:a 1} ; => {a: 1} in JS (plain object)
[1 2 3] ; => [1, 2, 3] in JS (array)
Keywords become strings:
:foo ; => "foo" in JS
No persistent data structures (use JS mutation)
Faster interop (no conversion needed)
(ns squint.gay-colors)
;; SplitMix64 constants
(def GOLDEN 0x9E3779B97F4A7C15)
(def MASK64 0xFFFFFFFFFFFFFFFF)
(defn splitmix64 [state]
(let [s (bit-and (+ state GOLDEN) MASK64)
z (-> s
(bit-xor (unsigned-bit-shift-right s 30))
(* 0xBF58476D1CE4E5B9)
(bit-and MASK64))
z (-> z
(bit-xor (unsigned-bit-shift-right z 27))
(* 0x94D049BB133111EB)
(bit-and MASK64))]
(bit-xor z (unsigned-bit-shift-right z 31))))
(defn color-at [seed idx]
(loop [state seed i idx]
(if (zero? i)
(let [v (splitmix64 state)
l (+ 10 (* 85 (/ (bit-and v 0xFF) 255)))
c (* 100 (/ (bit-and (unsigned-bit-shift-right v 8) 0xFF) 255))
h (* 360 (/ (bit-and (unsigned-bit-shift-right v 16) 0xFFFF) 65535))]
{:L l :C c :H h})
(recur (splitmix64 state) (dec i)))))
just squint-compile file.cljs # Compile CLJS to JS
just squint-run file.cljs # Run CLJS file
just squint-watch # Watch mode compilation
Skill Name: squint-runtime Type: ClojureScript Compiler Trit: 0 (ERGODIC) Invariant: ✅ Deterministic compilation
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer