DeepSeek Anthropic-compatible web search CLI for Claude Code
Project description
DeepSeek Search
DeepSeek Search is a Claude Code plugin that wraps DeepSeek's Anthropic-compatible Web Search capability as a local Python CLI and exposes it through a Claude Code skill.
What it provides
- A
deepseek-searchCLI (Python +uv), published on PyPI. - DeepSeek API configuration under
~/.deepseek. - A Claude Code skill at
plugins/deepseek_search/skills/deepseek_search/SKILL.mdthat tells Claude Code when and how to call the CLI.
Project layout
.claude-plugin/marketplace.json
.github/workflows/ # CI + publish-to-PyPI on `v*` tags
plugins/deepseek_search/ # Claude Code plugin manifest + skill
.claude-plugin/plugin.json
skills/deepseek_search/SKILL.md
src/deepseek_search.py # CLI implementation
tests/test_deepseek_search.py
pyproject.toml
uv.lock
The Python package lives at the repository root; plugins/deepseek_search/ holds only the Claude Code plugin manifest and skill instructions.
Install
The recommended way to use the CLI is as a global uv tool:
uv tool install deepseek-search
Then deepseek-search is available on PATH everywhere.
From source (development)
git clone https://github.com/8DE4732A/deepseek-search.git
cd deepseek-search
uv sync --dev # install dependencies
uv run pytest # run tests (no API key required)
Configure DeepSeek
All configuration lives under ~/.deepseek and is managed through the config subcommand. There are no environment variables — settings come from the config files or one-off CLI flags.
deepseek-search config init # write a default config.json
deepseek-search config set api_key YOUR_DEEPSEEK_API_KEY # stored in ~/.deepseek/credentials.json (chmod 600)
deepseek-search config set model deepseek-v4-pro[1m] # set any field
deepseek-search config get model # read a single value
deepseek-search config list # show full effective config (api_key masked)
Configurable keys (type-coerced automatically):
| Key | Stored in | Type |
|---|---|---|
api_key |
credentials.json |
string (chmod 600) |
base_url, model, web_search_tool_type, output_format |
config.json |
string |
max_tokens, max_retries |
config.json |
int |
timeout_seconds |
config.json |
float |
max_uses, allowed_domains, blocked_domains |
config.json (search.*) |
int / comma-list |
Advanced search flags (--model, --max-tokens, --timeout, --max-uses, --allowed-domain, --blocked-domain, …) override config.json for a single run without writing it back.
CLI usage
deepseek-search --json --query "DeepSeek Claude Code web search documentation"
deepseek-search "DeepSeek API Claude Code integration" # bare positional query also works
deepseek-search search --markdown "DeepSeek API Claude Code integration"
deepseek-search --help
The JSON output includes:
answercitationswarningsusagemodelrequest_idstop_reason
Releasing / publishing
Releases are produced automatically by the Publish to PyPI GitHub Action whenever a v* git tag is pushed:
git tag v0.1.0
git push origin v0.1.0
Prerequisites (one-time, in the GitHub repo + PyPI):
- Register the project as a Trusted Publisher on PyPI:
- PyPI publishing environment:
pypi - GitHub repository:
8DE4732A/deepseek-search - Workflow filename:
publish.yml - Environment name:
pypi
- PyPI publishing environment:
- No PyPI API token is required — publishing uses OIDC.
The package version is derived from the git tag via setuptools-scm, so the workflow fails fast if the tag and the built version disagree.
License
MIT License. See LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file deepseek_search-0.2.0.tar.gz.
File metadata
- Download URL: deepseek_search-0.2.0.tar.gz
- Upload date:
- Size: 39.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e11ff41e18632c10de6b951dd9be4aef54d8aeaec8aca71eb9d8a35e1c0b5f70
|
|
| MD5 |
281aa4f304991221584fc393e4e99bc3
|
|
| BLAKE2b-256 |
0f2885e430f5a8be7ac62cd0dcb2bb7e8ecb5fd3c277b778e5ab78f87ed573b7
|
Provenance
The following attestation bundles were made for deepseek_search-0.2.0.tar.gz:
Publisher:
publish.yml on 8DE4732A/deepseek-search
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
deepseek_search-0.2.0.tar.gz -
Subject digest:
e11ff41e18632c10de6b951dd9be4aef54d8aeaec8aca71eb9d8a35e1c0b5f70 - Sigstore transparency entry: 1881777507
- Sigstore integration time:
-
Permalink:
8DE4732A/deepseek-search@04ac6c42c84f01c19fff0c05697b7bb06da3aa79 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/8DE4732A
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@04ac6c42c84f01c19fff0c05697b7bb06da3aa79 -
Trigger Event:
push
-
Statement type:
File details
Details for the file deepseek_search-0.2.0-py3-none-any.whl.
File metadata
- Download URL: deepseek_search-0.2.0-py3-none-any.whl
- Upload date:
- Size: 13.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c345adeee4d86ef575abab2c07eaf9b654b65af563bb1aac8de4e6b637381f79
|
|
| MD5 |
9af09ea2a6e7ac801dd7e88e5dcb5354
|
|
| BLAKE2b-256 |
3d11d469be274268abe0d61b04732875e65ed7241fdf566f7cf4dfe371c860f9
|
Provenance
The following attestation bundles were made for deepseek_search-0.2.0-py3-none-any.whl:
Publisher:
publish.yml on 8DE4732A/deepseek-search
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
deepseek_search-0.2.0-py3-none-any.whl -
Subject digest:
c345adeee4d86ef575abab2c07eaf9b654b65af563bb1aac8de4e6b637381f79 - Sigstore transparency entry: 1881777585
- Sigstore integration time:
-
Permalink:
8DE4732A/deepseek-search@04ac6c42c84f01c19fff0c05697b7bb06da3aa79 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/8DE4732A
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@04ac6c42c84f01c19fff0c05697b7bb06da3aa79 -
Trigger Event:
push
-
Statement type: