Yar's DeepSeek Copilot
DeepSeek Platform

User manual

Configure the API key, choose a permission mode, then use DeepSeek from the sidebar with explicit control over every workspace operation.

Getting started

  • Open Yar's DeepSeek Copilot from the Activity Bar and enter the API key in Settings. Credentials are stored per normalized API origin in VS Code Secret Storage; reopening Settings shows only a masked placeholder preview.
  • Choose V4 Vision (Flash) or V4 Pro, thinking mode, reasoning effort, output allowance, and concurrent generation limit. Registered V4 capabilities use a 1M-token total context and 384K maximum output; the extension reserves 8,192 output tokens by default. Concurrency defaults to 8 and accepts values from 1 to 16.
  • Type ./ to autocomplete safe workspace paths. Parent traversal with ../ is never accepted. In multi-root workspaces, paths begin with a stable alias such as ./frontend/src/App.tsx.
  • Use the single + attachment action or Explorer/editor commands for explicit context. Ordinary external files become bounded, read-only snapshots; images are uploaded to DeepSeek after their binary signature is verified.
  • Use Stop generation to cancel the current request and any running terminal process tree. The submitted prompt, partial assistant timeline, and completed tool results remain in history as a terminal cancelled turn; completed side effects are not rolled back.

Images and vision

  • The same picker accepts context files and up to eight JPEG, PNG, GIF, or WebP images. Images can also be pasted with Ctrl+V or Cmd+V; clipboard images are limited to 16 MiB and picker images to DeepSeek's 64 MiB limit.
  • V4 Vision (Flash) receives DeepSeek file IDs directly. V4 Pro receives analyze_images only when the current prompt has images; that tool asks Vision for a bounded text description that Pro can read.
  • If experimental Vision becomes unavailable on the official API, text work retries once with stable V4 Flash. A direct image chat continues without the images and states that limitation; V4 Pro image analysis fails explicitly so a text-only model is never mistaken for vision.
  • Uploads use the DeepSeek Files API with purpose user_data and a 30-day expiry. Base64 is transient clipboard IPC only and is never stored in history or sent inside provider messages.
  • Removing a draft image attempts local and remote deletion. Permanent conversation deletion cleans image resources only after the Undo window closes.

Concurrent generations and queues

  • Only one generation runs at a time in each conversation. Additional prompts in that conversation are queued in submission order.
  • Different conversations can generate concurrently up to the configured global limit.
  • While a response is active, one button shows Stop when the draft is empty and Guide when it has content. Enter restarts the transport and continues the same task under the new guidance; holding Ctrl changes the button to Queue, and Ctrl+Enter appends an independent draft after the active response. Shift+Enter inserts a newline.
  • Switching conversations or recreating the webview does not transfer stream or tool events between runs; every event is bound to its generation and conversation.
  • If VS Code closes, partial output is restored as interrupted, unfinished tools become cancelled, and queued prompts are offered as recoverable drafts on the next activation.

Permissions and tool states

  • default asks before every tool; auto-approve runs routine operations automatically anywhere and confirms elevated or critical actions; full-access runs routine and elevated operations anywhere and confirms only critical actions that could make the computer unusable or cause broad irreversible loss.
  • There is no per-tool permission matrix. The Web search switch removes search_web and read_web from model requests when disabled. Workspace binding and VS Code Workspace Trust remain enforced.
  • Tool calls move through awaiting confirmation, running, and one terminal state: completed, rejected, cancelled, or error.
  • The extension host acknowledges execute and reject actions before the webview commits the visible state.
  • Tool calls in a round run sequentially. Identical calls are skipped until a workspace mutation makes a legitimate repeat useful. Tool cycles have no configurable round or per-block call limit; an independent reviewer checks progress after 20 completed rounds and every five rounds thereafter without disabling tools.
  • Read-only tools may run across concurrent conversations, while file and terminal mutations are serialized within the same workspace.

