Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>CoupletNew to Visual Studio Code? Get it now.
Couplet

Couplet

Rahul Sharma

|
8 installs
| (0) | Free
An AI coding assistant for VS Code, powered by SAP AI Core.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Couplet

An AI coding assistant for VS Code and Cursor, powered by SAP AI Core. Chat, inspect, edit, and run commands without leaving your editor.

Features

  • Chat with your SAP AI Core deployments, including OpenAI, Claude, Perplexity, Cohere, Gemini, and other supported providers.
  • Read and edit workspace files, search your code, and run development commands.
  • Choose between Ask and Auto approval modes for command execution.
  • Paste images with Ctrl+V / Cmd+V for vision-capable models.
  • Keep session history, rewind changes, and review touched files.
  • Run independent tests, builds, searches, and read-only subagents in parallel.
  • Chat without opening a workspace; workspace tools become available when one is opened.

For enhancement requests, email rahul@sharma.so.

Install

You need one file: couplet-<version>.vsix. Pick whichever is easier.

From the editor (no terminal):

  1. Open the Extensions view (Cmd/Ctrl+Shift+X).
  2. Click the ... menu at the top of that panel → Install from VSIX…
  3. Select the .vsix file.
  4. Reload the window when prompted (Cmd/Ctrl+Shift+P → Developer: Reload Window).

From a terminal:

code --install-extension couplet-0.0.29.vsix     # VS Code
cursor --install-extension couplet-0.0.29.vsix   # Cursor

Then reload the window.

To upgrade later, install the new .vsix the same way — the version number must be higher, otherwise the editor keeps the cached copy.

Set up credentials

Everything is entered in the panel; you never have to edit settings.json.

  1. Click the Couplet icon in the activity bar (left edge).

  2. Click the gear icon in the panel header.

  3. Fill in the fields from your SAP AI Core service key:

    Field Where it comes from
    Client ID clientid in the service key
    Client secret clientsecret in the service key
    AI Core base URL serviceurls.AI_API_URL
    Auth URL url
    Resource group usually default

    There is no deployment ID to find: Couplet lists the running deployments in your resource group and resolves the right one from the model you pick.

  4. Click Test connection. It lists your deployments and then sends one trivial message, so you know credentials, endpoint, and streaming all work before you start a real task rather than finding out midway through one.

  5. Close settings (✕), pick a model from the composer, and send a message.

The model picker uses the executable and deployment metadata returned by SAP AI Core. Couplet automatically selects the matching request format for OpenAI-compatible models (including Perplexity and Mistral), Cohere Chat, Vertex AI Gemini, AWS Bedrock Claude, and other AWS Bedrock Converse models. You only need a RUNNING deployment in the selected resource group. Non-chat deployments such as embeddings or tabular prediction models are reported as unsupported because this extension is a coding chat client.

The client secret is stored in your OS keychain via the editor's SecretStorage, not in settings.json. The other values are plain configuration, written to your user settings so they follow you into every workspace.

Using it

Open Couplet, choose a model, type a request, and press Enter. Couplet handles the conversation and shows tool activity as it works. Ask it to run independent tests, builds, or searches in the background when you want parallel progress.

Chat works without a workspace folder. File, shell, and background-job tools become available as soon as you open a folder.

Paste an image directly into the composer with Ctrl+V / Cmd+V. Images are previewed before sending and resized automatically when needed.

Safety and storage

Standing approvals

The Always allow option stores a pattern — the program plus a bare subcommand, so approving npm run build grants npm run, not npm. Four rules bound it:

  • Anything carrying shell metacharacters (&&, |, ;, backticks, $(, >) is never eligible, so a grant for npm test can never cover npm test && curl … | sh.
  • Anything the policy treats as destructive or noteworthy — rm, sudo, git push, curl, wget, redirects, absolute paths — is never eligible. The caret simply is not offered.
  • Every rule is re-checked when a command is matched, not only when the pattern was stored, and matching is on the derived pattern rather than a string prefix. npmfoo run does not match npm run.
  • Neither scope can be reached by a repository. Always allow writes to your user settings, where you can see and revoke it; Allow in this workspace is kept in the extension's own per-workspace storage, outside the repo. couplet.alwaysAllow is honoured only from your user settings — a workspace value is ignored, so a cloned repository cannot ship a .vscode/settings.json granting itself permission to run its own commands unattended.

Keeping the agent away from certain files

Add a .coupletignore to the workspace root, same syntax as .gitignore. Listed paths are excluded from read_file, search_replace, grep, and list_dir. .gitignore is honoured too. Note this does not restrict shell commands the agent runs.

What gets written to your workspace

A .couplet/ directory holding session transcripts (sessions/*.jsonl) and rewind checkpoints (checkpoints/). Checkpoints contain copies of file contents, so add .couplet/ to your .gitignore.

Configuration reference

Most people never need these — the settings panel covers the common ones.

Setting Default Purpose
couplet.clientId "" SAP AI Core client ID
couplet.aiCoreBaseUrl "" serviceurls.AI_API_URL from the service key
couplet.tokenUrl "" OAuth token URL (url from the service key)
couplet.resourceGroup "default" AI Core resource group header
couplet.apiVersion "2024-10-21" Inference API version
couplet.model "" Model to route to, as name:version; the provider request format is detected from its SAP deployment
couplet.approvalMode "ask" ask or auto
couplet.alwaysAllow [] Command patterns to run without asking; user settings only
couplet.contextBudget 100000 Token budget before the transcript is compacted

The client secret is deliberately absent from this table — it lives in SecretStorage and has no settings.json key.

There is no deployment ID setting to fill in. Couplet lists the running deployments in your resource group and picks the one serving your chosen model, re-resolving automatically if a redeploy issues a new id. If your tenant somehow exposes a deployment that cannot be discovered, adding "couplet.deploymentId" to settings.json by hand still pins that id — it is read but intentionally unlisted, so it never shows up as a setup step.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft