{"_id":"@aabuhijleh/abed-hub","_rev":"4-2ff2dc5a4ee8a2b103e88604a77a8899","name":"@aabuhijleh/abed-hub","dist-tags":{"latest":"0.4.0"},"versions":{"0.1.0":{"name":"@aabuhijleh/abed-hub","version":"0.1.0","keywords":["cli","setup","doctor","agent-skills","bun"],"author":{"name":"aabuhijleh"},"license":"MIT","_id":"@aabuhijleh/abed-hub@0.1.0","maintainers":[{"name":"aabuhijleh","email":"aabuhijleh.dev@gmail.com"}],"homepage":"https://github.com/aabuhijleh/abed-hub/tree/main/packages/abed-hub","bugs":{"url":"https://github.com/aabuhijleh/abed-hub/issues"},"bin":{"abed-hub":"dist/abed-hub.js"},"dist":{"shasum":"36c706cfa9cb32267d4ada18bb0dddff68402985","tarball":"https://registry.npmjs.org/@aabuhijleh/abed-hub/-/abed-hub-0.1.0.tgz","fileCount":3,"integrity":"sha512-OgU/vYvceuB/I0s4fm2ji/qu06qakiu3y1hGJdsFJRhW6JSjJqJfx6AZiIZzgbzrA7vEoWjAEn1J9QFqGyZLwA==","signatures":[{"sig":"MEQCIGIQApDKlS9HQuPhpf/8RCD9X/YEK1u4HgBfK/+m5f+0AiAa0rkPihxWBpkw/CpacgbGGyOF9dwRMsgwc6+kM/BUMw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":198111},"type":"module","engines":{"node":">=24"},"gitHead":"f67a2436ac9134d271d31bc2218702211eaf206d","scripts":{"test":"bun test","build":"bun build ./src/abed-hub.ts --target=bun --outdir=./dist","prepublishOnly":"bun run build"},"_npmUser":{"name":"aabuhijleh","email":"aabuhijleh.dev@gmail.com"},"repository":{"url":"git+https://github.com/aabuhijleh/abed-hub.git","type":"git","directory":"packages/abed-hub"},"_npmVersion":"12.0.2","description":"Install the abed-hub tools and skills, find out what is missing or behind, and bring it all up to date.","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.4.0","devDependencies":{"zod":"^4.4.3","citty":"^0.2.2","@types/bun":"latest","@clack/prompts":"^1.7.0","@abed-hub/config":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/abed-hub_0.1.0_1788608465847_0.15947644017951412","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@aabuhijleh/abed-hub","version":"0.2.0","keywords":["cli","setup","doctor","agent-skills","bun"],"author":{"name":"aabuhijleh"},"license":"MIT","_id":"@aabuhijleh/abed-hub@0.2.0","maintainers":[{"name":"aabuhijleh","email":"aabuhijleh.dev@gmail.com"}],"homepage":"https://github.com/aabuhijleh/abed-hub/tree/main/packages/abed-hub","bugs":{"url":"https://github.com/aabuhijleh/abed-hub/issues"},"bin":{"abed-hub":"dist/abed-hub.js"},"dist":{"shasum":"5ae08d3ea4ac62b220f3ce37c5a5725619ece118","tarball":"https://registry.npmjs.org/@aabuhijleh/abed-hub/-/abed-hub-0.2.0.tgz","fileCount":3,"integrity":"sha512-Lguz+ltlvnF8ibYJcVtAvhh2G3MgvtnbzUCSG7kf7vvl/IksaZf6Kb0gT/i2rKbb+NVxDTQegOvOUXnZrV+rSA==","signatures":[{"sig":"MEYCIQD5pYQEMiIcvEPIbUXUq9a9j8Xq3AGOhpZQ+pJ5z7CjHAIhAMk718a9v2hY5kiZ10O7awyQjnrUlfFf/96Mx9MVk/aE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aabuhijleh%2fabed-hub@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":204090},"type":"module","engines":{"node":">=24"},"gitHead":"5e27c8c093e64dceaef5c2b0f614060916276000","scripts":{"test":"bun test","build":"bun build ./src/abed-hub.ts --target=bun --outdir=./dist","prepublishOnly":"bun run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","approver":{"name":"aabuhijleh","email":"aabuhijleh.dev@gmail.com"},"trustedPublisher":{"id":"github","oidcConfigId":"oidc:af0bb619-0ce5-4ee7-ba9a-3fc30bc616bf"}},"repository":{"url":"git+https://github.com/aabuhijleh/abed-hub.git","type":"git","directory":"packages/abed-hub"},"_npmVersion":"12.0.2","description":"Install the abed-hub tools and skills, find out what is missing or behind, and bring it all up to date.","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.4.0","devDependencies":{"zod":"^4.4.3","citty":"^0.2.2","@types/bun":"latest","@clack/prompts":"^1.7.0","@abed-hub/config":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/abed-hub_0.2.0_1788781837826_0.27180610653064186","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@aabuhijleh/abed-hub","version":"0.3.0","keywords":["cli","setup","doctor","agent-skills","bun"],"author":{"name":"aabuhijleh"},"license":"MIT","_id":"@aabuhijleh/abed-hub@0.3.0","maintainers":[{"name":"aabuhijleh","email":"aabuhijleh.dev@gmail.com"}],"homepage":"https://github.com/aabuhijleh/abed-hub/tree/main/packages/abed-hub","bugs":{"url":"https://github.com/aabuhijleh/abed-hub/issues"},"bin":{"abed-hub":"dist/abed-hub.js"},"dist":{"shasum":"602377b29700ee76a3bc4dbc66b7eabe2bc0ca95","tarball":"https://registry.npmjs.org/@aabuhijleh/abed-hub/-/abed-hub-0.3.0.tgz","fileCount":3,"integrity":"sha512-be7f7nfIsYGBSFIf6oBIX7ChjeI5TGjQlxO/B1r2jClFBjkRxjANNCpFhoWdYGDoLxbvpqNwTM42wAAi45hjsw==","signatures":[{"sig":"MEUCIGrRKyD8tpajOqgLzo98VFWmwU9405UXHIkhLiJWIPnIAiEAhcd1U4m0tMUIMVBh65RVcqVX//bQwYx+AKchpFVGC34=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aabuhijleh%2fabed-hub@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":235212},"type":"module","engines":{"node":">=24"},"gitHead":"217acc1e39dcf429df464e53992a2e3bf83c5877","scripts":{"test":"bun test","build":"bun build ./src/abed-hub.ts --target=bun --outdir=./dist","prepublishOnly":"bun run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","approver":{"name":"aabuhijleh","email":"aabuhijleh.dev@gmail.com"},"trustedPublisher":{"id":"github","oidcConfigId":"af0bb619-0ce5-4ee7-ba9a-3fc30bc616bf"}},"repository":{"url":"git+https://github.com/aabuhijleh/abed-hub.git","type":"git","directory":"packages/abed-hub"},"_npmVersion":"12.2.0","description":"Install the abed-hub tools and skills, find out what is missing or behind, and bring it all up to date.","directories":{},"_nodeVersion":"24.21.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.4.0","devDependencies":{"zod":"^4.4.3","citty":"^0.2.2","@types/bun":"latest","@clack/prompts":"^1.7.0","@abed-hub/config":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/abed-hub_0.3.0_1790876337717_0.32613422332271313","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"_id":"@aabuhijleh/abed-hub@0.4.0","bin":{"abed-hub":"dist/abed-hub.js"},"bugs":{"url":"https://github.com/aabuhijleh/abed-hub/issues"},"dist":{"shasum":"e7409b94bf98956d5d4c137d07c7aefaff695df7","tarball":"https://registry.npmjs.org/@aabuhijleh/abed-hub/-/abed-hub-0.4.0.tgz","integrity":"sha512-ex/CV5Z+t0yJRCKrrK2/dcJzUDwgUQlGLO25Qj8yIQ+HiKqeEl4mSGnEnS46rUj/EPHNcNrQltAkaTCjy23vLA==","fileCount":3,"unpackedSize":235204,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aabuhijleh%2fabed-hub@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIB4FYnNXVJ1r2/4IulVaDCrdBRTRE/ezu9CSHNoFtGjzAiEAgY5xRIOBdDxrMfkEeaxn7E6NS5tqd6Pi0ZDqQH7bbaQ="}]},"name":"@aabuhijleh/abed-hub","type":"module","author":{"name":"aabuhijleh"},"engines":{"node":">=24"},"gitHead":"9545ce829bc9fa9720fbec08bed2464c49dcaf28","license":"MIT","scripts":{"test":"bun test","build":"bun build ./src/abed-hub.ts --target=bun --outdir=./dist","prepublishOnly":"bun run build"},"version":"0.4.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"af0bb619-0ce5-4ee7-ba9a-3fc30bc616bf"},"approver":{"name":"aabuhijleh","email":"aabuhijleh.dev@gmail.com"}},"homepage":"https://github.com/aabuhijleh/abed-hub/tree/main/packages/abed-hub","keywords":["cli","setup","doctor","agent-skills","bun"],"repository":{"url":"git+https://github.com/aabuhijleh/abed-hub.git","type":"git","directory":"packages/abed-hub"},"_npmVersion":"12.2.0","description":"Install the abed-hub tools and skills, find out what is missing or behind, and bring it all up to date.","directories":{},"maintainers":[{"name":"aabuhijleh","email":"aabuhijleh.dev@gmail.com"}],"_nodeVersion":"24.21.0","publishConfig":{"access":"public"},"packageManager":"bun@1.4.0","devDependencies":{"zod":"^4.4.3","citty":"^0.2.2","@types/bun":"latest","@clack/prompts":"^1.7.0","@abed-hub/config":"workspace:*"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/abed-hub_0.4.0_1791114198956_0.5464071618306794"},"_hasShrinkwrap":false}},"time":{"created":"2026-09-05T11:41:05.663Z","modified":"2026-10-04T11:43:19.301Z","0.1.0":"2026-09-05T11:41:05.991Z","0.2.0":"2026-09-07T11:50:37.911Z","0.3.0":"2026-10-01T17:38:57.795Z","0.4.0":"2026-10-04T11:43:19.060Z"},"bugs":{"url":"https://github.com/aabuhijleh/abed-hub/issues"},"author":{"name":"aabuhijleh"},"license":"MIT","homepage":"https://github.com/aabuhijleh/abed-hub/tree/main/packages/abed-hub","keywords":["cli","setup","doctor","agent-skills","bun"],"repository":{"url":"git+https://github.com/aabuhijleh/abed-hub.git","type":"git","directory":"packages/abed-hub"},"description":"Install the abed-hub tools and skills, find out what is missing or behind, and bring it all up to date.","maintainers":[{"name":"aabuhijleh","email":"aabuhijleh.dev@gmail.com"}],"readme":"# @aabuhijleh/abed-hub\n\nInstalls the abed-hub tools and skills, tells you what has fallen behind, and brings it up\nto date.\n\n```bash\nabed-hub setup\nabed-hub doctor\nabed-hub update\nabed-hub config\n```\n\nEverything installs globally into your bun and skills directories. Nothing needs root.\n\n## Three kinds of dependency\n\nAn install here is a chain, and every link goes stale on its own schedule. `doctor` checks\nall three and groups the report the same way.\n\n| Kind | Installed by | Behind when |\n| --- | --- | --- |\n| Packages | `bun add -g` | The global version is below npm's `latest`. |\n| Skills | `bunx skills add` | `~/.agents/.skill-lock.json` holds a `skillFolderHash` the source repo no longer has. |\n| Tools | Someone else | `gh` is below 2.99, signed out, or missing the `gh-stack` extension. No chromium build is installed. The Jira or Slack credentials are unset, which is a warning. |\n\nThe skill check is the one worth explaining. The `skills` installer records the git tree SHA\nof the skill's folder as it stood on the source repo's default branch, so comparing it\nagainst `gh api repos/<owner>/<repo>/contents/skills` answers \"is the copy on this machine\nbehind\" without cloning anything.\n\n## Components\n\n`setup` with no arguments asks which ones you want and remembers the answer. `doctor` and\n`update` work from that answer afterwards, so a machine that only wanted courier is never\ntold it is missing chromium.\n\n| Component | What you get |\n| --- | --- |\n| `gh-attach` | Take an annotated screenshot and put it into a PR or issue. Brings `@playwright/cli`, chromium, and the `visuals`, `playwright-cli`, and `pr` skills. |\n| `gh-stack` | Break a change into PRs that build on each other. |\n| `deslop` | Cut AI tells from PR bodies, Slack and Jira posts, and docs. abed-hub's own copy of Cursor's `unslop` skill. |\n| `courier` | Move files in and out of Jira issues and Slack threads. |\n\nName them to skip the prompt. `all` is all four.\n\nSome names are gone. `writing-great-prs` and its alias `prs` moved to `gh-attach` and\n`deslop`, and `unslop` is now `deslop`. Naming an old one prints where it went, and a saved\nselection that holds one reads as its replacements.\n\n```bash\nabed-hub setup gh-attach courier\n```\n\nThe `abed-hub` skill installs with every selection, whichever components you pick.\n\n## Commands\n\n| Command | What it does |\n| --- | --- |\n| `abed-hub setup [components...] [--all] [--force]` | Install what is absent. Leaves anything that works alone unless `--force`. |\n| `abed-hub doctor [components...] [--all] [--json]` | Report and change nothing. Exits 1 when something is missing, behind, or broken. Warnings, such as unset Jira or Slack credentials, exit 0. |\n| `abed-hub update [components...] [--all]` | Upgrade what is behind and install what is absent. |\n| `abed-hub config [components...] [--all] [--reveal] [--json]` | Print where each config file is and what is in it. Tokens masked. |\n\nNeither `setup` nor `update` touches credentials. Both print the interactive commands that\nset those up, since a token has to be pasted in by a human.\n\n## Prerequisites\n\n[Bun](https://bun.sh). The GitHub CLI at 2.99 or later for anything that talks to GitHub,\nwhich `doctor` will tell you about rather than assume.\n\n## Configuration\n\nThe saved component selection lives at `~/.config/abed-hub/abed-hub/config.json`, alongside\nevery other tool's state. The directory is 0700 and the file is 0600.\n\n`abed-hub config` prints that file and every other one the installed components read, each\nwith its path. A file that is missing, empty, or unparseable says so and names the command\nthat writes it, which is usually the answer to why `jira` claims it has no credentials.\n\n```bash\nabed-hub config\nabed-hub config --json\n```\n\nTokens come back as their last four characters. `--reveal` prints them in full, which is\nworth thinking about before you paste the output anywhere.\n\n## Develop\n\n```bash\nbun install\nbunx tsc --noEmit\nbun test\nbun run build\n```\n","readmeFilename":"README.md"}