Skip to content

Claude Code Plugins

Carrel: A Private Desk in the Library, Set Up by AI

Carrel pairs a full Claude Code research-environment plugin with a portable multi-host Agent Skill, both governed by explicit trust and sensitivity boundaries.

A research desk should emerge from conversation, not from a checklist.

Carrel now comes in two forms. The full Claude Code plugin provides the dedicated setup agent, slash commands, hooks, workflow skills, and a typed Python CLI. The standalone skills/carrel/ Agent Skill carries the same research-vault practice into other Agent Skills hosts through portable workflows, contracts, templates, and a bundled stdlib-only Python runtime.

The full plugin lives at linxule/carrel. The portable skill has its own repository at linxule/carrel-skill.

The portable skill is not merely the old CLI without Claude. It preserves the conversational onboarding and judgment layer, then uses its bundled runtime for deterministic vault and policy operations. It is a strict subset of the full plugin, which remains the richest Carrel surface. Both keep the premise that made Carrel worth building: the product is not the install; it is the relationship that begins during install.

CLAUDE CODE PLUGINXule LinFull plugin: Python 3.11+ / uv + JavaScript hooks; portable skill: Python 3.10+ stdlib

Sourcegithub.com/linxule/carrel

Interview first, install second. The setup is the pedagogy.

The full plugin bootstrap supports macOS, Linux, and Windows. The portable skill runs wherever a host can discover the whole skill folder, execute bundled files, and provide Python 3.10 or newer.

Why it matters

The list of tools at the bottom of an "AI research stack" tutorial may be correct. Following it is still the wrong way to start, because you end up with a configured machine and no understanding of why each piece is there.

Carrel inverts that. In the full plugin, @setup-interviewer asks about the researcher's actual work before installing anything. In a portable host, the same interview is defined in the skill's onboarding workflow. A short stretch reads roughly like this:

Setup-interviewer: What kind of source material do you work with most? Mostly PDFs, mostly interview recordings, mostly notes from the web, or a mix? You: A mix, but heavy on interview audio right now. Setup-interviewer: Good to know. I'll set up coli for local transcription and liteparse for ordinary PDFs. For complex tables or scans, I can offer MinerU or Mistral OCR after we check whether cloud processing is acceptable. Anything sensitive about the audio? Patient interviews? Anything under NDA?

The product of the interview is a stack the researcher can explain. Its record also gives later setup, repair, and research sessions a shared account of the environment and its boundaries.

Two surfaces, one contract

Full Claude Code plugin

The plugin is the complete experience:

  • 15 /carrel-* commands: seven thin wrappers over typed CLI subcommands and eight full skill prompts.
  • Two agents: @setup-interviewer for onboarding and @research-partner for thinking with the researcher.
  • 13 workflow-specific plugin skills, plus the portable Carrel umbrella skill in the repository.
  • Four hooks for environment checks, reflection prompts, per-turn vault context, and a cloud-tool sensitivity checkpoint.
  • An installed carrel CLI with 11 subcommand groups: paper, transcript, capture, google, vault, env, setup-state, trust, automate, batch, and migrate.

The slash commands and hooks call the installed typed CLI. They do not call the portable skill's bundled runtime.

Portable Agent Skill

The standalone skill is a host-neutral operating layer for research vaults. Its lean SKILL.md routes the agent to deeper workflow and contract references. Templates under assets/ scaffold the vault, while scripts/carrel.py and scripts/carrel_core/ provide a stdlib-only Python 3.10+ runtime with no pip dependencies.

That runtime handles low-freedom operations such as vault initialization, profile validation and repair, document filing, batch work, trust checks, policy explanations, automation configuration, reflection logs, feedback export, and collaborator handoffs. Search, synthesis, note design, and the interview remain agent work.

The portable surface does not provide Claude Code slash commands, hooks, agents, marketplace state, plugin migrations, or direct cloud-provider calls. Host adapters may add those capabilities while preserving the portable contracts.

Commands

These commands belong to the full Claude Code plugin. Portable hosts invoke the skill in natural language and let it call scripts/carrel.py when a deterministic operation is needed.

CommandWhat it does
/carrel-setupFull onboarding interview, audit, scaffold a vault
/carrel-statusCheck what's installed and working
/carrel-fixDiagnose environment drift and guide recovery
/carrel-convertConvert PDF / Word / slides to markdown in your vault
/carrel-batchBatch convert or transcribe a folder; file results into the vault
/carrel-captureSave web content to your vault
/carrel-transcribeTranscribe audio to text in your vault
/carrel-automateSet up or update overnight vault maintenance and analytical tasks
/carrel-reflectEnd-of-session reflection
/carrel-mirrorSynthesize your research patterns from reflections and logs
/carrel-cheatsheetRegenerate your reference card
/carrel-shareGenerate a collaborator handbook for this vault
/carrel-teammatesAdd, remove, or review model teammates (Codex, Gemini, Kimi)
/carrel-migrateCheck for updates, show what's new, apply migrations
/carrel-feedbackGenerate an anonymized feedback digest for sharing

