Agent skill

clojure-eval-xtdb-xtdb

Stars 163
Forks 31

Install this agent skill to your Project

npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/development/clojure-eval-xtdb-xtdb

SKILL.md

Clojure REPL Evaluation

Evaluate Clojure code via nREPL using clj-nrepl-eval.

Discovering nREPL Servers

Before evaluating, discover available nREPL ports:

bash
clj-nrepl-eval --discover-ports

This scans .nrepl-port files and running JVM/Babashka processes in the current directory.

To see previously connected servers:

bash
clj-nrepl-eval --connected-ports

Starting a REPL in XTDB

Start the Gradle REPL:

bash
./gradlew :clojureRepl

For a specific port:

bash
./gradlew :clojureRepl -PreplPort=7888

Evaluating Code

Simple Expressions

bash
clj-nrepl-eval -p 7888 "(+ 1 2 3)"

Multiline Code (Heredoc)

Use heredoc for complex code to avoid escaping issues:

bash
clj-nrepl-eval -p 7888 <<'EOF'
(require '[xtdb.api :as xt])
(xt/status dev/node)
EOF

Piping Code

bash
echo "(+ 1 2 3)" | clj-nrepl-eval -p 7888

Session Persistence

Sessions persist by default. Each host:port has its own session file. State (vars, namespaces, loaded libraries) persists across invocations until the nREPL server restarts.

bash
# First call - define a var
clj-nrepl-eval -p 7888 "(def x 10)"

# Later call - x is still available
clj-nrepl-eval -p 7888 "(+ x 20)"

Reset Session

If session becomes corrupted:

bash
clj-nrepl-eval -p 7888 --reset-session

Or reset and evaluate:

bash
clj-nrepl-eval -p 7888 --reset-session "(def x 1)"

Common XTDB Workflows

Reload and Test a Namespace

bash
clj-nrepl-eval -p 7888 "(require 'xtdb.vector.reader :reload)"

Run Tests

bash
clj-nrepl-eval -p 7888 <<'EOF'
(require 'xtdb.vector.reader-test :reload)
(clojure.test/run-tests 'xtdb.vector.reader-test)
EOF

Check dev Node Status

bash
clj-nrepl-eval -p 7888 <<'EOF'
(require 'dev)
(in-ns 'dev)
(xt/status node)
EOF

Options

  • -p, --port PORT - nREPL port (required)
  • -H, --host HOST - nREPL host (default: 127.0.0.1)
  • -t, --timeout MILLISECONDS - Timeout (default: 120000)
  • -r, --reset-session - Reset persistent nREPL session
  • -c, --connected-ports - List active connections
  • -d, --discover-ports - Discover nREPL servers
  • -h, --help - Show help

When to Use

Use this skill to:

  • Verify code changes compile correctly
  • Test functions interactively
  • Run tests after modifications
  • Check REPL state during development

Do NOT use for:

  • File operations (use Read, Edit, Write, Glob, Grep instead)

Didn't find tool you were looking for?

Be as detailed as possible for better results