Activity and file results

  • Adjacent reasoning and tool calls are collapsed into an Activity panel by default. Expand it to inspect individual reasoning steps, tool states, arguments, and relevant results.
  • Conversation usage appears in a compact popover beside the permission selector, including per-model totals after model switches. If some DeepSeek requests omit usage, available reported requests still produce an explicitly marked lower-bound cost.
  • A successful read_file call does not duplicate the file body in Chat. Use Open file to inspect it in the editor; failed reads still show their diagnostic result.
  • Completed create_file, edit_file, and apply_patch calls expose View change when a complete diff is available. It opens the before and after content recorded for that specific tool execution, independent of later working-tree changes.
  • search_content matches literal text case-insensitively through the VS Code workspace filesystem; it does not run a shell or treat the query as a regular expression. The query must contain text and is limited to 4,096 characters.
  • Its optional filePattern is a workspace-relative glob such as *.ts or src/**/*.md. It defaults to **/*, is limited to 1,024 characters, and rejects absolute paths and parent traversal.
  • Sensitive paths, binary files, and files larger than 2 MiB are skipped. Sensitive files are filtered before their contents are read.
  • A search considers at most 10,000 files and returns at most 50 matches. Result lines and total output are bounded, and the response reports scanned and skipped files plus whether it was truncated.
  • Search stops when the request is cancelled and times out after 15 seconds.
  • When Web search is enabled, the default http://127.0.0.1:8888 endpoint is managed by the extension. The first start downloads the pinned SearXNG runtime for the current platform, verifies its expected size and SHA-256 digest, and runs it only on loopback without requiring system Python, Docker, Podman, or Chromium.
  • Settings loads the configured instance's engine catalog. Leaving the selection automatic uses the instance defaults; selecting engines sends their validated shortcuts with each search.
  • A compatible custom SearXNG endpoint can be configured. Non-loopback endpoints must use HTTPS, and URLs containing credentials are rejected.
  • search_web returns up to ten normalized HTTPS results. read_web accepts only a URL registered by that search or explicitly supplied by the user, then extracts bounded inert page sections.

Terminal execution

  • Each agent command runs non-interactively and visibly in a dedicated VS Code integrated terminal through Shell Integration. The terminal closes after the command completes while the captured result remains in Chat.
  • The result records bounded stdout/stderr, exit code, signal, timeout, cancellation, effective working directory, and shell.
  • Output is bounded; when truncated, the beginning and end are retained and the omitted middle is marked.
  • Detached and background process launchers are rejected. Agent terminals disable .NET build-server and node reuse so completed builds do not leave orphaned workers or locked project files.
  • In automatic modes, terminal commands and file mutations are classified by a separate DeepSeek instance as routine, elevated, or critical; there is no local danger analyzer.
  • The reviewer receives the initial user request, a content-free action description, mechanical scope facts, and bounded non-sensitive context from explicitly named workspace files.
  • The reviewer may approve, return constraints for safer replanning, or request manual confirmation. Auto-approve confirms elevated and critical actions; full-access confirms critical actions. Automatic decisions require medium-high confidence or above.

History and privacy

  • Settings are stored in ~/.yrs-dpsk-copilot/settings.json. API credentials remain in VS Code Secret Storage, isolated by normalized origin, and are never included in WebviewConfig, history, or checkpoints.
  • History is stored globally as one JSON file per conversation in ~/.yrs-dpsk-copilot/history/ and each entry shows its source workspace.
  • History can be disabled and retention can be configured from 0 days (manual deletion only) to 3650 days. The default is 30 days.
  • Disabling history enters Incognito mode. Active generations and queued prompts require confirmation before they are stopped and cleared. Incognito chats stay only in memory, survive navigation between Chat, History, and Settings, and are discarded when the extension or VS Code reloads. When leaving, the current chat can be explicitly saved as a new conversation or discarded.
  • The history list is rebuilt directly from validated conversation files. Storage is capped at 100 conversations and 24 MiB.
  • Deleting one conversation or all visible conversations uses a native VS Code confirmation and offers Undo. Deletion first cancels active work and clears its queue/checkpoint; image cleanup waits until Undo expires so restoration remains complete.
  • Conversation files must use schema version 2 with a complete workspace binding and current context summaries. On activation, every incompatible, malformed, oversized, or mismatched history file is permanently deleted together with its message segments; no legacy migration is attempted.
  • Active work is checkpointed without the API key under ~/.yrs-dpsk-copilot/generation-checkpoints/. Interrupted pending or running tools are restored as cancelled; only schema-3 checkpoints with a complete workspace binding are recovered, and incompatible records are deleted.

Context and slash commands

  • Auto context includes the active editor plus staged and unstaged Git changes with time and size limits.
  • Referenced files and AGENTS.md instructions are size-limited, use workspace-relative labels, and are delimited as untrusted data.
  • The total request budget includes system prompts, tool schemas, history, references, output allowance, and safety margin. Complete older generations are summarized atomically; large files are reduced to literal relevant line ranges. Tool arguments, required reasoning, and active tool cycles are never truncated.
  • Use /context to inspect what a normal request would send. Other commands include /status, /tools, /mode, /auto-context, /review, /goal, /summarize, and /clear-context.