smithery/plurigrid

ies-flox

FloxHub publication `bmorphism/ies` - a focused development environment for Clojure, Julia, Python, and multimedia with Gay.jl/Gay.bb deterministic coloring integration.

Installation

$ npx skills add smithery/plurigrid --skill ies-flox

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smithery/plurigrid · top by installs.

npx skills add smithery/plurigrid

Browse all from smithery/plurigrid

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Skill metadata

Parsed from SKILL.md frontmatter.

More metadata
trit
0

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 7,613 B
  • docs SUMMARY.md 87 B

History

  1. First recorded snapshot · 0 installs

SKILL.md

ies-flox

FloxHub publication bmorphism/ies - a focused development environment for Clojure, Julia, Python, and multimedia with Gay.jl/Gay.bb deterministic coloring integration.

Interleaving with effective-topos

Property ies-flox effective-topos
Focus Data/scripting Systems/languages
Packages 10 62
Man pages 59 606
Key tools babashka, julia, ffmpeg guile, ghc, cargo
Coloring Gay.bb (Clojure) Gay.jl (Julia)

Connection Points

  • Clojure ↔ Guile: Both Lisps, both support reader macros
  • Julia ↔ OCaml: Both ML-influenced, both have ADTs
  • ffmpeg ↔ imagemagick: Media processing pipelines
  • tailscale ↔ guile-goblins: Distributed networking

Quick Activation

# Activate
flox activate -d ~/ies

# Environment includes
echo $GAY_SEED      # 69
echo $GAY_PORT      # 42069
echo $GAY_INTERVAL  # 30

Installed Packages (10)

Package Version Man Pages Description
babashka 1.12.208 bb(1) Clojure scripting
clojure 1.12.2.1565 clj(1), clojure(1) JVM Lisp
jdk 21.0.8 java(1) + 45 tools OpenJDK
julia-bin 1.11.7 julia(1) Technical computing
ffmpeg 7.1.1 ffmpeg(1) + 10 tools Media processing
python312 3.12.11 python3(1) Python interpreter
coreutils 9.8 100+ commands GNU utilities
tailscale 1.88.4 tailscale(1) Mesh VPN
enchant2 2.6.9 enchant(1) Spell checking
pkg-config 0.29.2 pkg-config(1) Build configuration

Babashka (Clojure Scripting)

#!/usr/bin/env bb

;; Fast Clojure scripting without JVM startup
;; Includes: http, json, csv, yaml, sql, shell, fs

