@runloopai/rl-cli
AMCP server package @runloop/rl-cli
Install
agr install @runloopai/rl-cli --target claudeThis artifact does not publish files for Claude.
Document
{ "name": "@runloop/rl-cli", "version": "1.18.0", "description": "Beautiful CLI for the Runloop platform", "type": "module", "bin": { "rli": "./dist/cli.js" }, "scripts": { "build": "tsc", "build:mcp": "pnpm run build && node scripts/build-mcp.js", "dev": "tsc --watch", "start": "node dist/cli.js", "start:debug": "node dist/cli.js 2> debug.log", "prepublishOnly": "pnpm run build", "version:patch": "pnpm version patch", "version:minor": "pnpm version minor", "version:major": "pnpm version major", "release": "pnpm run build && pnpm publish", "format": "prettier --write "src//*.{ts,tsx,js,jsx,json}"", "format:check": "prettier --check "src//*.{ts,tsx,js,jsx,json}"", "lint": "eslint src --ext .ts,.tsx", "lint:fix": "eslint src --ext .ts,.tsx --fix", "test": "NODE_OPTIONS='--experimental-vm-modules' jest", "test:watch": "NODE_OPTIONS='--experimental-vm-modules' jest --watch", "test:coverage": "NODE_OPTIONS='--experimental-vm-modules' jest --coverage", "test:components": "NODE_OPTIONS='--experimental-vm-modules' jest --config jest.components.config.js --coverage --forceExit", "test:e2e": "NODE_OPTIONS='--experimental-vm-modules' jest --config jest.e2e.config.js --forceExit", "test:router": "NODE_OPTIONS='--experimental-vm-modules' jest --config jest.router.config.js --forceExit", "docs:commands": "pnpm run build && node scripts/generate-command-docs.js", "prepare": "husky" }, "packageManager": "pnpm@9.15.4", "keywords": [ "runloop", "cli", "devbox", "cloud", "development" ], "author": "Runloop", "license": "MIT", "badges": [ { "url": "https://img.shields.io/npm/v/@runloop/rl-cli", "description": "NPM version" }, { "url": "https://img.shields.io/npm/dw/@runloop/rl-cli", "description": "NPM downloads" } ], "repository": { "type": "git", "url": "https://github.com/runloopai/rl-cli.git" }, "bugs": { "url": "https://github.com/runloopai/rl-cli/issues" }, "homepage": "https://github.com/runloopai/rl-cli#readme", "engines": { "node": ">=18.0.0" }, "files": [ "dist", "README.md", "LICENSE" ], "publishConfig": { "access": "public" }, "dependencies": { "@js-temporal/polyfill": "0.5.1", "@modelcontextprotocol/sdk": "1.26.0", "@runloop/api-client": "1.16.0", "@types/express": "5.0.6", "adm-zip": "0.5.16", "chalk": "5.6.2", "commander": "14.0.2", "conf": "15.1.0", "dotenv": "17.2.3", "express": "5.2.1", "figures": "6.1.0", "gradient-string": "3.0.0", "ink": "6.6.0", "ink-big-text": "2.0.0", "ink-gradient": "3.0.0", "ink-link": "5.0.0", "ink-spinner": "5.0.0", "ink-text-input": "6.0.0", "react": "19.2.0", "ws": "^8.20.1", "tar-stream": "3.1.7", "yaml": "2.8.3", "zustand": "5.0.10" }, "pnpm": { "onlyBuiltDependencies": [ "esbuild" ], "overrides": { "tmp": "^0.2.6", "qs": "^6.15.2", "ws": "^8.20.1", "hono": "4.12.24", "@hono/node-server": "^1.19.14", "@modelcontextprotocol/sdk>ajv": "^8.18.0", "express-rate-limit": "^8.3.2", "fast-uri": "3.1.2", "ip-address": "10.1.1", "tar": "^7.5.13", "flatted": "^3.4.2", "handlebars": "^4.7.9", "eslint>minimatch": "^3.1.3", "eslint-plugin-react>minimatch": "^3.1.3", "glob>minimatch": "^3.1.3", "test-exclude>minimatch": "^3.1.3", "@typescript-eslint/typescript-estree>minimatch": "^9.0.9", "jest-util>picomatch": "^2.3.2", "anymatch>picomatch": "^2.3.2", "eslint>ajv": "^6.14.0", "minimatch>brace-expansion": "^1.1.13", "node-forge": "^1.4.0", "micromatch>picomatch": "^2.3.2", "tinyglobby>picomatch": "^4.0.4", "path-to-regexp": "^8.4.2" } }, "devDependencies": { "@anthropic-ai/mcpb": "2.1.2", "@types/adm-zip": "0.5.7", "@types/jest": "29.5.14", "@types/node": "22.19.7", "@types/react": "19.2.10", "@types/tar-stream": "3.1.4", "@typescript-eslint/eslint-plugin": "8.54.0", "@typescript-eslint/parser": "8.54.0", "esbuild": "0.27.2", "eslint": "9.39.2", "eslint-plugin-react": "7.37.5", "eslint-plugin-react-hooks": "6.1.1", "globals": "16.5.0", "husky": "9.1.7", "ink-testing-library": "4.0.0", "jest": "29.7.0", "prettier": "3.8.1", "ts-jest": "29.4.6", "ts-node": "10.9.2", "@types/ws": "^8.5.0", "typescript": "5.9.3" } }
Trustgrade A
- passBody integrity
Whether the stored document is plausibly the kind of file the artifact declares, rather than something fetched by mistake.
- warnType matchbest-effort: server code not analyzed
Whether the artifact is really the kind of thing its metadata claims it is.
- passFreshness
How long since the source repository was last pushed to.
- passPrompt injection
Scans the artifact's own text for instructions aimed at your agent rather than at you.
- passLicense
Whether the source repository declares an SPDX license permissive enough to redistribute.
How the grade is calculated
Each check contributes 0 points when it passes, 1 when it warns, and 2 when it fails. The total maps to a letter:
- Aevery check passed
- Bone warning
- Ctwo warnings
- Dprompt injection or body integrity failed, or three warnings
- Fone of those failed, and something else is wrong
These are automated hygiene checks, not a security audit, and not a dependency or vulnerability scan. A grade of A means nothing was flagged — not that the artifact is safe.
Versions
git-fb3976993a422026-08-06