Bafishka - Fish Shell + Clojure File Operations

SkillFiles & storage

🐟 Rust-native Fish shell-friendly file operations with Steel-backed SCI

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Bafishka - Fish Shell + Clojure File Operations skill

What this skill tells your AI

The instructions your AI receives, as published by plurigrid/asi in skills/bafishka/SKILL.md and read by ahel’s review.

🐟 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 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 colors
  • duckdb-ies - Database integration
  • polyglot-spi - Multi-language SPI
  • abductive-repl - REPL patterns

Signals

GitHub stars
64
Forks
12
Last commit
Jul 2026
Advanced
Catalog kind
skill
Gateway key
bafishka
Source
github.com/plurigrid/asi