SeedTools currently does not include a GUI module.
This document defines the planned public API surface for the upcoming seedtools_gui package, based on:
- the GUI Roadmap
- UX & UI guidelines
- Component Library specification
- Hardened Mode requirements
- deterministic rendering principles
The GUI will provide a secure, deterministic, offline‑first graphical interface for all SeedTools workflows.
This API specification defines what the GUI will expose once implemented.
The SeedTools GUI will be:
- deterministic
- minimalistic
- security‑first
- offline‑only
- hardened‑mode compatible
- predictable across platforms
- safe for high‑risk users and forensics workflows
The GUI will serve as a thin, deterministic layer on top of the Core module.
See: UX Guidelines and UI Principles.
The final structure will look like:
seedtools_gui/
├── components/ # secure UI components
├── workflow/ # deterministic workflow engine
├── secure/ # hardened-mode logic
├── themes/ # deterministic styling
└── app.py # main GUI entry point
But this structure does not exist yet — it is defined here for future implementation.
See: GUI Roadmap.
Starts the GUI application.
- deterministic startup
- no network access
- no external assets
- hardened‑mode auto‑detection
- zero clipboard usage
The GUI will expose a deterministic component library.
Below is the planned public API surface.
MnemonicField(masked: bool = True)
EntropyField()
SeedHexField()
SecureNumberField(min: int, max: int)
All secure fields guarantee:
- masked sensitive data
- no clipboard
- no auto‑completion
- zeroization on close
- isolated memory buffers
PrimaryButton(label: str, on_click: Callable)
SecondaryButton(label: str, on_click: Callable)
DangerButton(label: str, on_click: Callable)
All buttons guarantee:
- deterministic behavior
- no async tasks
- no animations in hardened mode
ReadOnlyOutput(value: str)
AddressList(addresses: list[str])
DiagnosticBlock(messages: list[str])
Output components guarantee:
- deterministic formatting
- no clipboard in hardened mode
- no auto‑refresh
The GUI will include a deterministic workflow engine.
WorkflowPanel(steps: list[WorkflowStep])
- no hidden state
- no auto‑progression
- deterministic transitions
WorkflowStep(id: str, title: str, render: Callable)
StepIndicator(current: int, total: int)
The GUI will include a hardened‑mode subsystem.
Enforces:
- no clipboard
- no animations
- no caching
- no logs
- no external dialogs
Returns hardened‑mode status.
Wraps a component with hardened‑mode restrictions.
Loads a deterministic theme.
ColumnLayout(left, center, right)
Guarantees:
- fixed width
- no scrolling
- deterministic spacing
Section(title: str, content: Component)
The GUI will guarantee:
No dynamic layout changes.
No fonts, images, scripts, CDNs.
All sensitive fields are wiped on:
- close
- module switch
- workflow reset
No clipboard, no animations, no logs.
No networking, no telemetry.
See: Security Guide.
The GUI test suite will include:
- deterministic rendering tests
- hardened‑mode tests
- zeroization tests
- cross‑platform layout tests
- GUI Roadmap
- UX Guidelines
- UI Principles
- Component Documentation
- Core API
- Utils API