(require '[babashka.http-client :as http])
(require '[cheshire.core :as json])

;; HTTP request
(-> (http/get "https://api.github.com/users/bmorphism")
    :body
    (json/parse-string true)
    :public_repos)

;; File operations
(require '[babashka.fs :as fs])
(fs/glob "." "**/*.clj")

;; Shell commands
(require '[babashka.process :as p])
(-> (p/shell "ls -la") :out slurp)

;; Tasks in bb.edn
{:tasks
 {:build (shell "make")
  :test  (shell "make test")
  :repl  (babashka.nrepl.server/start-server! {:port 1667})}}

Babashka + Gay Integration

;; gay.bb - deterministic coloring for Clojure
(def gay-seed (parse-long (or (System/getenv "GAY_SEED") "69")))

(defn splitmix64 [state]
  (let [z (unchecked-add state 0x9e3779b97f4a7c15)]
    [(unchecked-multiply
       (bit-xor z (unsigned-bit-shift-right z 30))
       0xbf58476d1ce4e5b9)
     z]))

(defn gay-color [index seed]
  (let [[h _] (splitmix64 (+ seed index))
        hue (mod (/ (bit-and h 0xFFFF) 65535.0) 1.0)]
    {:hue hue
     :hex (format "#%06X" (bit-and h 0xFFFFFF))}))

Julia Integration

# julia --project=$GAY_MCP_PROJECT
using Gay

# Environment seed
const SEED = parse(Int, get(ENV, "GAY_SEED", "69"))
Gay.set_seed!(SEED)

# Color IES packages
ies_packages = [
    "babashka", "clojure", "jdk", "julia-bin", "ffmpeg",
    "python312", "coreutils", "tailscale", "enchant2", "pkg-config"
]

for (i, pkg) in enumerate(ies_packages)
    color = Gay.color_at(i)
    println("$pkg: $(color.hex)")
end

FFmpeg Quick Reference

# Convert formats
ffmpeg -i input.mov -c:v libx264 output.mp4

# Extract audio
ffmpeg -i video.mp4 -vn -c:a aac audio.m4a

# Resize video
ffmpeg -i input.mp4 -vf scale=1280:720 output.mp4

# Create GIF
ffmpeg -i input.mp4 -vf "fps=10,scale=320:-1" output.gif

# Concatenate
ffmpeg -f concat -i list.txt -c copy output.mp4

# Screen capture (macOS)
ffmpeg -f avfoundation -i "1" -t 10 capture.mp4

# Stream to stdout
ffmpeg -i input.mp4 -f mpegts - | ...

Clojure (JVM)

# Start REPL
clj

# With aliases
clj -A:dev:test

# Run script
clojure -M -m myapp.core

# Dependency tree
clj -Stree

# Execute function
clojure -X:deploy

# deps.edn structure
{:deps {org.clojure/clojure {:mvn/version "1.12.0"}}
 :aliases {:dev {:extra-paths ["dev"]}}}

Python Integration

#!/usr/bin/env python3
"""Gay.py - port of Gay.jl for Python"""

def splitmix64(state: int) -> tuple[int, int]:
    z = (state + 0x9e3779b97f4a7c15) & 0xFFFFFFFFFFFFFFFF
    z = ((z ^ (z >> 30)) * 0xBF58476D1CE4E5B9) & 0xFFFFFFFFFFFFFFFF
    z = ((z ^ (z >> 27)) * 0x94D049BB133111EB) & 0xFFFFFFFFFFFFFFFF
    return z ^ (z >> 31), state

def gay_color(index: int, seed: int = 69) -> str:
    h, _ = splitmix64(seed + index)
    return f"#{h & 0xFFFFFF:06X}"

# Color IES packages
packages = ["babashka", "clojure", "jdk", "julia-bin", "ffmpeg"]
for i, pkg in enumerate(packages, 1):
    print(f"{pkg}: {gay_color(i)}")

Services

# From manifest.toml
[services]
gaybb.command = "./gaybb_daemon.sh"
gaybb.shutdown.command = "pkill -f gaybb_daemon"
# Start Gay.bb daemon
flox services start

# Check status
flox services status

# Stop
flox services stop

Tailscale Integration

# Connect to tailnet
tailscale up

# Check status
tailscale status

# SSH to peer
tailscale ssh hostname

# Serve locally
tailscale serve http://localhost:8080

# Funnel (public internet)
tailscale funnel https://localhost:443

Tailscale + Gay.bb

;; Use tailscale for Gay.bb peer discovery
(require '[babashka.process :as p])

(defn tailscale-peers []
  (-> (p/shell {:out :string} "tailscale status --json")
      :out
      (json/parse-string true)
      :Peer
      vals
      (->> (map :HostName))))

(defn broadcast-gay-seed! [seed]
  (doseq [peer (tailscale-peers)]
    (p/shell (format "tailscale ssh %s 'export GAY_SEED=%d'" peer seed))))

Aliases

# From profile
alias gaybb="bb gay.bb"
alias gaymcp="julia --project=$GAY_MCP_PROJECT $GAY_MCP_PROJECT/bin/gay-mcp"

Connection to effective-topos

The ies-flox environment is designed to interoperate with effective-topos:

# Activate both environments
flox activate -d ~/.topos  # effective-topos (guile, ghc, cargo)
flox activate -d ~/ies     # ies-flox (bb, julia, ffmpeg)

# Or compose them
cd ~/ies
flox edit  # Add include:
# [include]
# environments = [{ remote = "bmorphism/effective-topos" }]

Triadic Workflow

Trit 0 (Analysis):    julia → analyze data
Trit 1 (Transform):   bb → process with Clojure
Trit 2 (Output):      ffmpeg → render media
;; bb pipeline
(defn triadic-pipeline [input-file]
  (let [;; Trit 0: Julia analysis
        analysis (-> (p/shell {:out :string} 
                       (format "julia -e 'using JSON; println(JSON.json(analyze(\"%s\")))'" 
                               input-file))
                     :out
                     json/parse-string)
        ;; Trit 1: Clojure transform
        transformed (transform-data analysis)
        ;; Trit 2: FFmpeg render
        _ (p/shell (format "ffmpeg -i %s -vf 'eq=gamma=%f' output.mp4"
                           input-file
                           (:gamma transformed)))]
    {:analysis analysis
     :output "output.mp4"}))

FloxHub Publication