DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Plugin Radicale — DeepSeek Harness 插件(DSH Plugin)
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
P

dsh-plugin-radicale

Plugin Radicale

为 DeepSeek Harness agents 提供 CalDAV 管理:一个 radicale 工具,可列出日历集合和事件、读取 ICS,并在 Radicale server 上创建或更新事件——绝不会删除任何内容。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:paulalesius/dsh-radicale#2fadbfcc0cb4ab79d3bc30409ab7995e55cda040
README兼容性版本

兼容性与来源证明

Plugin Radicale 以 dsh-plugin-radicale 发布,当前版本为 0.1.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
any
发布来源
github
Registry 更新时间
2026/8/31

版本

0.1.0stable
2026/8/31

相关插件

正在加载相关插件…

最新版
0.1.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
any
许可证
MIT
发布源
github
GitHub
★ 0
周下载
0
最近提交
2026/8/31
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 productivity-workflow 分类下经过校验的插件。

Acp App@deepseek-ai/dsh-acp-appdsh ACP 配置文件包:基于 dsh-base 的仅限自动化的 JSON-RPC stdio 和进程生命周期管理Web All@linxin666/dsh-web-allDSH Web UI 全家桶聚合插件:一键安装全部功能插件(task-board / git-graph / pet / remote-web-ui / web-ui-settings / skin-center / community-plugins / compat shim)。compat 桥接层已并入本包(src/client),无需独立 compat npm 包。Codex Ui@michengai/dsh-codex-uiDSH Codex UI — 为 DeepSeek Harness Web 提供 Codex 风格侧栏、工作区会话树、全局搜索和轮次导航Automation@michengai/dsh-automation在独立 DSH Session 中按计划执行编码任务,支持 Web 设置页与 Agent 双入口管理。

README

dsh-plugin-radicale

A plugin for DeepSeek Harness (dsh) that gives your agent one radicale tool to manage your local Radicale calendar server. You can ask your agent things like "what's on my calendar?", "add a meeting on Thursday at 10", "make a new calendar for my work stuff", or "cancel the dentist appointment" and it will list, read, create, update, and search your events for you.

The tool has eight actions:

  • list - the collections on the server, or the events inside one of them
  • read - one event in full (this is also how the agent gets the freshness stamp it needs before an update)
  • create - a new event from simple fields (title, start, end, ...)
  • update - change an existing event, keeping its identity
  • search - find events whose content matches a text
  • createCollection - a new, empty calendar you can ask for by name
  • cancel - move one event out of your calendar into a dedicated archive (see below)
  • uncancel - put a cancelled event back where it came from

The plugin never deletes. It has no delete action, and nothing it can send to the server can remove an entry. Cancelling an event is not a delete: the event is moved into an archive collection (by default /caldav/cancelled, configurable) and its own file gets two small X-DSH- lines recording when it was cancelled and where it came from. That is the traceability: the event is still there, readable, and restorable, and uncancel reverses the move and strips those lines. If the event really should be gone, do that in your calendar client.

Installing the plugin

With the dsh command, from the directory containing this checkout:

dsh plugin --profile web add /path/to/radicale

When running dsh from source:

pnpm dsh plugin --profile web add /path/to/radicale

The install is inert: the plugin row ships disabled. Enable it in one of two spots (pick one, never both):

Every session. In your profile's patch layer (~/.dsh/profiles/web/cordis.patch.yml, append to your existing file):

- id: radicale
  disabled: false

One preset only. In that preset's own file (~/.dsh/.agent-presets/<preset>/agent.cordis.yml, append):

- id: radicale
  name: dsh-plugin-radicale

No other configuration is needed for a server installed with the defaults below - the plugin and Radicale both use the same default address out of the box. If your server listens somewhere else, add a config block with baseUrl set to your server's address, like:

- id: radicale
  disabled: false
  config:
    baseUrl: http://<your-server-address>

Then restart the server.

Configuration

keydefaultmeaning
baseUrlthe default local address (matches a Radicale server installed with the defaults)Your Radicale server's address, if it listens somewhere else. Host and port in one value, for example http://<server>:<port>.
maxItems100How many events one list or search call may fetch. Lists that hit the cap are flagged truncated.
cancelledCollection/caldav/cancelledThe archive collection cancel moves events into. A bare name (cancelled) resolves under /caldav; an explicit path is kept as-is. It is created automatically the first time something is cancelled.

The config block replaces the plugin's defaults wholesale - list every key you want to keep.

The plugin assumes the server is reachable without a password. That is the right setup for a local server (below); it does not carry any credential configuration of its own.

Installing Radicale

Radicale is a small, self-contained Python program. You install it into a dedicated virtual environment with uv:

uv venv ~/venv-caldav
source ~/venv-caldav/bin/activate
uv pip install radicale

That one command also brings in its only runtime dependency (vobject), so there is nothing else to install.

The config file

Create a config file (for example ~/.radicale-config) with:

[storage]
# Where the calendar data lives: one plain .ics file per event,
# easy to back up by copying the folder.
type = multifilesystem
filesystem_folder = ~/.radicale

[rights]
# Let the owner write. Without this line the server is read-only and
# the agent can list but not create or update events.
type = owner_write

[auth]
# No password: the dsh plugin connects without credentials.
type = none

Running it

radicale -c ~/.radicale-config

That is all: the server starts, prints a line with its address, and keeps running until you stop it (Ctrl-C). To have it start at boot, run it under systemd, tmux, or whatever service manager you already use.

Once it is up, open a session and ask your agent to list the collections

  • it should report your calendars, or an empty list on first run.

Developing the plugin: see AGENTS.md.