원클릭으로
brepl
MANDATORY - Load this skill BEFORE using brepl in any way. Teaches the heredoc pattern for reliable code evaluation.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
MANDATORY - Load this skill BEFORE using brepl in any way. Teaches the heredoc pattern for reliable code evaluation.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
| name | brepl |
| description | MANDATORY - Load this skill BEFORE using brepl in any way. Teaches the heredoc pattern for reliable code evaluation. |
You MUST load this skill before using brepl. Do NOT attempt to use brepl without loading this skill first, or you will use incorrect syntax.
brepl is a REPL client for evaluating Clojure expressions. This skill teaches the heredoc pattern for reliable code evaluation.
Always load this skill before using brepl. Always use the heredoc pattern for all Clojure code evaluation.
Always use heredoc for brepl evaluation. This eliminates quoting issues, works for all cases, and provides a consistent, reliable pattern.
brepl <<'EOF'
(your clojure code here)
EOF
This is the simplest heredoc syntax - stdin feeds directly to brepl.
For simple one-liners, you can use positional arguments:
brepl '(+ 1 2 3)'
Heredoc is preferred for anything with quotes or multiple lines.
Note: The -e flag is optional - brepl automatically treats stdin and positional arguments as code to evaluate.
Important: Use <<'EOF' (with quotes) not <<EOF to prevent shell variable expansion.
Multi-line expressions:
brepl <<'EOF'
(require '[clojure.string :as str])
(str/join ", " ["a" "b" "c"])
EOF
Code with quotes:
brepl <<'EOF'
(println "String with 'single' and \"double\" quotes")
EOF
Reloading and testing:
brepl <<'EOF'
(require '[myapp.core] :reload)
(myapp.core/some-function "test" 123)
EOF
Complex data structures:
brepl <<'EOF'
(def config
{:database {:host "localhost"
:port 5432
:name "mydb"}
:api {:key "secret-key"
:endpoint "https://api.example.com"}})
(println (:database config))
EOF
Running tests:
brepl <<'EOF'
(require '[clojure.test :refer [run-tests]])
(require '[myapp.core-test] :reload)
(run-tests 'myapp.core-test)
EOF
For very simple expressions, you can use direct positional arguments:
# Simple expression
brepl '(inc 1)'
# Same with heredoc (consistent approach)
brepl <<'EOF'
(inc 1)
EOF
Why prefer heredoc: No mental overhead deciding which pattern to use, no risk of quoting issues, easy to extend.
To load an entire file into the REPL:
brepl -f src/myapp/core.clj
After loading, you can evaluate functions from that namespace using either pattern.
Use brepl balance to fix unbalanced brackets in Clojure files using parmezan:
# Fix file in place (default)
brepl balance src/myapp/core.clj
# Preview fix to stdout
brepl balance src/myapp/core.clj --dry-run
This is useful for recovering files with bracket errors.
brepl <<'EOF'
(require '[myapp.core] :reload-all)
EOF
brepl <<'EOF'
(require '[clojure.repl :refer [doc source]])
(doc map)
(source filter)
EOF
brepl <<'EOF'
*e
(require '[clojure.repl :refer [pst]])
(pst)
EOF
<<'EOF' not <<EOF to prevent shell expansionConsistency over optimization. While simple positional arguments work for basic cases, using heredoc everywhere means:
<<'EOF' and EOF is literalShell quoting with Clojure is error-prone: Clojure uses both single and double quotes, nested quotes require escaping, and reader macros can confuse the shell. Heredoc eliminates all these issues.
brepl documentation: https://github.com/licht1stein/brepl