Skillsclojure-repl-evaluation
C

clojure-repl-evaluation

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

xtdb
2.9k stars
58.1k downloads
Updated 6d ago

Readme

clojure-repl-evaluation follows the SKILL.md standard. Use the install command to add it to your agent stack.

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

Install

Requires askill CLI v1.0+

Metadata

LicenseUnknown
Version-
Updated6d ago
Publisherxtdb

Tags

apitesting