clojure-symbols
SKILL.md
Clojure Symbols Skill
Use clj-kondo for static analysis and clj-nrepl-eval for REPL introspection to find Clojure symbols.
For non-Clojure languages, use the code-symbols skill instead.
Prerequisites
clj-kondo
# Arch Linux
sudo pacman -S clj-kondo
# Homebrew
brew install borkdude/brew/clj-kondo
# Script
curl -sLO https://raw.githubusercontent.com/clj-kondo/clj-kondo/master/script/install-clj-kondo
chmod +x install-clj-kondo && ./install-clj-kondo
clj-nrepl-eval
Discover running nREPL servers:
clj-nrepl-eval --discover-ports
Quick Reference
| Task | Tool | Command |
|---|---|---|
| List symbols in file | clj-kondo | clj-kondo --lint file.clj --config '{...}' |
| Find definition | clj-kondo | Filter var-definitions by name |
| Find usages | clj-kondo | Filter var-usages by name |
| Get var metadata | REPL | (meta #'ns/var) |
| Get source | REPL | (clojure.repl/source fn) |
Core clj-kondo Commands
Note: JSON keys use hyphens (e.g., var-definitions), so use bracket notation in jq.
Find Symbol Definition
clj-kondo --lint src components bases \
--config '{:output {:format :json}, :analysis {:var-definitions true}}' \
| jq '.analysis["var-definitions"][] | select(.name == "my-function")'
Find Symbol Usages
clj-kondo --lint src components bases \
--config '{:output {:format :json}, :analysis {:var-usages true}}' \
| jq '.analysis["var-usages"][] | select(.name == "my-function")'
List Symbols in File
clj-kondo --lint path/to/file.clj \
--config '{:output {:format :json}, :analysis {:var-definitions true}}' \
| jq '.analysis["var-definitions"]'
Output Fields
var-definitions:
filename,row,col,end-row,end-col- Locationns,name- Identitydefined-by- Defining form (e.g.,clojure.core/defn)fixed-arities,doc,private
var-usages:
from,to- Source and target namespacesname,arity- Symbol name and call arityfrom-var- Containing functionrow,col- Location
Core REPL Commands
# Get var metadata
clj-nrepl-eval -p PORT "(meta #'my.namespace/my-function)"
# Get source code
clj-nrepl-eval -p PORT "(clojure.repl/source my-function)"
# List namespace contents
clj-nrepl-eval -p PORT "(dir my.namespace)"
# Search by pattern
clj-nrepl-eval -p PORT "(clojure.repl/apropos \"pattern\")"
Common Workflow
Find Definition and All Usages
# Find definition
clj-kondo --lint . \
--config '{:output {:format :json}, :analysis {:var-definitions true}}' \
| jq '.analysis["var-definitions"][] | select(.name == "target-fn") | {ns, name, filename, row}'
# Find all usages
clj-kondo --lint . \
--config '{:output {:format :json}, :analysis {:var-usages true}}' \
| jq '.analysis["var-usages"][] | select(.name == "target-fn") | {from, "from-var", filename, row}'
Find Usages of a Namespace
clj-kondo --lint bases components \
--config '{:output {:format :json}, :analysis {:var-usages true}}' \
| jq '.analysis["var-usages"][] | select(.to == "my.namespace") | {from, name, filename, row}'
Additional References
- clj-kondo details: See references/kondo.md for full analysis options
- REPL introspection: See references/repl.md for REPL commands
- Editing/renaming: See references/editing.md for rename workflows
Weekly Installs
3
Repository
brettatoms/agent-skillsFirst Seen
Feb 28, 2026
Security Audits
Installed on
opencode3
gemini-cli3
github-copilot3
amp3
cline3
codex3