Host support

"Full" below means full support for the Carrel surface available on that host. On non-Claude hosts, that surface is the portable Agent Skill, not the full Claude Code plugin.

Host support: which research environments this tool works in
HostSupportNotes
Claude Code (Desktop Code tab / CLI)Full supportInstall the full plugin for commands, hooks, agents, workflow skills, cloud adapters, and the typed CLI. Standalone skill installation is also supported when the plugin is absent.
Codex CLI / IDE / DesktopFull supportInstall the portable folder at `.agents/skills/carrel` or `~/.agents/skills/carrel`. Codex metadata lives in `agents/openai.yaml`; symlinked skill folders are supported.
CursorFull supportInstall the portable folder at `.agents/skills/carrel` or `~/.agents/skills/carrel`, with bundled scripts and assets intact.
OpenCodeFull supportUse `.agents/skills/carrel`, `.opencode/skills/carrel`, `~/.agents/skills/carrel`, or `~/.config/opencode/skills/carrel`; allow skill, read, and shell access.
Gemini CLIFull supportWhere Agent Skills are enabled, install at `.agents/skills/carrel` or `.gemini/skills/carrel` and allow access to bundled scripts and assets.
Kimi Code CLIFull supportInstall at `.kimi-code/skills/carrel`, `.agents/skills/carrel`, or the corresponding global path.
Claude app / Claude.ai chatPartial supportUpload the complete skill as a zip through Settings > Capabilities > Skills. Cloud execution can work with uploaded or connected files, but it cannot directly write an arbitrary local vault.
Claude CoworkFull supportWorks with a connected local folder while Claude Desktop is open. Remote-only sessions without that connection cannot reach the local vault.
Kimi app / Kimi WorkPartial supportSuitable for instructions and documents, but not verified for bundled local scripts. Use Kimi Code when the runtime must write a vault.

For a researcher who wants the full plugin, use Claude Desktop's Code tab. For a researcher committed to another host, install the portable skill and keep the whole folder together.

Trust and sensitivity

Trust governs what the agent may do. Sensitivity governs where research data may go. The two are separate, and high sensitivity overrides every trust level.

Carrel uses four trust levels:

  • Advisory: suggest, never act without explicit approval.
  • Consultative: prepare and propose actions, then ask before meaningful writes.
  • Delegated: act on routine work within named boundaries and report afterward.
  • Partnership: exercise broader autonomy only after explicit opt-in.

In the full plugin, the typed CLI enforces its action matrix through commands such as:

carrel trust check vault:move-file --vault .
carrel trust list --vault .

The portable runtime provides the corresponding checks:

python3 scripts/carrel.py trust check vault:move-file --vault .
python3 scripts/carrel.py trust list --vault .

The portable runtime stores and validates trust preferences, but the calling agent must still apply judgment before writes. If a host lacks the full plugin's hooks, its agent must also supply the confirmation step those hooks would have provided.

The sensitivity router follows three rules:

  • High: block cloud tools even when credentials and consent are present.
  • Medium: prefer local tools. A cloud route must be explicitly requested; the full plugin also pauses for human confirmation through its PreToolUse hook.
  • Low: still prefer local tools. Cloud fallback requires consent and an available adapter.

The full plugin implements cloud adapters for MinerU and Mistral OCR conversion, plus Groq and Gemini transcription routes. Mistral OCR is intended for scanned or layout-heavy documents and requires MISTRAL_API_KEY. The portable stdlib runtime can explain policy and report credentials, but it does not call those provider APIs directly. A host adapter must supply the cloud execution.

Install

Choose the surface you intend to use. Installing the portable skill does not install the full plugin, and installing only the typed carrel CLI does not install the portable skill.

Use the one-line bootstrap on a fresh machine or for facilitator-assisted setup.

PlatformCommand
macOScurl -fsSL https://raw.githubusercontent.com/linxule/carrel/main/install.sh | bash
Linuxcurl -fsSL https://raw.githubusercontent.com/linxule/carrel/main/install.sh | bash
Windowsirm https://raw.githubusercontent.com/linxule/carrel/main/install.ps1 | iex

The script installs the prerequisites, Claude Code, the Carrel plugin, and the typed carrel CLI. It is idempotent and safe to re-run.

Then open Claude Desktop, choose the Code tab, select the research folder, and run /carrel-setup.

Verifying installation

For the full plugin, run:

/carrel-status

For the portable skill, ask the host to use Carrel, then verify the bundled runtime from the installed skill directory:

python3 scripts/carrel.py env doctor --vault <vault> --format json

Facilitator-assisted setup

When setting up a researcher's machine in person:

Bootstrap

