Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Reptile Team REPL - UI

Tongue is the UI part of the reptile shared REPL. You use it to enter forms and see the results of evaluation. You can also watch your friends editing in real-time and share their REPL evaluations.

The technical implementation is a re-frame based Single Page Application (SPA).


REPtiLe connectivity

  • Multi-user REPL connectivity
  • Authenticated server access
  • Real-time keystrokes from all connected users

Other editors

  • Visibility controls

Clojure code support

  • Parinfer integration
  • Colorised edits / output
  • Show matching / balancing parens
  • Code completion / suggestions
  • Expose function documentation

Clojure evaluation

  • Shared REPL state
  • Shared, accessible history
  • Friendly exceptions
  • Incremental feedback on long running REPL evaluations
  • Cancel long running REPL evaluations


  • Add a library on demand (Maven & Git SHAs)


  • Secure REPtiLe server connection

REPtiLe developer features

  • Live reloadable client code
  • Live reloadable server code

User features under consideration post 1.0

  • Choice of editor key mappings
  • Per user name spaces
  • Automatic editor visibility based on activity
  • OpenID Connect Services eg GitHub


Running with a REPL:

clojure -A:fig:repl:body:body-path

Run application on the command line:

clojure -A:fig:dev:body:body-path

Figwheel will automatically push cljs changes to the browser.

Wait a bit, then browse to http://localhost:9500.

The REPtiLe server will be started in the background so there is no need to start a separate server in the development process.


The location of the back-end server is configurable.

The name of the server can be set in the min.cljs.edn by changing reptile.tongue.config/TAIL_SERVER

Please also checkout the REPtiLE configuration options

Local deps.edn configuration

Add some entries to the aliases section of ~/.clojure/deps.edn similar to these:

:aliases {
  :body/local {:override-deps {reptile-body {:local/root "/Users/your-name/dev/reptile-house/body"}}}
  :body/path {:extra-paths ["/Users/your-name/dev/reptile-house/body/dev"]}

And then run it from the command line:

clj -A:fig:dev:body/local:body/path

Production Build

clojure -A:fig:min

AWS S3 hosting

AWS S3 buckets can be configured to host web sites and thus be used to serve the UI.

The script is provided for building the code and syncing with an S3 bucket.

The script will also invalidate any configured CloudFront distribution.


Browser UI for REPtiLe - a shared REPL






No releases published


No packages published