Local development
August 22, 2026 · View on GitHub
English · 中文
Run commands from the repository root. Use a virtual environment for the fast source loop and a dedicated clone for full plugin-install testing.
Fast source loop
Install only the dependencies you need:
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -e '.[core]' # use '.[all]' for every capability
Run a server directly from source:
python3 src/capabilities/core/qwen_mm_plugins_core --version
python3 src/capabilities/core/qwen_mm_plugins_core --check-system
printf '%s\n' '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' \
| python3 src/capabilities/core/qwen_mm_plugins_core
Code changes take effect on the next process start. Run targeted tests while iterating; see Testing.
If you need only a live MCP connection, register the source entry in a harness and reconnect after edits. For example:
claude mcp add qwen-mm-plugins-core -- \
python3 "$(pwd)/src/capabilities/core/qwen_mm_plugins_core"
# cleanup: claude mcp remove qwen-mm-plugins-core
Full plugin-install loop
Use this path to test marketplace manifests, Skill discovery, MCP registration, and the harness's complete install flow:
bash install.sh local
The installer points the selected capabilities at the current checkout and adds uvx --refresh.
It intentionally writes absolute local paths into tracked manifests, so use a dedicated clone and
do not move it while installed.
Restore release sources before committing or leaving local mode:
bash install.sh local --restore
DSH carrier loop
The Python repository and the DSH carrier have separate build faces. Iterate on the source-level DSH integration from its package directory:
cd packages/dsh
pnpm install --config.auto-install-peers=false
pnpm run typecheck
pnpm test
pnpm run build
The carrier's DSH host packages are peers supplied by the DSH profile. Its cordis.patch.yml declares
the active carrier row; media compatibility is provided by the minimum supported native DSH MCP client.