Skip to content
dsh.fish
Bundle

dsh-prospector

GitHub research assistant for DeepSeek Harness: model-facing tools to search repositories, read READMEs/source, and clone candidates, so the agent can prospect open-source solutions for an idea and synthesize an implementation plan.

Source
Perfirstvito
stars
1 stars
License
MIT
Updated
Updated 5 days ago

Readme

# dsh-prospector

English | [中文](README.zh.md)

GitHub research ("prospecting") assistant for DeepSeek Harness — gives the agent model-facing tools to **search repositories, read READMEs and source files, list file trees, and clone candidates**, then synthesize an implementation plan from the best open-source solutions it finds.

## Scenarios

- **Before building something new** — prospect open source first: what exists, what each candidate contributes, and what still needs building.
- **Technology selection** — compare candidates on activity, structure, and adoptability.
- **Deep due diligence** — clone and read core source for integration, license, and maintenance risk.

## Tools

| Tool | Does |
|---|---|
| `github_search_repos(query, limit?)` | Search repositories; supports `topic:`/`language:`/`stars:>N` qualifiers. |
| `github_get_readme(owner, repo)` | Fetch a README, bounded by `maxReadmeBytes`. |
| `github_read_file(owner, repo, path)` | Fetch one file, bounded by `maxFileBytes`. |
| `github_list_tree(owner, repo)` | List file paths (blobs only), bounded by `maxTreePaths`. |
| `github_clone_repo(owner, repo, into?)` | Shallow-clone into the workspace (`into` = topic subfolder) and return the local path. |

The agent combines these (search → read README/source → clone → read deeply); the plugin only supplies the eyes.

## Commands

### `/research [low|medium|high] <idea>`

Research an idea end to end and propose a plan. The optional leading tier (default `medium`) sets search breadth and read depth. Each idea gets its own subfolder under the workspace.

### `/gh-login`

Report the GitHub authentication state and show login steps when unauthenticated.

## Depth tiers

| Tier | Search | Read depth | Clone |
|---|---|---|---|
| `low` | top 5 | README only | no |
| `medium` | top 10 | README + key files + tree of top 1-2 | 1-2 most promising |
| `high` | top 20, qualifiers + pagination | core source across several files + full trees | several |

## Installation

Mount it in the composition; the shipped `cordis.patch.yml` inserts it automatically when installed as a bundle:

```yaml
- name: 'dsh-prospector'
  config:
    client: 'rest'               # 'rest' (default) or 'gh'
    ghPath: 'gh'                 # absolute path if gh is not on PATH
    workspaceRoot: '~/dsh-prospector'  # optional; default is ~/dsh-prospector
```

Mount it beside a subprocess provider and the filesystem tools.

## Authentication

The plugin never stores a token. Read operations resolve a token from `GH_TOKEN`/`GITHUB_TOKEN`, else `gh auth token`. Run `gh auth login` once (device flow → github.com/login/device), or set `GH_TOKEN`.

## Workspace

Clones live under a dedicated workspace root (`~/dsh-prospector` by default), one subfolder per research topic:

```
~/dsh-prospector/
  <topic-slug>/          # one folder per /research idea
    <owner>__<repo>/     # shallow clones
```

The workspace root and each topic folder are created automatically on first use.

## Configuration

| Field | Default | Meaning |
|---|---|---|
| `client` | `rest` | Read backend: `rest` (in-process HTTP) or `gh` (GitHub CLI). Clone always uses `git`. |
| `ghPath` | `gh` | Path to the gh executable. |
| `workspaceRoot` | `~/dsh-prospector` | Root where per-topic folders and clones live. |
| `maxReadmeBytes` | `200000` | Byte budget per README. |
| `maxFileBytes` | `100000` | Byte budget per file. |
| `maxTreePaths` | `2000` | Max file paths per tree listing. |
| `searchLimit` | `10` | Default search result count. |
| `maxAttempts` | `3` | Max REST attempts (retries on rate-limit/server/network errors). |
| `fallbackToGh` | `true` | Fall back to `gh` when REST hits an infrastructure error. |

## Notes & cautions

- **`gh` and `git` are required** — `gh` for auth/token, `git` for cloning.
- **GitHub rate limits** — the Search API allows ~30 requests/minute authenticated; broad/deep research is bounded by it.
- **Read-only apart from clones** — the plugin never mutates the model request or session surface; only clones write to the workspace.
- **Re-cloning into the same folder fails** — reuse a topic folder only after removing the previous clone.
- **No settings panel / tier-picker UI yet** — configuration is via `cordis.yml`; the interactive tier selector and settings card depend on DSH's client-bundle tooling for external plugins.

## License

MIT

Install

dsh plugin --profile web add github:Perfirstvito/dsh-prospector

Profile: web

  • This package builds from source on install. pnpm will ask you to allow its build script — that is permission to run the package’s code on your machine, outside the agent sandbox. Only allow sources you trust.
  • This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.
Source