Choose the full plugin or portable skill before installing anything. For the full plugin, run the platform bootstrap script and help with GitHub authentication.

Run the interview

In Claude Desktop, run /carrel-setup. In another host, ask the installed Carrel skill to begin onboarding.

Human steps

Help install Obsidian and any local tools the interview selected.

Confirm and teach

Test with a real PDF, inspect the resulting vault, and make the trust and sensitivity choices legible.

Part of Research Memex

The full plugin's interview configures the research environment and then offers optional integrations. The portable skill can scaffold and repair the same kind of vault, but host adapters own system installation, scheduling, and direct cloud execution.

The full plugin environment

These are the foundation of the complete setup:

  • Obsidian: the researcher sees a notebook; the agent sees markdown.
  • The typed carrel Python CLI: 11 subcommand groups used by the plugin's commands and hooks.
  • Local conversion: liteparse for PDFs, markitdown for general formats, and defuddle for web pages.
  • Local transcription: coli plus ffmpeg.
  • Google Workspace: gws when the interview surfaces Drive or Docs work.

Optional integrations

The full plugin offers these MCPs only when the interview surfaces a need:

Tools Carrel's interview can install for you, and what prompts it
IntegrationCarrel asks whenNotes
Voxresearcher wants multi-model access (Gemini, GPT, Grok, Kimi, …)Carrel adds Vox at project level if the interview surfaces multi-model needs. Requires at least one provider API key.
MinerUresearcher works with complex / scanned PDFsCarrel adds MinerU at project level for PDF-heavy work. Requires MINERU_API_KEY.
Zotero MCPresearcher uses Zotero for citations and PDF-library workCarrel can add Zotero MCP when citation-library integration is part of the researcher's workflow. Requires Zotero/local library setup and optional Zotero API credentials depending on mode.

The typed CLI also carries a Mistral OCR cloud adapter for scanned or layout-heavy documents, when cloud processing is allowed. It has no Toolkit page of its own because it is a provider route inside the CLI, not an agent-callable server. Its credentials are covered in the API-key guide (docs/api-keys-guide.md).

Each integration needs its own credentials. The portable runtime can record these choices and report configured keys, but provider calls and MCP installation remain adapter work.

What Carrel does not install today

Carrel does not currently install sibling Claude Code plugins, methodology-specific MCP bundles, compute-heavy optional MCPs, or standalone research platforms. These are scope decisions, not architectural limits:

Tools Carrel names but does not install, and how to get them
ToolInstall pathWhy Carrel skips it
Kimi Plugin for Claude CodeMarketplace or manual installSibling Claude Code plugin. Carrel's onboarding doesn't currently install it — scope decision, not architecture (Carrel's agents can shell out to `claude plugin install` like any other bash command). Cross-host: a Codex CLI or Codex app session can also install this CC plugin for you via the same shell command. Install from the plugin marketplace today.
MemexMarketplace or manual installSibling Claude Code plugin. Carrel's current onboarding doesn't install it, but the constraint is scope, not architecture — Carrel's agents could shell out to `claude plugin install` like any other bash command. Cross-host: a Codex CLI / Codex app session can also install Memex for you via the same shell command. Install from the plugin marketplace alongside Carrel today.
Interpretive OrchestrationMarketplace or manual installSibling Claude Code plugin; Carrel's docs explicitly recommend pairing for qualitative methodology work. The current Carrel interview doesn't install it (scope, not architecture — Carrel's agents could shell out to `claude plugin install`). Cross-host: a Codex CLI / Codex app session can install this CC plugin for you the same way.
DeepThonkReasoning/coding MCP and CLI. It is not part of Carrel's environment interview today; add manually when a project needs OpenDeepThink-style test-time compute.
Lotus WisdomMethodology-specific MCP. Not part of Carrel's general-researcher interview — bundled inside Interpretive Orchestration where it powers /qual-wisdom-check.
Sequential ThinkingMethodology-specific MCP. Not part of Carrel's general-researcher interview — bundled inside Interpretive Orchestration where it powers /qual-think-through.
OpenInterviewerStandalone web platform; deployed separately on Vercel or self-hosted. Not in Carrel's install scope.
Research ScannerStandalone skill artifact, not a plugin Carrel knows about.

These tools coexist with Carrel without sharing state. The division is by layer: Carrel sets up and maintains the research environment, while the other tools add methodology, memory, review, compute, or a separate application surface.

cite this page

Lin, X. (2026). Carrel: A Private Desk in the Library, Set Up by AI. Research Memex. https://research-memex.org/docs/toolkit/carrel

@misc{docs-toolkit-carrel-2026,
  author = {Xule Lin},
  title = {Carrel: A Private Desk in the Library, Set Up by AI},
  year = {2026},
  howpublished = {\url{https://research-memex.org/docs/toolkit/carrel}},
  note = {ORCID: 0000-0001-7885-4194}
}

one renderingthe source remains