bafishka
π Rust-native Fish shell-friendly file operations with Steel-backed SCI
When & Why to Use This Skill
Bafishka is a high-performance, Rust-native utility designed to bridge the ergonomics of the Fish shell with the powerful data processing capabilities of Clojure. By utilizing the Small Clojure Interpreter (SCI) and a Steel-backed Rust backend, it allows developers to execute complex file operations, functional data transformations, and deterministic scripting directly within their shell environment with native speed.
Use Cases
- Advanced File Manipulation: Perform complex file filtering, batch renaming, and directory traversal using Clojure's functional paradigms (map, filter, reduce) directly in the Fish shell.
- Streamlined Data Processing: Parse and transform JSON, EDN, or text data from the command line without needing to write external scripts, leveraging Clojure's robust standard library.
- DevOps Automation: Create fast, deterministic shell automation workflows that combine the readability of Fish shell with the logic and safety of a Rust-powered Clojure interpreter.
- Cross-Tool Integration: Seamlessly connect shell outputs with other developer tools like DuckDB or specialized MCPs for enhanced data analysis and system management.
| name | bafishka |
|---|---|
| description | π Rust-native Fish shell-friendly file operations with Steel-backed SCI |
| version | 1.0.0 |
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
gay-mcp- Deterministic colorsduckdb-ies- Database integrationpolyglot-spi- Multi-language SPIabductive-repl- REPL patterns
Scientific Skill Interleaving
This skill connects to the K-Dense-AI/claude-scientific-skills ecosystem:
Graph Theory
- networkx [β] via bicomodule
- Universal graph hub
Bibliography References
general: 734 citations in bib.duckdb
Cat# Integration
This skill maps to Cat# = Comod(P) as a bicomodule in the equipment structure:
Trit: 0 (ERGODIC)
Home: Prof
Poly Op: β
Kan Role: Adj
Color: #26D826
GF(3) Naturality
The skill participates in triads satisfying:
(-1) + (0) + (+1) β‘ 0 (mod 3)
This ensures compositional coherence in the Cat# equipment structure.