{"_id":"@borakostem/llm-companion","name":"@borakostem/llm-companion","dist-tags":{"latest":"1.8.0"},"versions":{"1.8.0":{"name":"@borakostem/llm-companion","version":"1.8.0","description":"Context-aware LLM chat companion for Freelens","repository":{"type":"git","url":"git+https://github.com/BoraKostem/llm-companion.git","directory":"."},"main":"out/main/index.js","renderer":"out/renderer/index.js","engines":{"node":">= 22.0.0","freelens":"^1.8.0"},"copyright":"© 2025 Freelens Authors","license":"MIT","author":{"name":"Freelens Authors","email":"freelens@freelens.app"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"scripts":{"biome":"corepack pnpm dlx @biomejs/biome@2.3.14","biome:check":"corepack pnpm biome check","biome:fix":"corepack pnpm biome check --fix","biome:migrate":"corepack pnpm biome migrate --write","prettier":"corepack pnpm dlx prettier@3.8.1","prettier:check":"corepack pnpm prettier --check .","prettier:fix":"corepack pnpm prettier --write .","trunk":"corepack pnpm dlx @trunkio/launcher@1.3.4","trunk:check":"corepack pnpm trunk check","trunk:check:all":"corepack pnpm trunk check --all","trunk:fix":"corepack pnpm trunk check --fix","trunk:fix:all":"corepack pnpm trunk check --fix --all","lint":"corepack pnpm lint:check","lint:check":"corepack pnpm \"/^(biome|prettier):check\\$/\"","lint:fix":"corepack pnpm \"/^(biome|prettier):fix\\$/\"","knip":"corepack pnpm dlx knip@5.83.0 --dependencies --no-gitignore","knip:check":"corepack pnpm \"/^knip:(development|production)\\$/\"","knip:development":"corepack pnpm knip","knip:production":"corepack pnpm knip --production --strict","type:check":"tsc --noEmit -p tsconfig.json --composite false","prebuild":"corepack pnpm type:check","build":"electron-vite build","build:production":"VITE_PRESERVE_MODULES=false electron-vite build","build:force":"electron-vite build","bump-version":"corepack pnpm version --no-commit-hooks --no-git-tag-version","pack:dev":"corepack pnpm bump-version prerelease && corepack pnpm build:force && corepack pnpm build && corepack pnpm clean:tgz && corepack pnpm pack && corepack pnpm dlx shx@0.4.0 ls \"$PWD/*.tgz\"","clean":"corepack pnpm clean:out","clean:dts":"corepack pnpm dlx shx@0.4.0 rm -f \"src/**/*.d.scss.ts\"","clean:node_modules":"corepack pnpm dlx shx@0.4.0 rm -rf node_modules","clean:out":"corepack pnpm dlx shx@0.4.0 rm -rf out","clean:tgz":"corepack pnpm dlx shx@0.4.0 rm -f \"*.tgz\"","clean:all":"corepack pnpm \"/^clean:(dts|node_modules|out|tgz)\\$/\"","postupdate":"corepack pnpm biome:migrate"},"devDependencies":{"@babel/plugin-proposal-decorators":"^7.29.0","@electron-toolkit/tsconfig":"^2.0.0","@freelensapp/extensions":"^1.8.0","@types/node":"~22.19.8","@types/react":"^17.0.90","@vitejs/plugin-react":"^5.1.3","electron-vite":"^5.0.0","mobx":"6.13.7","mobx-react":"7.6.0","react":"17.0.2","sass":"^1.97.3","typescript":"5.9.3","vite":"^7.3.1","vite-plugin-external":"^6.2.2","vite-plugin-sass-dts":"^1.3.35"},"keywords":["extension","freelensapp","freelens","llm","kubernetes","kubectl","ai","chat"],"packageManager":"pnpm@10.28.2","gitHead":"d1799800dfe04df478e4a2a93cd67e76d0f50a20","_id":"@borakostem/llm-companion@1.8.0","bugs":{"url":"https://github.com/BoraKostem/llm-companion/issues"},"homepage":"https://github.com/BoraKostem/llm-companion#readme","_nodeVersion":"25.8.0","_npmVersion":"11.11.0","dist":{"integrity":"sha512-BQcvzNt7YaWu7NCFerVAq11tvDqc8rFQtrggV2TV7gF7HJQsZN3koruRp3Q8U6jcGvmJuBCxDDUauPWQcIYi7g==","shasum":"48f6f687e373467aa0dff95db11cffea148d2c41","tarball":"https://registry.npmjs.org/@borakostem/llm-companion/-/llm-companion-1.8.0.tgz","fileCount":51,"unpackedSize":184297,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIGfWIculE/sxJyoyd3bywQl5w/KsL7+184tTLpP/Lke1AiBlt/84M2Fv3/eHCYjIf/IquDs1ZAlUUvnrQTeWM+hHPg=="}]},"_npmUser":{"name":"borakostem1","email":"bora_kostem@outlook.com"},"directories":{},"maintainers":[{"name":"borakostem1","email":"bora_kostem@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/llm-companion_1.8.0_1773441236386_0.7551283644042708"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-13T22:33:56.283Z","1.8.0":"2026-03-13T22:33:56.571Z","modified":"2026-03-13T22:33:56.824Z"},"maintainers":[{"name":"borakostem1","email":"bora_kostem@outlook.com"}],"description":"Context-aware LLM chat companion for Freelens","homepage":"https://github.com/BoraKostem/llm-companion#readme","keywords":["extension","freelensapp","freelens","llm","kubernetes","kubectl","ai","chat"],"repository":{"type":"git","url":"git+https://github.com/BoraKostem/llm-companion.git","directory":"."},"author":{"name":"Freelens Authors","email":"freelens@freelens.app"},"bugs":{"url":"https://github.com/BoraKostem/llm-companion/issues"},"license":"MIT","readme":"# @borakostem/llm-companion\r\n\r\nA Freelens extension that adds a context-aware LLM chat assistant for Kubernetes clusters.\r\n\r\n## Features\r\n\r\n- **Multi-provider support** — OpenAI, Anthropic (Claude), Google Gemini, and Ollama\r\n- **Dynamic model discovery** — fetches available models from each provider's API\r\n- **Context-aware** — automatically reads your current Freelens view (pods, deployments, services, etc.) and provides it as context to the LLM\r\n- **kubectl integration** — the assistant can run read-only kubectl commands against your cluster with user confirmation before execution\r\n- **Multi-turn conversation** — maintains chat history within a session\r\n- **Safety guards** — only read-only kubectl commands are allowed; destructive operations are blocked\r\n\r\n## Requirements\r\n\r\n- Freelens >= 1.8.0\r\n- kubectl configured and accessible in PATH\r\n- An API key for at least one supported provider (or a local Ollama instance)\r\n\r\n## Supported Providers\r\n\r\n| Provider      | API Key Required | Custom Base URL                         |\r\n| ------------- | ---------------- | --------------------------------------- |\r\n| OpenAI        | Yes              | Optional                                |\r\n| Anthropic     | Yes              | No                                      |\r\n| Google Gemini | Yes              | No                                      |\r\n| Ollama        | No               | Yes (default: `http://127.0.0.1:11434`) |\r\n\r\n## Install\r\n\r\nOpen Freelens, go to Extensions (`Ctrl+Shift+E` / `Cmd+Shift+E`), and install `@borakostem/llm-companion`.\r\n\r\n## Configuration\r\n\r\nAfter installing, go to Freelens **Preferences > Extensions > LLM Companion** to configure:\r\n\r\n1. Select your preferred LLM provider\r\n2. Enter the API key for your provider\r\n3. Choose a model from the dynamically loaded list\r\n\r\n## Build from Source\r\n\r\n### Prerequisites\r\n\r\n- Node.js >= 22\r\n- pnpm (via corepack)\r\n\r\n### Build\r\n\r\n```sh\r\ncorepack install\r\npnpm install\r\npnpm build\r\npnpm pack\r\n```\r\n\r\nOr use the dev build script:\r\n\r\n```sh\r\npnpm pack:dev\r\n```\r\n\r\n### Install Built Extension\r\n\r\nThe tarball will be placed in the project root. In Freelens, navigate to the Extensions list and provide the path to the tarball, or drag and drop it into the Freelens window.\r\n\r\n## License\r\n\r\nMIT\r\n","readmeFilename":"README.md","_rev":"1-aba3349141e3f2e173ef1eaa6ef6ff15"}