{"id":50529413,"url":"https://github.com/skpm-dev/cli","last_synced_at":"2026-06-03T11:31:02.674Z","repository":{"id":356823743,"uuid":"1234183197","full_name":"skpm-dev/cli","owner":"skpm-dev","description":"Command-line tool for publishing Skript packages to the skpm registry","archived":false,"fork":false,"pushed_at":"2026-05-17T22:19:55.000Z","size":10741,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-17T23:47:46.420Z","etag":null,"topics":["cli","go","minecraft","package-manager","skript"],"latest_commit_sha":null,"homepage":"https://github.com/skpm-dev","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/skpm-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-09T21:17:53.000Z","updated_at":"2026-05-17T22:19:59.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/skpm-dev/cli","commit_stats":null,"previous_names":["skpm-dev/cli"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/skpm-dev/cli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skpm-dev%2Fcli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skpm-dev%2Fcli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skpm-dev%2Fcli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skpm-dev%2Fcli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/skpm-dev","download_url":"https://codeload.github.com/skpm-dev/cli/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skpm-dev%2Fcli/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33863265,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-03T02:00:06.370Z","response_time":59,"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":["cli","go","minecraft","package-manager","skript"],"created_at":"2026-06-03T11:31:01.957Z","updated_at":"2026-06-03T11:31:02.661Z","avatar_url":"https://github.com/skpm-dev.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# skpm CLI\n\n**[skpm.org](https://skpm.org)** — the package manager for Skript.\n\n\u003e Scaffold, validate, and publish Skript packages to the skpm registry from your terminal.\n\n---\n\n## Installation\n\n```sh\ncurl -fsSL https://raw.githubusercontent.com/skpm-dev/cli/main/install.sh | sh\n```\n\nInstalls the `skpm` binary to `/usr/local/bin`. **Windows:** download from the [releases page](https://github.com/skpm-dev/cli/releases).\n\n---\n\n## Setup\n\nCreate a GitHub personal access token with **`read:user` scope**, then export it:\n\n```bash\nexport SKPM_GITHUB_TOKEN=ghp_your_token_here\n```\n\nAdd that line to `~/.zshrc` or `~/.bashrc` to persist it across sessions.\n\n---\n\n## Commands\n\n| Command | Description |\n|---|---|\n| `skpm init` | Scaffold a `skpm.json` in the current directory |\n| `skpm validate` | Validate `skpm.json` and confirm all files exist on disk |\n| `skpm publish` | Publish the current package to the registry |\n| `skpm info \u003cpackage\u003e` | Show metadata and version history for a package |\n| `skpm search \u003cquery\u003e` | Search the registry by name or description |\n| `skpm completion \u003cshell\u003e` | Generate shell completion (bash, zsh, fish, powershell) |\n\n---\n\n## Publishing a package\n\n### 1. Create `skpm.json`\n\nRun `skpm init` or write it manually:\n\n```json\n{\n  \"name\": \"my-economy\",\n  \"description\": \"A simple economy system for Skript servers\",\n  \"author\": \"yourgithubusername\",\n  \"version\": \"1.0.0\",\n  \"skript\": \"\u003e=2.8.0\",\n  \"minecraft\": \"\u003e=1.20\",\n  \"addons\": {\n    \"skript-reflect\": \"\u003e=2.4.0\"\n  },\n  \"files\": [\n    \"economy.sk\"\n  ]\n}\n```\n\n| Field | Required | Notes |\n|---|---|---|\n| `name` | **Yes** | Lowercase, letters/digits/hyphens, 3–39 chars. Used in `/skpm install \u003cname\u003e` |\n| `description` | **Yes** | Short summary shown in search results |\n| `author` | **Yes** | Your GitHub username — tied to ownership |\n| `version` | **Yes** | Semver (`major.minor.patch`) |\n| `skript` | No | Semver constraint on required Skript version |\n| `minecraft` | No | Semver constraint on required Minecraft version |\n| `addons` | No | Map of required Skript addon → semver constraint |\n| `dependencies` | No | Map of required skpm package → semver constraint |\n| `files` | **Yes** | `.sk` files to include — must exist on disk |\n\n### 2. Validate locally\n\n```bash\nskpm validate\n```\n\nRuns the same name, version, and constraint checks the registry enforces — catches errors before the network round-trip.\n\n### 3. Publish\n\n```bash\nskpm publish\n```\n\n**First publish** uses the version in `skpm.json` as-is.\n\n**Subsequent publishes** prompt for a version bump:\n\n```\nFound existing package at version 1.0.0.\nWhat type of release is this?\n  [1] patch — bug fixes        (1.0.0 → 1.0.1)\n  [2] minor — new features     (1.0.0 → 1.1.0)\n  [3] major — breaking changes (1.0.0 → 2.0.0)\n```\n\nskpm opens a pull request on the registry repo. Once a maintainer merges it, the package is live. `skpm.json` is updated with the new version automatically on success.\n\nPass `--bump patch|minor|major` to skip the prompt in CI.\n\n---\n\n## Ownership\n\n- The **first account** to publish a name owns it.\n- All subsequent publishes verify your GitHub identity via `SKPM_GITHUB_TOKEN`.\n- Publishing as a different user than the stored author returns **403 Forbidden**.\n\n---\n\n## Environment variables\n\n| Variable | Required | Description |\n|---|---|---|\n| `SKPM_GITHUB_TOKEN` | **Yes** | GitHub PAT with `read:user` scope — used for publish auth |\n\n---\n\n## Related\n\n- **[skpm-dev/plugin](https://github.com/skpm-dev/plugin)** — Bukkit plugin that installs packages in-game\n- **[skpm-dev/registry](https://github.com/skpm-dev/registry)** — Registry API and data store\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskpm-dev%2Fcli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fskpm-dev%2Fcli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskpm-dev%2Fcli/lists"}