OG TestDesk is a native desktop developer desk — SQL workspace, HTTP request client, JSON inspector, scratch pad, appearance editor, calculator, JWT decoder, and an AI assistant — built in Rust with iced.
core/ og_testdesk_core — persistence (SQLite via sqlx), SQL engine,
HTTP request runner, AI provider clients, theme model. No UI code.
desktop/ og_testdesk_desktop — the iced application (all UI).
cargo run -p og_testdesk_desktopThe app stores its SQLite database and connection secrets in the OS app-data directory:
- Windows:
%APPDATA%\OGTestDesk\og_testdesk.db - macOS:
~/Library/Application Support/OGTestDesk/og_testdesk.db - Linux:
$XDG_DATA_HOME/og-testdesk/og_testdesk.db(defaults to~/.local/share/og-testdesk)
Override the database path directly with OGTESTDESK_DB_PATH if needed.
cargo build -p og_testdesk_desktop --releasePackaging uses cargo-packager
(config lives in desktop/Cargo.toml under [package.metadata.packager]).
cargo install cargo-packager --locked
cd desktop
cargo packager --release -f <format>Available formats per platform:
- Linux:
deb,appimage - macOS:
app,dmg - Windows:
nsis,wix
Output lands in dist/ at the repo root.
Note: building
appimagerequires alinuxdeploybinary compatible with your host'sbinutils/glibc. On very new/rolling-release distros the prebuiltlinuxdeployAppImage's bundledstripcan fail on newer ELF section types (seen during development on an up-to-date Arch Linux host). This does not affectdebpackaging or the GitHub Actions release build (which runs on standardubuntu-latest).
Pushing a tag starting with v (e.g. v0.1.0) triggers
.github/workflows/release.yml, which builds and packages the app on
Linux, macOS, and Windows runners and attaches the artifacts to a GitHub
Release. This requires the repo to have a GitHub remote configured.
| Feature | Status |
|---|---|
| SQL Workspace | Connections, ad-hoc query + results grid, saved queries. Schema browser, background jobs, run history, table editing, CSV export are follow-ups. |
| Requests (API client) | Method/URL/headers/body builder, send, response view, saved requests. Folders, history, variable sets, Postman import, GraphQL/multipart, OAuth are follow-ups. |
| JSON Inspector | Parse, pretty-print, top-level summary. Collapsible tree view, diffing, search are follow-ups. |
| Scratch Pad | Single persisted text pad. |
| Calculator | Expression evaluation. |
| JWT Decoder | Header/payload decode (no signature verification). |
| Appearance | Light/dark/custom theme editor, persisted. Does not yet live-restyle the running app. |
| AI Assistant | Settings + single-profile chat via OpenAI-compatible/Ollama/Gemini providers. |
| Scheduled Jobs | Not yet started. |