Skip to content

Commit bf39b8e

Browse files
committed
Add commands
Document kcmshell6 (tldr) plus soup, cmcp, listnr, swiftlet, and semsearch from Hacker News.
1 parent 46ffa7d commit bf39b8e

7 files changed

Lines changed: 577 additions & 0 deletions

File tree

assets/commands/cmcp.md

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
# TAGLINE
2+
3+
Confidential MCP gateway with TEE-backed policy enforcement
4+
5+
# TLDR
6+
7+
**Install** the runtime
8+
9+
```pip install cmcp-runtime```
10+
11+
**Validate** config and policy bundle before starting
12+
13+
```cmcp validate-config --config cmcp-config.yaml```
14+
15+
```cmcp validate-bundle --bundle-path ./policies --expected-hash sha256:[hex]```
16+
17+
**Start** the gateway in software / dev mode (no hardware TEE)
18+
19+
```CMCP_DEV_MODE=1 cmcp start --config cmcp-config.yaml```
20+
21+
**Verify** a signed TRACE claim file
22+
23+
```cmcp verify claim.json```
24+
25+
**Verify** with pinned policy and catalog hashes
26+
27+
```cmcp verify claim.json --policy-hash sha256:[hex] --catalog-hash sha256:[hex]```
28+
29+
# SYNOPSIS
30+
31+
**cmcp** _command_ [_options_]
32+
33+
# PARAMETERS
34+
35+
**start** **--config** _path_
36+
> Start the cMCP gateway using the given YAML config. Listens for MCP-style tool calls, evaluates each against a Cedar policy bundle, and records a hardware-sealed (or software-signed in dev mode) audit chain.
37+
38+
**validate-config** **--config** _path_
39+
> Parse and validate **cmcp-config.yaml** without starting the server.
40+
41+
**validate-bundle** **--bundle-path** _path_ **--expected-hash** **sha256:**_hex_
42+
> Verify that a Cedar policy bundle directory matches an expected SHA-256 before deploy.
43+
44+
**verify** _claim_file_ [**--policy-hash** _h_] [**--catalog-hash** _h_] [**--max-age** _s_] [**--trusted-key** _path_] [**--audit-bundle** _path_] ...
45+
> Offline verification of a TRACE / GatewayClaim: signature, schema, freshness, audit chain, and optional pinned hashes. Does not require trusting the operator who produced the claim.
46+
47+
# DESCRIPTION
48+
49+
**cmcp** is the CLI for **cMCP (Confidential MCP Runtime)**, an open-source gateway that sits between AI agents and MCP tools. Every **tools/call** is intercepted, evaluated against a **Cedar** policy bundle inside a policy engine intended to run in a **Trusted Execution Environment (TEE)**, then allowed, denied, or redacted. Sessions emit a signed **TRACE Claim** (GatewayClaim) that records which tools ran, which policy decided each call, the policy bundle hash measured at startup, and a hash-chained audit log.
50+
51+
Supported attestation providers include **TPM 2.0 / vTPM**, **AMD SEV-SNP**, and **Intel TDX** (with NVIDIA GPU confidential computing on the roadmap). When no hardware TEE is present, **CMCP_DEV_MODE=1** enables a software-only provider for local development; production starts should omit that flag so the gateway refuses to run without attestation hardware.
52+
53+
Typical config (**cmcp-config.yaml**) sets **attestation.provider** (**auto** or a specific provider), **enforcement_mode** (**enforcing**, **advisory**, or **silent**), **policy_bundle_path**, **catalog_path**, and **listen_addr**. Agents send JSON-RPC tool calls to the gateway HTTP endpoint instead of directly to upstream MCP servers.
54+
55+
# CONFIGURATION
56+
57+
**cmcp-config.yaml** (path required by **start** and **validate-config**). Important keys: **attestation.provider**, **attestation.enforcement_mode**, **policy_bundle_path** (directory of **.cedar** files plus **manifest.json**), **catalog_path** (approved tool catalog JSON), **listen_addr**.
58+
59+
Environment:
60+
61+
- **CMCP_DEV_MODE=1** — software-only TEE; no hardware required
62+
- **CMCP_BEARER_TOKEN** — require this bearer token on inbound requests (needed beyond loopback in tokenless setups)
63+
- **OPAQUE_ATTESTATION_URL** — opt-in OPAQUE managed runtime (placeholder / not fully implemented)
64+
65+
# CAVEATS
66+
67+
Developer preview: APIs and claim shapes may change before 1.0. **CMCP_DEV_MODE** claims verify only as partially_verified (no hardware attestation). Enforcement defaults to **enforcing** (HTTP 403 on deny). Running without a bearer token is intended for loopback only. Requires **Python 3.11+**. Residual risks and scope limits are documented in the project's **LIMITATIONS.md**.
68+
69+
# HISTORY
70+
71+
**cMCP** is maintained by **AgenTrust** under the MIT license. It was launched as a developer preview around the Confidential Computing Summit (2026) with PyPI package **cmcp-runtime**.
72+
73+
# SEE ALSO
74+
75+
[curl](/man/curl)(1), [pip](/man/pip)(1)
76+
77+
# RESOURCES
78+
79+
```[Source code](https://github.com/agentrust-io/cmcp)```
80+
81+
```[Homepage](https://github.com/agentrust-io/cmcp)```
82+
83+
```[Documentation](https://github.com/agentrust-io/cmcp/tree/main/docs)```
84+
85+
<!-- verified: 2026-08-04 -->

