Skip to main content
portalr: the portal into an application built on lattice.

Docs Nightly Python 3.12, 3.13 and 3.14 Coverage: 100% Typed: pyright strict License: MIT

portalr is the portal into an application built on lattice: an app UI for the people who use it, to chat with its agents and see their artifacts, proposals, rules and runs, and an admin UI for those who run it, to manage access and see feedback, evaluations, usage and spend. Both are static single-page apps in React, sharing a typed client and a ui kit, and served by a router the application mounts beside the libraries'.

Status: built, and on PyPI. The router, the app's areas and the admin UI, including the operators' tenants and tools and people shown by email, are built and tested, and stackr's template mounts it (guides, architecture). Not built yet: magic links and other sign-in providers. Its wheel carries both UIs: uv add portalr.

Why

Every surface in lattice is an API, a WebSocket or an MCP server, so an application built on it has to build its own UI before anyone can use it, and running one is blind without an admin UI. lattice RFC-0002 designs that UI once, and portalr is where it is built.

What it does

  • The browser calls each package's own routes. A chat goes to artifactr's WebSocket, a rule to reflexr's REST, a grant to grantr's API, on one origin with one token. Nothing proxies them, so nothing re-declares their types (ADR-0001).
  • Two static apps on Vite, in React 19 and TanStack, with no server rendering and no Node server (ADR-0002).
  • A chat of its own, thin, in ui, over artifactr's protocol (ADR-0003).
  • A tenant's own observability, native, in the admin UI: its feedback, evaluations, spend, traces and logs, with deep links out to the tools for operators (ADR-0004, ADR-0005).
  • Every read filtered by tenant, in one module, over the stack's shared stores (ADR-0006).
  • Permissions asked, never guessed. The UIs ask grantr what the user may do, and the server checks each command again.

Documentation

portalr's documentation is its section of lattice's site, at https://lattice.alexnodeland.com/portalr/, built from docs/portalr/.

Contributing

See CONTRIBUTING.md for setup, the trunk-based workflow, and the RFC and ADR process.

License

MIT. The UIs carry lattice's typefaces, Schibsted Grotesk and Fragment Mono, under the SIL Open Font License 1.1.

Metadata

Release files for portalr 0.1.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 portalr 0.1.1
File Size Uploaded
portalr-0.1.1.tar.gz 1.4 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for portalr 0.1.1
File Interpreter ABI Platform
portalr-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 3.0 MB

Release files / portalr-0.1.1.tar.gz

Download URL portalr-0.1.1.tar.gz
Size 1.4 MB
Tags Source
SHA-256 checksum
How to use checksums
426638cd257a09d89d881f8b5e179a7d1fb05833e495ede02b80009af4f9793b
BLAKE2b-256 checksum
How to use checksums
7889cf388c64ee7d958f4361cbcc1d5dc7cea2302ea68c3b64329b381062e315
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 17, 2026.

Transparency log

Release files / portalr-0.1.1-py3-none-any.whl

Download URL portalr-0.1.1-py3-none-any.whl
Size 1.5 MB
Tags Python 3
SHA-256 checksum
How to use checksums
f2be9b94b3bb83e1843756705691e319e038f344b6e5d19bd6f37b7fa3efa249
BLAKE2b-256 checksum
How to use checksums
08a7a02b97b6d46ebd586e7b16a6c7090c8b157e56db4bf6a6376269a32026a6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 17, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

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