devhive1/devhive-cli

package-management

Install and manage language packages, system dependencies, and programming language runtimes.

소스 보기

사용 방법

  1. 설치 명령을 복사하고 자신의 에이전트 환경에 설치하기 전에 소스 패키지를 확인하세요.
  2. 필요한 도구, 인증 정보, 지원 환경은 원본 문서에서 확인하세요.
  3. 입력과 원하는 산출물을 설명하고 출처와 결과를 대조하세요.
npx skills add https://github.com/devhive1/devhive-cli --skill package-management

시작 전 확인

  • 설치에는 모델 구독, API 한도, 파일 접근 권한이 포함되지 않습니다.
  • 별점 수와 설치 수는 활동 지표이며 독립적인 품질·보안 검증이 아닙니다.
원본 Skill 문서

원본 저장소의 제목, 예시, 코드, 표, 링크, 이미지를 유지해 표시합니다.

Package Management Skill

Manage project dependencies and programming language runtimes. Use this skill instead of running shell commands like npm install, pip install, or apt install.

When to Use

Use this skill when you need to:

  • Install language-specific packages (npm, pip, cargo, etc.)
  • Install system-level dependencies (ffmpeg, jq, imagemagick, etc.)
  • Install programming language runtimes (Python, Node.js, etc.)
  • Remove packages from the project
  • Check available versions of a programming language

When NOT to Use

  • Searching for available packages (use web search instead)
  • Configuring package settings (edit config files directly)
  • Running package scripts (use bash tool)

Modules (Replit Terminology)

"Modules" is a Replit-specific term for language toolchains that can be installed into the NixOS environment. Use listAvailableModules() to see what's available.

Installation priority order:

  1. Modules via this skill (preferred)
  2. Nix system dependencies via installSystemDependencies()
  3. Language package managers (pip, npm, cargo, etc.) via installLanguagePackages()

If confused about package installation in Nix or language package managers, use web search.

After installing a module:

  • Update .gitignore with the language's standard ignore patterns
  • Never add Replit config files to .gitignore

After removing a module:

  • Consider removing any corresponding workflows that depend on it

Available Functions

listAvailableModules(langName=None)

List available language toolchains that can be installed.

Parameters:

  • langName (str, optional): Language name to filter by (e.g., "python", "nodejs", "rust"). If not provided, returns all available modules.

Returns: Dict with success, message, langName, and modules list

Each module contains: id, name, version, description

Example:

javascript
// List all available modules
const modules = await listAvailableModules();
// Returns: {modules: [{id: "python-3.11", ...}, {id: "nodejs-20", ...}, ...]}

// Find available Python versions
const pythonModules = await listAvailableModules({ langName: "python" });
// Returns: {modules: [{id: "python-3.11", name: "Python", version: "3.11", ...}, ...]}

// Find available Node.js versions
const nodeModules = await listAvailableModules({ langName: "nodejs" });

installProgrammingLanguage(language)

Install a programming language runtime and its package manager.

Parameters:

  • language (str, required): Language identifier like "python-3.11", "nodejs-20"

Returns: Dict with success, message, language, and installedModuleId keys

Example:

javascript
// First, check available versions
const modules = await listAvailableModules({ langName: "python" });
console.log(modules);  // See available Python versions

// Install specific version
const result = await installProgrammingLanguage({ language: "python-3.11" });

// Install Node.js 20
const result2 = await installProgrammingLanguage({ language: "nodejs-20" });

uninstallProgrammingLanguage(moduleId)

Remove an installed programming language runtime.

Parameters:

  • moduleId (str, required): Module ID from listAvailableModules

Returns: Dict with success, message, moduleId, and wasInstalled

Example:

javascript
// Remove Python 3.10
const result = await uninstallProgrammingLanguage({ moduleId: "python-3.10" });

installLanguagePackages(language, packages)

Install language-specific packages like npm, pip, or cargo packages.

Parameters:

  • language (str, required): Programming language: "nodejs", "python", "bun", "go", "rust"
  • packages (list[str], required): List of packages to install

Returns: Dict with success, message, packages, and output keys

Example:

javascript
// Install npm packages
const result = await installLanguagePackages({
    language: "nodejs",
    packages: ["express", "lodash"]
});
console.log(result.message);

// Install pip packages
const result2 = await installLanguagePackages({
    language: "python",
    packages: ["requests", "flask"]
});

IMPORTANT — required parameter rules:

  • language is required — you must always include it
  • Valid language values: "nodejs", "python", "bun", "go", "rust"
  • Use "nodejs" for JavaScript/TypeScript projects — NEVER use "js", "node", or "javascript"
  • Use "python" for Python projects — NEVER use "py" or "pip"
  • packages must be an array of strings — NEVER a single string, NEVER an array of objects
  • Correct: packages: ["express"]
  • Wrong: packages: "express"
  • Wrong: packages: [{name: "express"}]

uninstallLanguagePackages(language, packages)

Remove language-specific packages.

Parameters:

  • language (str, required): Programming language
  • packages (list[str], required): List of packages to uninstall

Returns: Dict with success, message, and packages keys

Example:

javascript
const result = await uninstallLanguagePackages({
    language: "nodejs",
    packages: ["lodash"]
});

installSystemDependencies(packages)

Install system-level dependencies via Nix.

Parameters:

  • packages (list[str], required): Nixpkgs attribute paths (NOT apt package names)

Returns: Dict with success, message, and packages keys

Important: Use Nix package names, not apt/debian names:

  • X11 libraries need 'xorg.' prefix: xorg.libxcb, xorg.libX11
  • ca-certificates is cacert in Nix
  • libxcb is xorg.libxcb in Nix

Example:

javascript
// Install system dependencies
const result = await installSystemDependencies({
    packages: ["jq", "ffmpeg", "imagemagick"]
});

// Install X11 libraries (note the xorg. prefix)
const result2 = await installSystemDependencies({
    packages: ["xorg.libxcb", "xorg.libX11"]
});

uninstallSystemDependencies(packages)

Remove system-level dependencies.

Parameters:

  • packages (list[str], required): Nixpkgs attribute paths to uninstall

Returns: Dict with success, message, and packages keys

Example:

javascript
const result = await uninstallSystemDependencies({ packages: ["jq"] });

Best Practices

  1. Use language packages for project dependencies: These are tracked in package files (package.json, requirements.txt)
  2. Use system dependencies for OS-level tools: Things like ffmpeg, imagemagick, or native libraries
  3. Use Nix package names: Not apt/debian names. Check nixpkgs for correct names
  4. Install language runtimes when needed: If python or node commands fail, install the runtime first
  5. Check versions first: Use listAvailableModules before installProgrammingLanguage

Example Workflow

javascript
// Check available Python versions
const modules = await listAvailableModules({ langName: "python" });
console.log(modules);

// Set up a Python Flask project
await installProgrammingLanguage({ language: "python-3.11" });
await installLanguagePackages({
    language: "python",
    packages: ["flask", "gunicorn", "sqlalchemy"]
});

// Set up a Node.js project with native dependencies
await installProgrammingLanguage({ language: "nodejs-20" });
await installLanguagePackages({
    language: "nodejs",
    packages: ["sharp", "canvas"]
});
await installSystemDependencies({
    packages: ["pkg-config", "cairo", "pango", "libjpeg"]
});

// Clean up old language version
await uninstallProgrammingLanguage({ moduleId: "python-3.10" });

Automatic Behaviors

  • Installing packages automatically creates/updates project files (package.json, requirements.txt, etc.)
  • Package installations reboot all workflows to pick up new dependencies
  • Language runtime installations include popular package managers (pip, npm, etc.)

관련 작업

같은 저장소의 Skills

더 많은 Skills

모든 Skills