Add outline-cli: minimal CLI for search and document retrieval

Adds a command-line client in cli/ as its own Cargo workspace, depending
on the outline library via a path dependency. Covers exactly the requested
scope: login (stores the API key in the system keyring via the Secret
Service D-Bus protocol, verified against auth.info() before storing),
search (full-text), and get (fetch a document, render its markdown to a
self-contained HTML page, open it in the default browser).

Verified end-to-end against a real Outline instance and the local
gnome-keyring: login stores and search/get retrieve the token purely from
the keyring and saved config, with no environment variables set.
This commit is contained in:
2026-07-30 15:15:56 +02:00
parent a32a437557
commit 844d2e716f
16 changed files with 3667 additions and 0 deletions
+29
View File
@@ -0,0 +1,29 @@
[package]
name = "outline-cli"
version = "0.1.0"
edition = "2024"
rust-version = "1.85"
publish = false
[workspace]
[[bin]]
name = "outline"
path = "src/main.rs"
[dependencies]
outline-sdk = { path = "..", default-features = false, features = ["rustls-tls"] }
anyhow = "1"
clap = { version = "4.6", features = ["derive", "env"] }
directories = "6"
open = "5.4"
pulldown-cmark = { version = "0.13", default-features = false, features = ["html"] }
rpassword = "7.5"
secret-service = { version = "5.1", features = ["rt-tokio-crypto-rust"] }
serde = { version = "1", features = ["derive"] }
toml = "1"
tokio = { version = "1", features = ["rt", "macros"] }
url = "2"
[dev-dependencies]
serde_json = "1"