Skip to main content

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-search CLI (Python + uv), published on PyPI.
  • DeepSeek API configuration under ~/.deepseek.
  • A Claude Code skill at plugins/deepseek_search/skills/deepseek_search/SKILL.md that 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:

  • answer
  • citations
  • warnings
  • usage
  • model
  • request_id
  • stop_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):

  1. 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
  2. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

deepseek_search-0.2.0.tar.gz (39.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

deepseek_search-0.2.0-py3-none-any.whl (13.1 kB view details)

Uploaded Python 3

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

Hashes for deepseek_search-0.2.0.tar.gz
Algorithm Hash digest
SHA256 e11ff41e18632c10de6b951dd9be4aef54d8aeaec8aca71eb9d8a35e1c0b5f70
MD5 281aa4f304991221584fc393e4e99bc3
BLAKE2b-256 0f2885e430f5a8be7ac62cd0dcb2bb7e8ecb5fd3c277b778e5ab78f87ed573b7

See more details on using hashes here.

Provenance

The following attestation bundles were made for deepseek_search-0.2.0.tar.gz:

Publisher: publish.yml on 8DE4732A/deepseek-search

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for deepseek_search-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c345adeee4d86ef575abab2c07eaf9b654b65af563bb1aac8de4e6b637381f79
MD5 9af09ea2a6e7ac801dd7e88e5dcb5354
BLAKE2b-256 3d11d469be274268abe0d61b04732875e65ed7241fdf566f7cf4dfe371c860f9

See more details on using hashes here.

Provenance

The following attestation bundles were made for deepseek_search-0.2.0-py3-none-any.whl:

Publisher: publish.yml on 8DE4732A/deepseek-search

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page