Selection Assistant

unlisted

by veritasian

Select text to translate, search, copy, or run custom LLM prompts via a floating toolbar.

Updated 2mo ago
View on GitHub

Ai Selection Assistant — Smart Floating Toolbar for Obsidian

Drag-select any text in Obsidian and a sleek floating toolbar appears. Translate, copy, search, or run custom LLM prompts — all without leaving your note.

GitHub stars license Obsidian

中文说明

Why Selection Assistant

Obsidian is a powerful writing tool, but switching between apps to translate, search, or process text breaks your flow. Selection Assistant puts everything right next to your cursor — just drag, click, done.

Each button shows the first letter of its name in a white circle. Native to Obsidian, adapts to light/dark theme automatically.

Features

  • Drag-select to trigger — no clicking, no double-clicking. Only appears when you intentionally select text
  • Translate — Google Translate API, auto-detect → your target language
  • Copy & Search — one-click copy to clipboard or open in Google/Bing
  • Custom LLM skills — up to 5 skills powered by your own AI provider
  • Provider presets — DeepSeek, OpenRouter, Ollama, or custom endpoint
  • Fetch & test — pull model list from API, test connection before saving
  • Reorderable toolbar — visible buttons + "⋯" overflow menu
  • Right-click menu — Copy, Paste, Cut in context menu
  • Dark mode — inherits Obsidian theme colors

Quickstart

cd YOUR_VAULT/.obsidian/plugins
git clone https://github.com/veritasian/selection-assistant.git

Restart Obsidian. Settings → Community Plugins → Enable Selection Assistant.

Open any note, drag-select some text. The toolbar pops up.

Settings

SectionWhat you configure
GeneralSearch engine (Google/Bing), translate target language (zh/en/ja/fr...), max visible buttons
LLMProvider dropdown (DeepSeek/OpenRouter/Ollama/Custom), API host, API key, fetch models, save & test
Custom SkillsAdd up to 5 skills: English name + prompt with {{text}} placeholder. First letter becomes the icon
Toolbar Order↑↓ to arrange button sequence

How it works

User drag-selects text
        │
        ▼
┌──────────────────────────────────┐
│  Ⓣ  Ⓒ   Ⓢ   Ⓔ   Ⓢ   Ⓘ   ⋯    │  ← toolbar
│  Tr  Cp  Sr  Ex  Su  Im  more   │
└──────────────────────────────────┘
   │    │    │    │──────┘──────┘
   ▼    ▼    ▼    ▼
 Google Clip Browser LLM

Built-in actions

ActionTechnologyNo setup needed
Translatetranslate.googleapis.com
Copynavigator.clipboard
SearchOpens google.com or bing.com

Custom skills (LLM)

Bring your own API key. Supports any OpenAI-compatible endpoint (/v1/chat/completions).

Supported providers out of the box:

ProviderEndpointDefault model
DeepSeekapi.deepseek.com/v1deepseek-chat
OpenRouteropenrouter.ai/api/v1openai/gpt-5.2
Ollamalocalhost:11434/v1llama3.2

Example prompts:

Explain:    "Explain in simple terms:\n\n{{text}}"
Summarize:  "Summarize in 3 bullet points:\n\n{{text}}"
Polish:     "Improve the writing, keep the same meaning:\n\n{{text}}"
Translate:  "Translate to French:\n\n{{text}}"
Review:     "Review and suggest improvements:\n\n{{text}}"

Requirements

  • Obsidian v1.0.0+
  • Internet connection (for Translation and LLM features)
  • API key from your chosen provider (for Custom Skills)

License

MIT © veritasian

For plugin developers

Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.