install
source Β· Clone the upstream repo
git clone https://github.com/plurigrid/asi
Claude Code Β· Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/plurigrid/asi "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/bafishka" ~/.claude/skills/plurigrid-asi-bafishka-219f02 && rm -rf "$T"
manifest:
skills/bafishka/SKILL.mdsource content
Bafishka - Fish Shell + Clojure File Operations
π Rust-native Fish shell-friendly file operations with Steel-backed SCI Clojure evaluation.
Repository
- Source: https://github.com/bmorphism/bafishka
- Language: Clojure (SCI) + Rust
- Seed: 1069 (deterministic)
Core Concept
Bafishka bridges Fish shell ergonomics with Clojure's data processing power:
# Fish shell with Clojure evaluation baf '(map inc [1 2 3])' # => [2 3 4] # File operations with Clojure baf '(fs/glob "**/*.clj" | count)' # => 42
Architecture
ββββββββββββββββββββββββββββββββββββββββββββββββββββββ β Bafishka β ββββββββββββββββββββββββββββββββββββββββββββββββββββββ€ β ββββββββββββ ββββββββββββ ββββββββββββββββ β β β Fish β β Steel β β SCI β β β β Shell ββββΆβ (Rust) ββββΆβ (Clojure) β β β ββββββββββββ ββββββββββββ ββββββββββββββββ β β β β β β β βΌ βΌ βΌ β β Readline File I/O Data Xform β ββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Key Features
Steel Backend
Steel is a Rust Scheme implementation providing:
- Fast native execution
- Seamless Rust FFI
- Async I/O support
SCI Clojure
Small Clojure Interpreter for:
- Full Clojure core library
- REPL evaluation
- Babashka compatibility
Usage Examples
# List files with Clojure processing baf '(->> (fs/list-dir ".") (filter #(str/ends-with? % ".md")) (map fs/file-name))' # JSON processing baf '(-> (slurp "data.json") json/parse-string :items count)' # With deterministic seed (1069) baf '(gay/color 1069)' # Deterministic color
Integration with plurigrid/asi
With gay-mcp
;; File operations with color coding (defn colored-ls [dir] (->> (fs/list-dir dir) (map (fn [f] {:file f :color (gay/color (hash f))}))))
With duckdb-ies
;; Query DuckDB from bafishka (baf '(duck/query "SELECT * FROM files WHERE mtime > now() - interval 1 hour"))
Configuration
# ~/.config/fish/conf.d/bafishka.fish set -gx BAF_SEED 1069 set -gx BAF_HISTORY ~/.baf_history alias baf 'bafishka eval'
Related Skills
- Deterministic colorsgay-mcp
- Database integrationduckdb-ies
- Multi-language SPIpolyglot-spi
- REPL patternsabductive-repl