{"id":31228176,"url":"https://github.com/tamasmagyar/pici","last_synced_at":"2025-09-22T05:14:09.256Z","repository":{"id":305963013,"uuid":"1024512131","full_name":"tamasmagyar/pici","owner":"tamasmagyar","description":"Install a subset of dependencies from your main package.json","archived":false,"fork":false,"pushed_at":"2025-07-23T10:46:34.000Z","size":42,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-27T07:53:32.987Z","etag":null,"topics":["automation","cicd","cli","dependencies","developer-experience","developer-tools","devtools","dx","microservices","minimal","monorepo","nodejs","npm","package-manager","playwright","productivity","selective-install","tools","typescript","yarn"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tamasmagyar.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-22T20:20:16.000Z","updated_at":"2025-07-23T10:46:36.000Z","dependencies_parsed_at":"2025-07-22T23:38:54.850Z","dependency_job_id":null,"html_url":"https://github.com/tamasmagyar/pici","commit_stats":null,"previous_names":["tamasmagyar/pici"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/tamasmagyar/pici","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tamasmagyar%2Fpici","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tamasmagyar%2Fpici/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tamasmagyar%2Fpici/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tamasmagyar%2Fpici/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tamasmagyar","download_url":"https://codeload.github.com/tamasmagyar/pici/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tamasmagyar%2Fpici/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":276348330,"owners_count":25626605,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-22T02:00:08.972Z","response_time":79,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automation","cicd","cli","dependencies","developer-experience","developer-tools","devtools","dx","microservices","minimal","monorepo","nodejs","npm","package-manager","playwright","productivity","selective-install","tools","typescript","yarn"],"created_at":"2025-09-22T05:14:08.540Z","updated_at":"2025-09-22T05:14:09.244Z","avatar_url":"https://github.com/tamasmagyar.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# pici\n\nMinimal CLI to install a subset of dependencies from your main `package.json`.\n\n[![npm version](https://img.shields.io/npm/v/pici.svg)](https://npmjs.org/package/pici)\n[![MIT License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)\n\n## Overview\n\n**pici** lets you install only the dependencies you need from your main `package.json`, saving time, disk space, and reducing potential conflicts. Perfect for monorepos, microservices, CI/CD, or when you only need a few tools for testing or development.\n\n## Why is this useful?\n\nIn most cases, you only need a few specific packages rather than all dependencies. For example:\n\n- **Playwright testing**: Only need `@playwright/test`\n- **Development tools**: Just the linter and formatter, not the entire dev stack\n- **CI/CD**: Only the packages needed for building/deploying\n- **Microservices**: A subset of shared dependencies\n\n## Features\n\n- 🏃 Install only a subset of dependencies\n- ⚡ Faster installs for testing, CI, or microservices\n- 📝 Custom dependency files supported\n- 🔧 Supports all dependency fields (`dependencies`, `devDependencies`, `peerDependencies`, `optionalDependencies`)\n- 📦 Works with npm and yarn\n\n## Quick Start\n\n```bash\nnpm install -g pici\n# or\nyarn global add pici\n\n# Install only the dependencies listed in package.test.json\npici package.test.json\n```\n\n## Installation \u0026 Usage\n\n\u003e **Important:** To use the CLI globally, your global npm or yarn bin directory must be in your `PATH` environment variable, regardless of which shell you use. See below for how to add it if needed.\n\nYou can use **pici** in several ways:\n\n### 1. Global Install (Recommended for CLI use)\n\nInstall globally with npm or yarn:\n```bash\nnpm install -g pici\n# or\nyarn global add pici\n```\nThen run:\n```bash\npici [args]\n```\n\u003e **Note:** If you get a \"command not found\" error, ensure your global npm/yarn bin directory is in your `PATH`.  \n\u003e You can typically add it by editing your shell configuration file (e.g., `.zshrc`, `.bashrc`, `.bash_profile`, etc.) and adding a line like:\n\u003e ```sh\n\u003e export PATH=\"$PATH:$(npm bin -g):$(yarn global bin)\"\n\u003e ```\n\u003e Use the one(s) relevant to your package manager (npm or yarn).\n\n---\n\n### 2. Use with npx (No install needed)\n\nYou can run pici directly with npx (npm 5.2+):\n```bash\nnpx pici [args]\n```\n\n---\n\n### 3. Local Project Install\n\nInstall as a dev dependency:\n```bash\nnpm install --save-dev pici\n# or\nyarn add --dev pici\n```\nThen use it via npm/yarn scripts or with npx:\n```bash\nnpx pici [args]\n```\nOr add to your `package.json` scripts:\n```json\n\"scripts\": {\n  \"pici\": \"pici\"\n}\n```\nand run:\n```bash\nnpm run pici -- [args]\n```\n\n---\n\nChoose the method that best fits your workflow!\n\n## Usage\n\n\u003e **Tip:** You can add packages to the custom dependency file at any time using the `pici add \u003cpackage\u003e [custom-file.json]` command. The file will be created for you if it doesn't exist, or updated if it does.\n\n### Custom Dependency File Format\n\nYou can add packages to your custom dependency file by running the `add` command (the file will be created if it doesn't exist), or you can create/edit it manually if you prefer:\n\n```json\n{\n  \"dependencies\": {\n    \"react\": \"\",         // Uses version from package.json\n    \"lodash\": \"4.17.21\"  // Uses this version instead\n  }\n}\n```\n\n- If the version is empty, pici uses the version from your main `package.json`. If no version is specified in the custom file and the package is not found in your main `package.json`, pici will warn and skip that package.\n- If a version is specified in the custom file, pici will install that version even if the package is not present in your main `package.json`.\n\n### Install Packages\n\n```bash\npici package.test.json           # Install from custom file\npici install package.test.json   # Explicit install from custom file\npici install                    # Uses package.custom.json by default\npici install \u003cpackage\u003e          # Installs a single package with version from package.json\n```\n\nIf you only need to install a single package, you can run:\n\n```bash\npici install \u003cpackagename\u003e\n```\n\nThis will pick up the version from your main `package.json` and install it. If the package is not found, pici will throw an error.\n\n### Add a Package\n\n```bash\npici add lodash package.test.json\npici add lodash                 # Adds to package.custom.json\n```\n\n### Specify Dependency Fields\n\nBy default, pici reads from all dependency fields. You can restrict this:\n\n```bash\npici install --fields=dependencies,devDependencies\npici install --fields=peerDependencies,optionalDependencies\n```\n\n## Configuration\n\n- **Custom file**: By default, pici looks for `package.custom.json` if no file is specified.\n- **Fields**: Supports `dependencies`, `devDependencies`, `peerDependencies`, `optionalDependencies`.\n\n## Contributing\n\nContributions are welcome! Please open an issue or submit a pull request.\n\n## License\n\nMIT","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftamasmagyar%2Fpici","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftamasmagyar%2Fpici","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftamasmagyar%2Fpici/lists"}