What I do
- •Set up Clojure development environment (deps.edn, CLI aliases)
- •Start interactive REPLs and connect to running processes
- •Run tests with clojure.test (single test, namespace, or full suite)
- •Apply clj-kondo linting and interpret its output
- •Manage dependencies and resolve version conflicts
- •Debug runtime issues using REPL-driven development
When to use me
Use me when working with Clojure projects, especially when:
- •Setting up or modifying deps.edn configurations
- •Writing or running tests
- •Debugging Clojure code interactively
- •Adding new dependencies or resolving conflicts
- •Linting code with clj-kondo
Common commands
- •
clojure -P- Download dependencies without running - •
clojure -M:alias- Run with alias (e.g.,:server,:test) - •
clojure -X:alias- Run with exec-style alias (key-value args) - •
clojure -M:repl- Start interactive REPL - •
clojure -X:test- Run tests (when configured) - •
clj-kondo --lint src- Lint source code
Testing patterns
- •Single test:
(clojure.test/test-var #'namespace/function-name) - •Namespace:
(clojure.test/run-tests 'namespace) - •Full suite: configured via test runner alias (e.g.,
:test) - •Use deterministic seeds for reproducible tests
REPL best practices
- •Connect to running REPLs via nREPL or socket REPL
- •Use
requirewith:reloadto reload modified code - •Evaluate expressions in the REPL to verify changes
- •Keep REPL sessions open for iterative development
Project structure
- •
deps.edn- Dependencies and aliases - •
src/- Source code following namespace convention - •
test/- Test files (-testsuffix) - •
resources/- Configuration files and static assets