assets/commands/index.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1263,6 +1263,7 @@ clx.md
12631263
cmake.md
12641264
cmark.md
12651265
cmatrix.md
1266+
cmcp.md
12661267
cmctl.md
12671268
cmd-wrapped.md
12681269
cmdperf.md
@@ -3863,6 +3864,7 @@ kb.md
38633864
kbt.md
38643865
kcadm.sh.md
38653866
kcat.md
3867+
kcmshell6.md
38663868
kdash.md
38673869
kde-builder.md
38683870
kde-inhibit.md
@@ -4183,6 +4185,7 @@ linux32.md
41834185
linux64.md
41844186
liquidctl.md
41854187
lispmtopgm.md
4188+
listnr.md
41864189
lit.md
41874190
litecli.md
41884191
littler.md
@@ -7073,6 +7076,7 @@ semanage.md
70737076
semantic-release.md
70747077
semgrep.md
70757078
semodule.md
7079+
semsearch.md
70767080
semtools.md
70777081
semver.md
70787082
sen.md
@@ -7304,6 +7308,7 @@ sort.md
73047308
sot.md
73057309
sou.md
73067310
soundscope.md
7311+
soup.md
73077312
soupault.md
73087313
source-highlight.md
73097314
sox.md
@@ -7521,6 +7526,7 @@ swaynag.md
75217526
swc.md
75227527
swift.md
75237528
swiftc.md
7529+
swiftlet.md
75247530
swig.md
75257531
swipl.md
75267532
switch_root.md

