bafishka

Original๏ผš๐Ÿ‡บ๐Ÿ‡ธ English
Translated

๐ŸŸ Rust-native Fish shell-friendly file operations with Steel-backed SCI Clojure evaluation.

7installs
Added on

NPX Install

npx skill4agent add plurigrid/asi bafishka

Tags

Translated version includes tags in frontmatter

Bafishka - Fish Shell + Clojure File Operations

๐ŸŸ Rust-native Fish shell-friendly file operations with Steel-backed SCI Clojure evaluation.

Repository

Core Concept

Bafishka bridges Fish shell ergonomics with Clojure's data processing power:
fish
# 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

fish
# 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

clojure
;; 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

clojure
;; Query DuckDB from bafishka
(baf '(duck/query "SELECT * FROM files WHERE mtime > now() - interval 1 hour"))

Configuration

fish
# ~/.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 colors
  • duckdb-ies
    - Database integration
  • polyglot-spi
    - Multi-language SPI
  • abductive-repl
    - REPL patterns