SuperAPI AI Directory

soia-env-qoder-cli-install

Deployment & operations

View repository

Updated 10-16 09:52

About this skill

soia-env-qoder-cli-install

Install and verify the standalone Qoder CLI (command qodercli). The Agent performs the terminal steps; the customer only completes login and authorization on the official Qoder page.

Customer-readable instructions

What this skill can do

What the customer wants What the skill will do What the customer can see
Install Qoder CLI Check the system and existing sources, install the official stable version Version, install source, directory, and verification results
Check or update Read-only version comparison; after an explicit request for the latest version, update along the original source Whether an update is available and the actual handling result
Log in to Qoder Launch qodercli login or official interactive login Official browser authorization steps
Command unavailable Check PATH, duplicate installs, and configuration status Blocking cause and safe fix plan

How the customer uses it

  1. The customer directly says "install Qoder CLI"; the customer is not required to enter terminal commands.
  2. The Agent first performs a read-only check and shows the installation plan. Installing a missing tool is not the same as updating an existing tool.
  3. "Update Qoder" first reports the current and latest versions; the update is executed only after an explicit "update to the latest version".
  4. During login, the Agent starts the official flow, and the customer only clicks authorize in the official browser; do not paste keys in chat or the terminal.
  5. After completion, verify the version, help command, and one side-effect-free startup, then output the fixed ten-column list.

First login and real configuration verification

  • 配置文件目录Only display candidate directories; the skill must also check config_status and config_file_status; if the directory or ~/.qoder/settings.json does not exist, explicitly report "not initialized".
  • On first use, the Agent starts qodercli, and in the interactive interface executes /login; the customer chooses browser login and completes authorization on the official Qoder page, with no need for the customer to operate the terminal.
  • If the customer explicitly chooses a Personal Access Token, the application entry point is Qoder Integrations; the customer enters it only in the official login flow, and the Agent does not receive or print the token.
  • After login, recheck ~/.qoder/settings.json, run qodercli --version and a side-effect-free startup; if login has not been completed, write "waiting for first login" as the handling result, and do not write only "installed".

Dependencies and installation

Dependency Type How to handle when missing
Officially supported operating systems Hard dependency On unsupported platforms, stop the installation and explain why
Node.js/npm npm channel dependency Not required for the official standalone installation; call only when npm is chosen soia-env-node-install
Network diagnostics Optional prerequisite Call when the official site is unreachable soia-env-network-diagnose
Qoder account Login dependency The customer completes authorization on the official page; the Agent does not read credentials

Official facts are in official-sources.md。

standard process

  1. Run python3 scripts/inspect_cli.py --json, check qodercli, version, source, installation directory, and the actual existence status of the ~/.qoder configuration directory/files.
  2. Run python3 scripts/check_latest.py --json, read the latest version of @qoder-ai/qodercli from the official npm metadata.
  3. When installed and working, write “Installed”; when authorization to obtain the latest version has not been obtained, only report it and do not reinstall or call the updater.
  4. When not installed, prefer the official standalone installation; when the customer chooses npm, use npm install -g @qoder-ai/qodercli. Official network scripts must first be downloaded to a separate temporary directory, verify the source and content, and then execute the local copy; do not directly execute a network response.
  5. After explicitly updating to the latest: for standalone sources use qodercli update; for npm sources use npm install -g @qoder-ai/qodercli@latest; Homebrew updates along the actually installed cask. Do not silently switch sources.
  6. Verify that the same absolute path has --version、--help and side-effect-free startup. When login is required, start qodercli loginand hand the browser over to the customer.
  7. Recheck the version and directories, use scripts/render_status.py to output the customer list.

Product automatic update boundaries

  • Qoder CLI itself may enable automatic upgrades by default; the Agent must disclose this status, but this skill will not trigger an update due to version checking.
  • Read-only checks must not modify ~/.qoder/settings.json the general.enableAutoUpdate。
  • When the customer requests adjusting automatic updates, first show the impact, back up non-secret settings, and review; this and “update to the latest this time” are two independent authorizations.

Customer status list (mandatory)

The reply must begin with the following ten-column table, outputting only one row Qoder CLI:

Skill Current status Current version Latest version Running status Installation method Installation directory Configuration file directory Update time Handling result
Qoder CLI <Installed/Not installed/Blocked> <Version or not obtained> <Version or not obtained> <Normal/Abnormal/Unverified> <Official standalone installation/Homebrew installation/npm global installation/Not obtained> <Directory or not obtained> <Directory or not obtained> <Installed/Already latest/Updatable, not executed/Awaiting confirmation whether to update to the latest/Updated/Blocked: reason>
  • When the user only asks about Qoder CLI, do not add rows for Node.js, npm, other AI CLIs, or other skills.
  • 更新时间 is generated after final verification; for directories use ~ relative paths to avoid exposing usernames.
  • After the update is complete, 当前状态 is still “Installed”,处理结果 write “Updated”.
  • For multiple command copies, only report the one currently in effect in the login shell and indicate the conflict; do not automatically delete.
  • If obtaining the latest version fails, write “Not obtained”; do not guess.
  • config_status=未创建 or config_file_status=未创建 , write “Awaiting first login/configuration” in the handling result, and also provide qodercli、/login and the official entry point; do not treat candidate paths as ready-made configuration.

Intermediate status of installation and update

When actually installing or updating, generate a random run_id, and call each actual stage immediately scripts/record_install_progress.py and display synchronously:

checking → planning → [waiting_confirmation] → installing/updating → verifying → completed/failed/blocked
Stage Current status Update time Processing result
<check/plan/waiting for confirmation/install or update/verify/complete or fail> <in progress/waiting/completed/failed/blocked> <redacted result>

Read-only checks do not write to disk. Updated updating、verifying and completed must carry the customer's explicit latest-version authorization marker; stage records only save fixed codes and times, and do not save accounts, full command text, response bodies, or private paths.

Permissions and rollback

  • Prefer user-level installation; do not use administrator privileges by default. Confirm separately before modifying PATH, shell profile, switching sources, or overwriting commands.
  • Record the old version and source before updating; on failure, keep the original installation and do not automatically uninstall, downgrade, or clean up configuration.
  • Temporary installation files use the system temporary directory and are cleaned up on success, failure, and cancellation.

Private information and intermediate data

  • Login credentials are stored by the official Qoder login state or the system credential store; do not read, copy, or print credential contents.
  • Non-secret configuration stays in ~/.qoder; SOIA does not create a separate credential file.
  • Only machine changes are written to the redacted progress state; version checks are stateless by default.
  • Do not record tokens, cookies, sessions, authorization codes, accounts, response bodies, or customer private absolute paths.

Logs and completion receipt

The final receipt includes the fixed ten-column table, verification items, whether the auto-update setting was only read, and whether the customer still needs to authorize in the browser. Normal dependencies are not expanded into additional rows.

Forward testing

Use a temporary fake qodercli to cover missing, normal, version anomaly, and multiple copies; mock the npm latest-version response; verify the fixed list, path redaction, no update by default, and the update authorization gate.

Install the entire domain (Claude Code and Codex share the same domain plugin):

claude plugin marketplace add soia-team/soia-open-skills
claude plugin install soia-env@soia

Install only this one skill:

npx skills add soia-team/soia-open-env-skills -g -a '*' -s soia-env-qoder-cli-install -y

WorkBuddy 's loading unit is role-based experts rather than plugins,npx skills add -a '*' cannot cover it, and it needs to be installed separately, see docs/install/workbuddy.md。