assets/commands/kcmshell6.md

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
# TAGLINE
2+
3+
Open a single KDE Plasma 6 system settings module
4+
5+
# TLDR
6+
7+
**List** all available KCM modules
8+
9+
```kcmshell6 --list```
10+
11+
Open the **display / screen** settings module
12+
13+
```kcmshell6 kcm_kscreen```
14+
15+
Open **network** settings
16+
17+
```kcmshell6 kcm_networkmanagement```
18+
19+
Open several modules in one dialog
20+
21+
```kcmshell6 kcm_fonts kcm_style```
22+
23+
Open a module with a custom **window title** and **icon**
24+
25+
```kcmshell6 kcm_keyboard --caption "[Keyboard]" --icon preferences-desktop-keyboard```
26+
27+
Show **indicators** for settings that differ from defaults
28+
29+
```kcmshell6 kcm_fonts --highlight```
30+
31+
Pass **arguments** through to a module
32+
33+
```kcmshell6 kcm_kwinrules --args "[window-class]"```
34+
35+
# SYNOPSIS
36+
37+
**kcmshell6** [**--list**] [**--args** _arguments_] [**--icon** _icon_] [**--caption** _caption_] [**--highlight**] _module_...
38+
39+
# PARAMETERS
40+
41+
**--list**
42+
> List all discoverable KCM (KDE Control Module) plugin IDs with short descriptions, then exit.
43+
44+
_module_
45+
> One or more configuration modules to open. IDs may be given as the full plugin id (for example **kcm_fonts**), or as a short name that **kcmshell6** expands by trying **kcm_**_name_ and **kcm**_name_. Multiple modules open in a list-style dialog.
46+
47+
**--args** _arguments_
48+
> Space-separated arguments forwarded to the module (parsed like a shell command line).
49+
50+
**--icon** _icon_
51+
> Theme icon name for the dialog window. Defaults to the module's own icon.
52+
53+
**--caption** _caption_
54+
> Custom window title. For a single module without this option, the module name is used.
55+
56+
**--highlight**
57+
> Show visual indicators when a setting has been changed from its default value.
58+
59+
**--help**
60+
> Show command-line help (via KAboutData / QCommandLineParser).
61+
62+
**--version**
63+
> Show version information.
64+
65+
# DESCRIPTION
66+
67+
**kcmshell6** launches one or more **KDE Control Modules (KCMs)** in a standalone dialog, without opening the full **systemsettings** application. It is the Plasma 6 successor to **kcmshell5**, and ships as part of the **KCMUtils** framework.
68+
69+
Modules are discovered as plugins under the usual Plasma KCM namespaces (**plasma/kcms**, **plasma/kcms/systemsettings**, **plasma/kcms/systemsettings_qwidgets**, and **plasma/kcms/kinfocenter**). Each module presents a focused settings panel (fonts, display, network, power, and so on). When several module IDs are given, they appear together in a multi-page list dialog.
70+
71+
Scripts, desktop files, and documentation often invoke **kcmshell6** to deep-link into a single settings page. Interactive users typically use **systemsettings** for browsing and **kcmshell6** when they already know the module id.
72+
73+
# CAVEATS
74+
75+
Requires a running graphical session with Qt/KDE libraries available (normally a Plasma desktop). Module IDs differ between Plasma releases; use **kcmshell6 --list** on the target machine rather than hard-coding outdated names. Some modules need elevated privileges or PolicyKit for system-wide changes. Unknown module IDs may still open a dialog that only shows an error.
76+
77+
# HISTORY
78+
79+
**kcmshell** originated in KDE as a way to start individual control modules outside the full control center. Plasma 5 used **kcmshell5**; Plasma 6 renames the binary to **kcmshell6** and loads Qt 6 / KF6 KCM plugins (including QML-based modules) through KCMUtils.
80+
81+
# INSTALL
82+
83+
```apt: sudo apt install libkf6kcmutils-bin```
84+
85+
```pacman: sudo pacman -S kcmutils```
86+
87+
```apk: sudo apk add kcmutils```
88+
89+
<!-- packages: 2026-08-04 -->
90+
91+
# SEE ALSO
92+
93+
[systemsettings](/man/systemsettings)(1), [plasmashell](/man/plasmashell)(1), [kwriteconfig5](/man/kwriteconfig5)(1)
94+
95+
# RESOURCES
96+
97+
```[Source code](https://invent.kde.org/frameworks/kcmutils)```
98+
99+
```[Homepage](https://develop.kde.org/docs/features/configuration/kcm/)```
100+
101+
<!-- verified: 2026-08-04 -->

assets/commands/listnr.md

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
# TAGLINE
2+
3+
Local dual-lane meeting transcription for macOS
4+
5+
# TLDR
6+
7+
**Install** via Homebrew and grant permissions
8+
9+
```brew tap rokib16x/listnr https://github.com/rokib16x/listnr```
10+
11+
```brew trust --tap rokib16x/listnr```
12+
13+
```brew install listnr```
14+
15+
```listnr setup```
16+
17+
Start the **interactive** shell, then live-transcribe
18+
19+
```listnr```
20+
21+
```/live```
22+
23+
One-shot session for **N seconds** with two remote speakers expected
24+
25+
```listnr start --seconds 60 --speakers 2```
26+
27+
Transcribe **Bangla** (or other supported languages)
28+
29+
```listnr start --language bn --seconds 120```
30+
31+
Speak any language; transcript in **English**
32+
33+
```listnr start --language bn --translate --seconds 120```
34+
35+
**List / download** Whisper models
36+
37+
```listnr models list```
38+
39+
```listnr models download whisper-large-v2```
40+
41+
Check **permissions** and environment
42+
43+
```listnr doctor```
44+
45+
# SYNOPSIS
46+
47+
**listnr** [_command_] [_options_]
48+
49+
# PARAMETERS
50+
51+
**(no command)**
52+
> Start the interactive REPL (**listnr>** prompt). Common in-session commands: **/live** [_seconds_], **/stop** or **q**, **/lang** _code_, **/translate**, **/speakers** _n_, **/model** _id_, **/diarize**, **/sensitivity** high|low, **/dump**, **/status**, **/help**.
53+
54+
**start** [**--seconds** _n_] [**--speakers** _n_] [**--language** _code_] [**--translate**] ...
55+
> One-shot capture without the interactive shell. Transcript goes to **stdout**; progress and meters to **stderr**. Omitting **--seconds** runs until Ctrl+C.
56+
57+
**setup**
58+
> Guide you through granting **Microphone** and **Screen & System Audio Recording** permissions to the host terminal app.
59+
60+
**doctor**
61+
> Report which permissions and dependencies are missing.
62+
63+
**models list**
64+
> List available WhisperKit model ids and sizes.
65+
66+
**models download** _id_
67+
> Prefetch model weights from Hugging Face into the local cache.
68+
69+
# DESCRIPTION
70+
71+
**listnr** is a macOS command-line meeting listener. It captures **two separate audio lanes**: your **microphone** (always labeled **You**) and **system / speaker audio** (remote participants). Both lanes are transcribed **on-device** with **WhisperKit** (Core ML). Remote speakers are split into **Speaker 1…N** with **SpeakerKit** diarization after the session ends. Audio and transcripts never leave the machine except for the one-time model download from Hugging Face.
72+
73+
Using a **headset** is strongly recommended so remote audio does not bleed into the microphone lane. Sessions write Markdown transcripts under **~/Documents/Listnr/**. Optional **/dump** writes raw WAV debug audio with owner-only permissions.
74+
75+
Supported languages include English, Bangla, Hindi, Spanish, French, German, Japanese, and Chinese. **/translate** uses Whisper's translate-to-English task (one-way). Default models balance live latency; larger models improve accuracy at the cost of real-time headroom.
76+
77+
# CAVEATS
78+
79+
**macOS 14+ on Apple Silicon only** (Intel Macs are not supported). Permissions attach to the **terminal app**, not the binary—switching Terminal ↔ iTerm requires re-granting. Beta software (**0.x**): CLI flags and behavior may change. Diarization of remote speakers runs **after** you stop (live labels are all **Others**). Memory grows with session length (~460 MB per hour of dual-lane audio in RAM). Recording other people may require **all-party consent** under local law—obtain agreement before use. Session options like language and model do not currently persist across restarts.
80+
81+
# HISTORY
82+
83+
**Listnr** is an MIT-licensed open-source project by Rokibul Hasan. It builds on **WhisperKit** / **SpeakerKit** for on-device speech and diarization, and is distributed as a prebuilt Homebrew formula, notarized **.pkg**, and source build via Swift Package Manager.
84+
85+
# SEE ALSO
86+
87+
[whisper](/man/whisper)(1), [ffmpeg](/man/ffmpeg)(1)
88+
89+
# RESOURCES
90+
91+
```[Source code](https://github.com/rokib16x/listnr)```
92+
93+
```[Homepage](https://github.com/rokib16x/listnr)```
94+
95+
<!-- verified: 2026-08-04 -->

0 commit comments

Comments
 (0)