{"_id":"@apexcloudwise/linear-axi","_rev":"5-d92d31b4e0e40082386498ead56c9dfc","name":"@apexcloudwise/linear-axi","dist-tags":{"latest":"0.1.4"},"versions":{"0.1.0":{"name":"@apexcloudwise/linear-axi","version":"0.1.0","keywords":["linear","linear.app","cli","agent","axi","toon","issues"],"license":"MIT","_id":"@apexcloudwise/linear-axi@0.1.0","maintainers":[{"name":"zaphodis42","email":"devkiran@pixelperfectstudios.biz"}],"homepage":"https://github.com/apexcloudwise/linear-axi#readme","bugs":{"url":"https://github.com/apexcloudwise/linear-axi/issues"},"bin":{"linear-axi":"dist/bin/linear-axi.js"},"dist":{"shasum":"c31474c87bcd119a5545ddf19b14cf5397987fda","tarball":"https://registry.npmjs.org/@apexcloudwise/linear-axi/-/linear-axi-0.1.0.tgz","fileCount":64,"integrity":"sha512-DE+462Wi/GN08NkVlDl6eo3GC8n/Ule61Iv4RqlH5KtiqktvTG9MFG8H8Qq+K/1Th0XyGVByWQiZcm7kDZGS/A==","signatures":[{"sig":"MEQCIEOAj3tX1qrH6KgBtG/9/nRTeiasmr92ReiSfQwKCeCbAiAstwdz8kwkkVq6cOfu/JQVh7BWFXYOt1uMCRRk5By0Dw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":133563},"type":"module","engines":{"node":">=20"},"gitHead":"dd88941fd940c226460fd9a5a538c4258dfca54e","scripts":{"dev":"tsx bin/linear-axi.ts","lint":"eslint .","test":"vitest run","build":"tsc","test:watch":"vitest","build:skill":"tsx scripts/build-skill.ts","format:check":"prettier --check .","prepublishOnly":"npm run build"},"_npmUser":{"name":"zaphodis42","email":"devkiran@pixelperfectstudios.biz"},"repository":{"url":"git+https://github.com/apexcloudwise/linear-axi.git","type":"git"},"_npmVersion":"11.12.1","description":"AXI-compliant Linear CLI — token-efficient TOON output, contextual suggestions, idempotent mutations over the Linear GraphQL API","directories":{},"_nodeVersion":"25.9.0","dependencies":{"axi-sdk-js":"^0.1.10","@toon-format/toon":"^2.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.1.1","devDependencies":{"tsx":"^4.0.0","eslint":"^10.1.0","vitest":"^3.0.0","globals":"^17.4.0","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.7.0","@types/node":"^22.0.0","typescript-eslint":"^8.58.0"},"_npmOperationalInternal":{"tmp":"tmp/linear-axi_0.1.0_1786485334788_0.05955582781748903","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@apexcloudwise/linear-axi","version":"0.1.1","keywords":["linear","linear.app","cli","agent","axi","toon","issues"],"license":"MIT","_id":"@apexcloudwise/linear-axi@0.1.1","maintainers":[{"name":"zaphodis42","email":"devkiran@pixelperfectstudios.biz"}],"homepage":"https://github.com/apexcloudwise/linear-axi#readme","bugs":{"url":"https://github.com/apexcloudwise/linear-axi/issues"},"bin":{"linear-axi":"dist/bin/linear-axi.js"},"dist":{"shasum":"88e70156766b980ec526aebaa90a3a2ff87d31b2","tarball":"https://registry.npmjs.org/@apexcloudwise/linear-axi/-/linear-axi-0.1.1.tgz","fileCount":64,"integrity":"sha512-/hCtW54bJ/GKzaHsU4gjmafvOJ6yCX4B9CfbXdaa5CB6fEktYDdtjZE1/e/UqybzPxhRJUCzqalT6dfWWUsJXA==","signatures":[{"sig":"MEYCIQDM4PCOslbZtftJ5rPKuuL/Bpz4AvihM8Ea73A4r1JBYAIhAKd97TT9cAohj3b8C4qqdyJn8J1bbmGAvzrVIyhivet4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@apexcloudwise%2flinear-axi@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":133563},"type":"module","engines":{"node":">=20"},"gitHead":"136d95d0f050b62a4e1a581e8491b980acb8ffad","scripts":{"dev":"tsx bin/linear-axi.ts","lint":"eslint .","test":"vitest run","build":"tsc","test:watch":"vitest","build:skill":"tsx scripts/build-skill.ts","format:check":"prettier --check .","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8f4ae4d9-0714-4dee-95bf-e32c03c7aaa0"}},"repository":{"url":"git+https://github.com/apexcloudwise/linear-axi.git","type":"git"},"_npmVersion":"11.16.0","description":"AXI-compliant Linear CLI — token-efficient TOON output, contextual suggestions, idempotent mutations over the Linear GraphQL API","directories":{},"_nodeVersion":"24.18.0","dependencies":{"axi-sdk-js":"^0.1.10","@toon-format/toon":"^2.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.1.1","devDependencies":{"tsx":"^4.0.0","eslint":"^10.1.0","vitest":"^3.0.0","globals":"^17.4.0","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.7.0","@types/node":"^22.0.0","typescript-eslint":"^8.58.0"},"_npmOperationalInternal":{"tmp":"tmp/linear-axi_0.1.1_1786488044759_0.5580897994613201","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@apexcloudwise/linear-axi","version":"0.1.2","keywords":["linear","linear.app","cli","agent","axi","toon","issues"],"license":"MIT","_id":"@apexcloudwise/linear-axi@0.1.2","maintainers":[{"name":"zaphodis42","email":"devkiran@pixelperfectstudios.biz"}],"homepage":"https://github.com/apexcloudwise/linear-axi#readme","bugs":{"url":"https://github.com/apexcloudwise/linear-axi/issues"},"bin":{"linear-axi":"dist/bin/linear-axi.js"},"dist":{"shasum":"629a2fc795a05fa99bc9de2ae5034ba8e50c7e1a","tarball":"https://registry.npmjs.org/@apexcloudwise/linear-axi/-/linear-axi-0.1.2.tgz","fileCount":64,"integrity":"sha512-LOnOQ6VtbfMhOJNlMYtquSfSuvp1b5igZKh6JJY2ZBh90RW9/KD+2C4Jslub8X020JCcdyHmIraX1rYB/NW2ZQ==","signatures":[{"sig":"MEUCICwommloQILoLfKdCizXejSiQGgQFFx8HailPfQqa8HGAiEA7CLyq0LktW6YCQ+LhKbXGT1L8eKVwPtXDoVSJ3rpE50=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@apexcloudwise%2flinear-axi@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":133563},"type":"module","engines":{"node":">=20"},"gitHead":"e93827ceb74712a68200759e135a169ae1f2f59f","scripts":{"dev":"tsx bin/linear-axi.ts","lint":"eslint .","test":"vitest run","build":"tsc","test:watch":"vitest","build:skill":"tsx scripts/build-skill.ts","format:check":"prettier --check .","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8f4ae4d9-0714-4dee-95bf-e32c03c7aaa0"}},"repository":{"url":"git+https://github.com/apexcloudwise/linear-axi.git","type":"git"},"_npmVersion":"11.16.0","description":"AXI-compliant Linear CLI — token-efficient TOON output, contextual suggestions, idempotent mutations over the Linear GraphQL API","directories":{},"_nodeVersion":"24.18.0","dependencies":{"axi-sdk-js":"^0.1.10","@toon-format/toon":"^2.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.1.1","devDependencies":{"tsx":"^4.0.0","eslint":"^10.1.0","vitest":"^3.0.0","globals":"^17.4.0","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.7.0","@types/node":"^22.0.0","typescript-eslint":"^8.58.0"},"_npmOperationalInternal":{"tmp":"tmp/linear-axi_0.1.2_1786515198728_0.6347798388162824","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@apexcloudwise/linear-axi","version":"0.1.3","keywords":["linear","linear.app","cli","agent","axi","toon","issues"],"license":"MIT","_id":"@apexcloudwise/linear-axi@0.1.3","maintainers":[{"name":"zaphodis42","email":"devkiran@pixelperfectstudios.biz"}],"homepage":"https://github.com/apexcloudwise/linear-axi#readme","bugs":{"url":"https://github.com/apexcloudwise/linear-axi/issues"},"bin":{"linear-axi":"dist/bin/linear-axi.js"},"dist":{"shasum":"b00c298d3001bd17d18a2c27a6f7ad3e82e21143","tarball":"https://registry.npmjs.org/@apexcloudwise/linear-axi/-/linear-axi-0.1.3.tgz","fileCount":73,"integrity":"sha512-sOvpzw/Qmqm8L0SxiwFJf3rM975HinRntnG9aqpMEtm2XLGprOJXZ11URcZ13i1JyuP6aOX9k6nD2n6Syt+hOQ==","signatures":[{"sig":"MEQCIDO8m38/4RgkVk+sD34lTsgTx8uLVN/CKrzrFl16hAeXAiBqLhMXkRZze5YJhfKSNTHXp+fW5R9KWLECj+85t9h9jA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@apexcloudwise%2flinear-axi@0.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":206226},"type":"module","engines":{"node":">=20"},"gitHead":"0816ee18fa4ada0fb5fbc6b46f9983e383c888c2","scripts":{"dev":"tsx bin/linear-axi.ts","lint":"eslint .","test":"vitest run","build":"tsc","test:watch":"vitest","build:skill":"tsx scripts/build-skill.ts","format:check":"prettier --check .","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8f4ae4d9-0714-4dee-95bf-e32c03c7aaa0"}},"repository":{"url":"git+https://github.com/apexcloudwise/linear-axi.git","type":"git"},"_npmVersion":"11.17.0","description":"AXI-compliant Linear CLI — token-efficient TOON output, contextual suggestions, idempotent mutations over the Linear GraphQL API","directories":{},"_nodeVersion":"24.19.0","dependencies":{"axi-sdk-js":"^0.1.10","@toon-format/toon":"^2.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.1.1","devDependencies":{"tsx":"^4.0.0","eslint":"^10.1.0","vitest":"^3.0.0","globals":"^17.4.0","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.7.0","@types/node":"^22.0.0","typescript-eslint":"^8.58.0"},"_npmOperationalInternal":{"tmp":"tmp/linear-axi_0.1.3_1787218326008_0.6223381911037977","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@apexcloudwise/linear-axi","version":"0.1.4","packageManager":"pnpm@11.1.1","description":"AXI-compliant Linear CLI — token-efficient TOON output, contextual suggestions, idempotent mutations over the Linear GraphQL API","type":"module","repository":{"type":"git","url":"git+https://github.com/apexcloudwise/linear-axi.git"},"keywords":["linear","linear.app","cli","agent","axi","toon","issues"],"bin":{"linear-axi":"dist/bin/linear-axi.js"},"publishConfig":{"access":"public"},"scripts":{"build":"tsc","build:skill":"tsx scripts/build-skill.ts","test":"vitest run","test:watch":"vitest","dev":"tsx bin/linear-axi.ts","lint":"eslint .","format:check":"prettier --check .","prepublishOnly":"npm run build"},"license":"MIT","engines":{"node":">=20"},"dependencies":{"@toon-format/toon":"^2.1.0","axi-sdk-js":"^0.1.10"},"devDependencies":{"@eslint/js":"^10.0.1","@types/node":"^22.0.0","eslint":"^10.1.0","globals":"^17.4.0","prettier":"^3.8.1","tsx":"^4.0.0","typescript":"^5.7.0","typescript-eslint":"^8.58.0","vitest":"^3.0.0"},"gitHead":"3f7b0468a24622295c45a69a1ba867adec92fb0c","_id":"@apexcloudwise/linear-axi@0.1.4","bugs":{"url":"https://github.com/apexcloudwise/linear-axi/issues"},"homepage":"https://github.com/apexcloudwise/linear-axi#readme","_nodeVersion":"24.19.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-VCgyGx/kZkQJ2WvzBOko7y/mjAPXuderZS/zUyoFFx05XXU2UyQO0pFmY73l4fkABruTJSs7i2bpGNNpEIzUZg==","shasum":"2f73cabdf65b13cf299fab58439c97add11a389d","tarball":"https://registry.npmjs.org/@apexcloudwise/linear-axi/-/linear-axi-0.1.4.tgz","fileCount":73,"unpackedSize":288654,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@apexcloudwise%2flinear-axi@0.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQC4aR5+uigLcUSHrk7DpTp/vjdPRi2mxHf6iONGK14rBQIhAP7sAcUNxhZ8n1m/zIqJ+ihpr9D9AVCEW8V71j5rGieQ"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8f4ae4d9-0714-4dee-95bf-e32c03c7aaa0"}},"directories":{},"maintainers":[{"name":"zaphodis42","email":"devkiran@pixelperfectstudios.biz"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/linear-axi_0.1.4_1787241575392_0.06131328613012976"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-11T21:55:34.646Z","modified":"2026-08-20T15:59:35.897Z","0.1.0":"2026-08-11T21:55:34.936Z","0.1.1":"2026-08-11T22:40:44.894Z","0.1.2":"2026-08-12T06:13:18.905Z","0.1.3":"2026-08-20T09:32:06.172Z","0.1.4":"2026-08-20T15:59:35.596Z"},"bugs":{"url":"https://github.com/apexcloudwise/linear-axi/issues"},"license":"MIT","homepage":"https://github.com/apexcloudwise/linear-axi#readme","keywords":["linear","linear.app","cli","agent","axi","toon","issues"],"repository":{"type":"git","url":"git+https://github.com/apexcloudwise/linear-axi.git"},"description":"AXI-compliant Linear CLI — token-efficient TOON output, contextual suggestions, idempotent mutations over the Linear GraphQL API","maintainers":[{"name":"zaphodis42","email":"devkiran@pixelperfectstudios.biz"}],"readme":"# linear-axi\n\n[![npm](https://img.shields.io/npm/v/@apexcloudwise/linear-axi?style=flat-square)](https://www.npmjs.com/package/@apexcloudwise/linear-axi)\n\nAn [AXI](https://github.com/kunchenguid/axi)-compliant CLI for [Linear](https://linear.app). Agent-ergonomic, token-efficient TOON output, structured errors, idempotent mutations — built on [`axi-sdk-js`](https://github.com/kunchenguid/axi/tree/main/packages/axi-sdk-js).\n\nHigher accuracy with lower token cost than calling the Linear GraphQL API or an MCP server directly.\n\n## Install\n\n```sh\nnpm install -g @apexcloudwise/linear-axi\n```\n\nOr run on demand without a global install:\n\n```sh\nnpx -y @apexcloudwise/linear-axi <command>\n```\n\nThen add to your `CLAUDE.md` / `AGENTS.md`:\n\n```\nUse `linear-axi` for Linear issue operations.\n```\n\n## Authenticate\n\nCreate a personal API key at https://linear.app/settings/api, then either:\n\n```sh\nexport LINEAR_API_KEY=lin_api_xxx\n# or\nlinear-axi login lin_api_xxx\n# or pass it per command\nlinear-axi issues --key lin_api_xxx\n```\n\n## Commands\n\n```\nlinear-axi                      # dashboard: viewer + your started issues\nlinear-axi issues               # list issues (filters: --team --state --assignee --label --search --limit)\nlinear-axi issue view LIN-123   # issue details (--full disables truncation)\nlinear-axi issue create --title \"...\" --team ENG --label bug\nlinear-axi issue update LIN-123 --state \"In Progress\" --priority 2\nlinear-axi issue delete LIN-123\nlinear-axi comment LIN-123 --body \"...\"   # or --body-file <path>\nlinear-axi teams                # list team keys\nlinear-axi login <key>          # save API key to config\nlinear-axi setup hooks          # install agent SessionStart hooks\nlinear-axi update               # self-update (SDK built-in)\n```\n\nRun `linear-axi --help` or `linear-axi <command> --help` for full reference.\n\n## Ambient context\n\n`linear-axi setup hooks` installs a `SessionStart` hook for Claude Code, Codex, and OpenCode so every session starts with a compact dashboard (your started, assigned issues) — no invocation needed.\n\nAn installable Agent Skill is also shipped at `skills/linear-axi/SKILL.md`, generated from the CLI's own guidance so it never drifts. A CI `--check` step fails if the committed skill is stale.\n\n## AXI principles\n\nThis CLI follows the [10 AXI design principles](https://github.com/kunchenguid/axi#the-10-principles): TOON output (~40% smaller than JSON), minimal default schemas, truncated detail with a `--full` escape hatch, pre-computed counts, definitive empty states, structured errors on stdout, no interactive prompts, fail-loud on unknown flags, content-first home view, contextual next-step hints, and a dependency-free `--version` fast path.\n\n## Development\n\n```sh\npnpm install\npnpm run build          # tsc -> dist/\npnpm run build:skill    # regenerate skills/linear-axi/SKILL.md\npnpm test               # vitest\npnpm run lint\n```\n\n## Releasing\n\nReleases are automated via [Release Please](https://github.com/googleapis/release-please-action). Pushing a conventional commit (e.g. `fix:`, `feat:`) to `main` opens or updates a release PR containing the version bump, CHANGELOG, and manifest.\n\n**Prerequisite:** repo admin must enable *Settings → Actions → General → Workflow permissions → Allow GitHub Actions to create and approve pull requests*.\n\n**To merge a release PR:**\n\n1. On the release PR, click **Approve workflows to run** in the PR banner to allow CI.\n2. Wait for `build-and-test` and `packed-tarball` jobs to pass.\n3. Review the version bump and CHANGELOG entries.\n4. Merge the release PR — the tag and GitHub release are created automatically.\n\n## Publishing setup\n\nPublishing is fully automated via trusted OIDC — no npm tokens are stored. A one-time owner bootstrap is required:\n\n> **Important:** Do not merge any release PR (e.g. #12) before completing steps 1–5 below. The release-please workflow's `publish` job will fail until trusted publishing is bound.\n\n**1. Enable 2FA on the npm account**\n\nLog in at https://www.npmjs.com and enable two-factor authentication (auth-only or auth-and-writes).\n\n**2. Create the `release` GitHub environment**\n\nGo to *Settings → Environments → New environment*, name it `release`. Optionally add required reviewers for a human approval gate before publish.\n\n**3. First publish (manual, bootstrap only)**\n\nFrom a clean checkout of `main`, publish `0.1.0` manually:\n\n```sh\npnpm install --frozen-lockfile\npnpm run build\npnpm run build:skill\nnpm publish --access public\n```\n\nThis creates the package on npm. 2FA will be required. This is a one-time bootstrap step — the manual publish won't carry provenance. Final acceptance occurs after the first CI-driven release (e.g. #12 proposes `0.1.1`) carries provenance.\n\n**4. Bind npm trusted publishing**\n\nOn https://www.npmjs.com, navigate to the `@apexcloudwise/linear-axi` package, then *Publishing access → Link a GitHub repository*:\n\n- **Organization or user:** `apexcloudwise`\n- **Repository:** `linear-axi`\n- **Workflow filename:** `release-please.yml`\n- **Environment:** `release`\n- **Allowed actions:** `npm publish`\n\n**5. Require 2FA and disallow tokens; revoke legacy tokens**\n\nUnder *Publishing access* for the package, select **Require two-factor authentication and disallow tokens** and save. Trusted publishers (OIDC) continue to work under this setting. Then, under *Access tokens*, remove any legacy automation tokens with publish access for the `@apexcloudwise` scope. All subsequent publishes must go through trusted publishing only.\n\n**6. Verify**\n\nAfter the next release PR is merged (see Releasing), run:\n\n```sh\nVERSION=$(npm view @apexcloudwise/linear-axi version)\nPREFIX=$(mktemp -d)\nnpm install --prefix \"$PREFIX\" \"@apexcloudwise/linear-axi@$VERSION\"\nINSTALLED_VERSION=$(\"$PREFIX/node_modules/.bin/linear-axi\" --version)\ntest \"$INSTALLED_VERSION\" = \"$VERSION\"\nnpm access get status @apexcloudwise/linear-axi\n```\n\nConfirm `npm access` reports `public` and that the package page on npm shows a provenance badge linked to this repository. Subsequent releases are automated via the workflow.\n\n**7. Record evidence and close #5**\n\nComment on issue #5 with: the published version, the release workflow run URL, the provenance link, the clean-install and version-assertion result, and public visibility status. Evidence must be sanitized — no credentials, OTPs, tokens, or reusable authentication material. #5 (and epic #1) close only after this evidence exists.\n\n## License\n\nMIT © ApexCloudWise\n","readmeFilename":"README.md"}