extension-hunter/dsh-authorize-app ↗★ 0
dsh-authorize-app
DeepSeek Harness plugin: adds a 'Connected Apps' settings section — a central platform where other DSH plugins can surface themselves.
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:extension-hunter/dsh-authorize-app说明文档
阅读完整 README ↗dsh-authorize-app
A DeepSeek Harness (DSH) plugin that adds a "Connected Apps / 连接应用" settings section — a central platform where other DSH plugins can surface themselves. 一个 DSH 插件:在设置面板里新增「连接应用」区块,作为其他 DSH 插件自我展示的中央平台。
Out of the box it renders an empty list. Other apps opt in by registering a card into its slot — no registry, no network transport, no cross-plugin imports.
What it does
- Adds a 5th entry to the Settings panel — Connected Apps (
order: 25, after General / Models / Plugins / Agent Presets). - Declares a child slot
settings.connected-apps.item(kind: list) that any DSH plugin can register into. - Renders that slot as the app list, with a bilingual empty state (
No connectable apps yet/暂无可连接的应用). - Also registers a placeholder host-side tool
dsh_authorize_app.
Install
# from the npm registry
dsh plugin --profile web add dsh-authorize-app
# from a local checkout (run from the PARENT directory)
dsh plugin --profile web add ./dsh-authorize-app
Then restart the profile (dsh web) and refresh the page. Settings → 连接应用 / Connected Apps appears.
For app developers
Want your app to show up in "Connected Apps"? In your plugin's client half, register a card into the child slot:
ctx.slots.inject('settings.connected-apps.item', () =>
ctx.slots.register({
name: 'settings.connected-apps.item',
id: 'your-app-id', // unique id across all apps
order: 0, // sort order (ascending)
inject: () => ({
// anything your card needs: name, description, connection status, …
}),
}, YourAppCard), // a React component; rendered inside the list
)
That is the entire contract:
- No host-side registry. The slot ledger is the join point.
- No transport. Your component is mounted by the platform's
renderSlot, so you just render a card. - Install order is irrelevant.
ctx.slots.inject(...)waits for the slot declaration.
YourAppCard receives the standard DSH slot props: your inject() return value, plus the locale t seat if you declare a namespace. Return to hide, or render your card row.