Skip to content

feat(plugin, cli, serve-web): Add conversation browser web UI plugin#546

Open
JeanMertz wants to merge 1 commit intomainfrom
prr113
Open

feat(plugin, cli, serve-web): Add conversation browser web UI plugin#546
JeanMertz wants to merge 1 commit intomainfrom
prr113

Conversation

@JeanMertz
Copy link
Copy Markdown
Collaborator

The new jp-serve-web plugin serves a read-only web interface for browsing JP conversations. It integrates with the command plugin system and communicates with the jp host over the JSON-lines plugin protocol (stdin/stdout).

Run it via jp serve web, or with custom options:

jp serve web --bind 0.0.0.0 --port 8080

The server defaults to 127.0.0.1:3000. Bind and port can also be set in .jp/config.toml under [plugins.command.serve.options].

The plugin fetches conversation data on demand through the host protocol and renders it as HTML using maud templates, with axum as the HTTP server. Markdown is rendered via comrak. A custom tracing layer buffers log events during startup, then forwards them to the host as PluginToHost::Log messages once the connection is established.

@JeanMertz JeanMertz force-pushed the prr89 branch 2 times, most recently from 94d1e13 to 85e6d44 Compare April 14, 2026 10:24
Base automatically changed from prr89 to main April 14, 2026 12:54
@JeanMertz JeanMertz marked this pull request as ready for review April 14, 2026 13:34
The new `jp-serve-web` plugin serves a read-only web interface for
browsing JP conversations. It integrates with the command plugin system
and communicates with the `jp` host over the JSON-lines plugin protocol
(stdin/stdout).

Run it via `jp serve web`, or with custom options:

    jp serve web --bind 0.0.0.0 --port 8080

The server defaults to `127.0.0.1:3000`. Bind and port can also be set
in `.jp/config.toml` under `[plugins.command.serve.options]`.

The plugin fetches conversation data on demand through the host protocol
and renders it as HTML using `maud` templates, with `axum` as the HTTP
server. Markdown is rendered via `comrak`. A custom tracing layer
buffers log events during startup, then forwards them to the host as
`PluginToHost::Log` messages once the connection is established.

Signed-off-by: Jean Mertz <git@jeanmertz.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant