Skip to main content

portal

A clojure tool to navigate through your data.

cljdoc Clojars Project PyPI VS Code Extension Version Get help on Slack

The portal UI can be used to inspect values of various shapes and sizes. The UX will probably evolve over time and user feedback is welcome!

For an in-depth explanation of the UI, you can jump to the UI docs.

Demo

To get an overview of the Portal UI and workflow, checkout the following recording of a live demo I gave for London Clojurians.

London Clojurians Demo

More video presentations on Portal can be found here.

Usage

To start a repl with portal, run the clojure >= 1.10.0 cli with:

clj -Sdeps '{:deps {djblue/portal {:mvn/version "0.68.1"}}}'

or for a web clojurescript >= 1.10.773 repl, do:

clj -Sdeps '{:deps {djblue/portal {:mvn/version "0.68.1"}
                    org.clojure/clojurescript {:mvn/version "1.10.844"}}}' \
    -m cljs.main

or for a node clojurescript >= 1.10.773 repl, do:

clj -Sdeps '{:deps {djblue/portal {:mvn/version "0.68.1"}
                    org.clojure/clojurescript {:mvn/version "1.10.844"}}}' \
    -m cljs.main -re node

or for a babashka >=0.2.4 repl, do:

bb -Sdeps '{:deps {djblue/portal {:mvn/version "0.68.1"}}}'

or for a lein project.clj, add:

{:profiles {:dev {:dependencies [[djblue/portal "0.68.1"]]}}}

or as a global profile, add to ~/.lein/profiles.clj:

{:portal {:dependencies [[djblue/portal "0.68.1"]]}}

or for Clojure CLR, checkout this example project,

or for examples on how to integrate portal into an existing project, look through the examples directory.

API

Try the portal api with the following commands:

;; for node and jvm
(require '[portal.api :as p])

;; for web
;; NOTE: you might need to enable popups for the portal ui to work in the
;; browser.
(require '[portal.web :as p])


(def p (p/open)) ; Open a new inspector

;; or with an extension installed, do:
(def p (p/open {:launcher :vs-code}))  ; jvm / node only
(def p (p/open {:launcher :intellij})) ; jvm / node only

(add-tap #'p/submit) ; Add portal as a tap> target

(tap> :hello) ; Start tapping out values

(p/clear) ; Clear all values

(tap> :world) ; Tap out more values

(prn @p) ; bring selected value back into repl

(remove-tap #'p/submit) ; Remove portal from tap> targetset

(p/close) ; Close the inspector when done

(p/docs) ; View docs locally via Portal - jvm / node only

Options

Options for portal.api/open:

Option Description Default Spec
:window-title Custom window title for UI "portal" string?
:theme Default theme for UI :portal.colors/nord
:value Root value of UI (atom (list))
:app Launch UI in Chrome app window true boolean?
:launcher Launch UI using this editor #{:vs-code :intellij :emacs}
:editor Enable editor commands, but use separate UI #{:vs-code :intellij :emacs}
:port Http server port for UI 0 int?
:host Http server host for UI "localhost" string?

For more documentation, take a look through the docs.

Metadata

Release files for djblue.portal 0.68.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for djblue.portal 0.68.1
File Size Uploaded
djblue_portal-0.68.1.tar.gz 2.0 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for djblue.portal 0.68.1
File Interpreter ABI Platform
djblue_portal-0.68.1-py3-none-any.whl Python 3 none any Details

Total release size: 4.1 MB

Release files / djblue_portal-0.68.1.tar.gz

Download URL djblue_portal-0.68.1.tar.gz
Size 2.0 MB
Tags Source
SHA-256 checksum
How to use checksums
f2a8335e9e322baba452be7e73bb6aba9b5a4b6ad8f0ec3ae6e142e3e5151229
BLAKE2b-256 checksum
How to use checksums
a5617884897b6a0099e16163b803fe64c04cb5b0792b3f0cfa6fe2e5fd6cae3f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.1.3 CPython/3.13.15 Linux/6.17.0-1022-azure

Release files / djblue_portal-0.68.1-py3-none-any.whl

Download URL djblue_portal-0.68.1-py3-none-any.whl
Size 2.1 MB
Tags Python 3
SHA-256 checksum
How to use checksums
5c796cc8a5308e939cd9f2abe906eb8c9640f0363d32c4605da0eafc12ba0b3a
BLAKE2b-256 checksum
How to use checksums
f3f58eed797a3463f4962f0a7640f895c7a4e5a1a499c8311cf7c476fef63821
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.1.3 CPython/3.13.15 Linux/6.17.0-1022-azure

Release history Release notifications | RSS feed

This release

0.68.1 This release

2 release files

0.67.2

2 release files

0.67.1

2 release files

0.67.0

2 release files

0.66.0

2 release files

0.65.0

2 release files

0.64.1

2 release files

0.64.0

2 release files

0.63.1

2 release files

0.62.2

2 release files

0.62.1

2 release files

0.62.0

2 release files

0.61.0

2 release files

0.60.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page