An image the manifest does not publish was rewritten to a raw.githubusercontent URL, which serves a private repository to nobody: raw answers 404 unauthenticated, and a github.com session does not authenticate it. Every image on the site was broken for every reader, and no gate could say so — link checking asks whether the file exists in the repository, not whether a site reader can fetch it. The projector now copies a referenced image into the generated tree beside the page and points the reference at it, so Vite bundles it like any other site asset and repository visibility cannot reach the published page. The copy lands beside the page so one relative URL is right from both locale trees and a page's assets leave with the page; two sources projecting onto one path throw rather than letting the last copy win. Canonical Markdown keeps writing ordinary repository-relative paths, so the same file still renders when read in the repository. The guide this was found through is renamed to its subject: 配置模型.
1.8 KiB
Quick start
English | 中文
This guide gets an agent running in five minutes.
Prerequisites
- Node.js ^22.19 or >= 24
- pnpm 11 through Corepack
- A DeepSeek Platform API key
node -v
corepack enable
pnpm -v
Step 1: install and configure the API key
git clone https://github.com/deepseek-harness/deepseek-harness.git
cd deepseek-harness
pnpm install
Create the gitignored repository-root .env:
DEEPSEEK_API_KEY=sk-your-key-here
Step 2: run one Headless task
Run a non-interactive task and print its final answer:
pnpm run demo:headless "summarize the architecture of this workspace"
Headless runs one complete model/tool turn, persists the session, prints the result, and exits. Use --output-format stream-json when you need the canonical event stream.
Step 3: use the Web UI
Build and start the browser interface:
pnpm run build
pnpm run dsh web
Open http://127.0.0.1:3080. The agent can read and write files, run commands, delegate subtasks, and track a plan. Try: Create hello.js in the current directory, print "Hello from Harness!", and run it.
What happened
headless-agent uses the @deepseek-ai/dsh-cli-demo app. dsh web instead composes apps/cli/config/base.cordis.yml with apps/cli/config/web.cordis.yml and no app bundle. Both select the DeepSeek model and capability plugins appropriate to their entry mode.
Next steps
- Configure models — reach providers beyond DeepSeek, and custom gateways
- Configuration — understand the
cordis.ymlformat - Develop a plugin — build your own tool or backend