Unofficial
On this page
  1. 01Before you start
  2. 02Install a tool
  3. 03Start it and sign in
  4. 04The skill in every project
  5. 05An agent keeps the editor running

Claude Code, Gemini CLI and Codex CLI in the editor on your NAS

The editor of Bucket & Code Server IDE is VS Code in the browser, one instance for each account. Each account installs the AI command-line tools it wants into its own home folder, signs in to them with its own account at their vendor, and runs them in the editor's terminal next to its projects.

  1. Installinto your home folder
  2. Startin the editor's terminal
  3. Sign inyour own account
  4. Projectthe skill it reads
  5. Endwhen it idles

The pictures come from the Editor settings page and the editor of Bucket & Code Server IDE with each step done as this guide describes. The account is called ola; no tool was signed in.

01Before you start

  • The Editor module is on: an admin presses Turn on Editor on its tile on the Overview. The editor is for developer and admin accounts.
  • The editor's terminal is a root shell on the NAS, and so is everything an assistant runs in it: on QTS the package's processes run as admin. Give the developer role only to people you would give the NAS's admin password, and read what an assistant wants to run before you let it.
  • The NAS reaches the internet: the tools download from their vendors and talk to their services.

02Install a tool

On the Editor settings page, the AI command-line tools card lists the three tools. Each account installs, updates and removes them for itself; another account does not see them.

The AI command-line tools card: installed into your own home folder, signing in happens in the editor's terminal; Claude Code, Gemini CLI and Codex CLI, each not installed, with an Install button
ToolInstalled withCommand
Claude CodeAnthropic's installer, npm if that failsclaude
Gemini CLInpm, @google/gemini-cligemini
Codex CLInpm, @openai/codexcodex
  • Install runs a job, with its log on the Jobs page. The tool goes into your home folder (home/<account> in the data folder: ~/.local/bin, ~/.npm-global/bin), which is on the terminal's PATH and stays through package updates. Claude Code installed: version 2.1.294 from the native installer, its command claude, and the buttons Update and Remove; Gemini CLI and Codex CLI not installed
  • Update installs the newest version the same way. Remove takes the program out of your home folder; its settings and sign-in stay there. The dialog Remove Claude Code?: it is removed from your home folder, and its settings and sign-in data remain; with Cancel and Remove

03Start it and sign in

Open the editor on the Editor settings page opens VS Code in a new tab. Open a terminal (Ctrl+`), go into the project's folder and start the tool:

# in the editor's terminal: the editor and its terminal start in projects/
cd mytool
claude        # or gemini, or codex

On its first start each tool asks for its own setup and sign-in: an account with its vendor or an API key, always yours. The tool keeps its sign-in in your home folder.

The editor's terminal with Claude Code's first screen: choose the text style that looks best with your terminal, Dark mode chosen, and a sample diff
  • Claude Code also comes as an extension, Claude Code for VS Code, from the Extensions view (Ctrl+Shift+X). Extensions come from Open VSX, and each account keeps its own in ide/<account>/extensions. Its panel signs in to Anthropic.
  • The extension's panel is a view the extension draws itself, and the browser shows such views only when it trusts the panel's certificate. With the self-signed certificate accepted through the browser's warning page the panel stays empty; the Editor settings page says so. Trust the certificate (Download the certificate on the Network page), or run Claude Code: Open in Terminal from the command palette, which works with any certificate.
  • VS Code's own chat and Copilot features are off (chat.disableAIFeatures), which saves memory in every instance. The tools above are separate programs and are not affected.

04The skill in every project

Every project that New project makes carries a skill for AI assistants: guidelines for working on a QNAP NAS. It explains what the NAS is at the shell (a RAM-disk root, BusyBox, no systemd, no package manager), its storage and ports, and how to build, sign and publish with this package (bvs env run, bvs qbuild, the App Builder, the package repository). It also lists what an assistant must not suggest, such as apt on the NAS or allowing unsigned apps in App Center.

# a project made by New project
projects/mytool/
  AGENTS.md                  # points to the skill
  .claude/skills/qnap-dev/   # the skill itself
  • Start the assistant in the project's folder, not in projects/: each tool looks for these files in the folder it starts in.
  • Claude Code loads the skill from .claude/skills/ when a task needs it. Codex CLI reads AGENTS.md. Gemini CLI reads AGENTS.md once the project's .gemini/settings.json holds {"context": {"fileName": ["AGENTS.md", "GEMINI.md"]}}.
  • A project made before the package had the skill, or copied from the Examples gallery, gets it by copying /usr/bin/bucketvs/share/skills/qnap-dev into its .claude/skills/.

05An agent keeps the editor running

An instance stops after 30 minutes without traffic from a browser, but never while something started from it still runs. An AI agent waiting at its prompt counts: Memory and processes on the Editor settings page marks it AI agent, with a pin under Keeps it running.

Memory and processes for ola: this editor's memory against the NAS's; the processes code-server, the extension host, claude marked AI agent with a pin under Keeps it running, the terminal's bash and two language servers, each with End where it may be ended

When the agent is no longer needed, end it in the terminal, or press End in its row. bvsd sends it SIGTERM, and SIGKILL if it still runs 5 seconds later; the agent stops in the middle of what it was doing. With nothing left running and no browser open, the instance then stops after its idle time.

The dialog End claude?: bvsd sends it SIGTERM, and SIGKILL if it still runs 5 seconds later; what it was doing stops, and what it started may end with it; with Cancel and End