Sno Station
Sno Station은 AI 에이전트를 하나의 팀으로 묶는 오픈소스 워크스테이션으로, 로컬 머신에서 에이전트 협업을 가능하게 함
Kubemoot는 쿠버네티스에서 AI 에이전트 팀을 운영해 합의를 도출합니다 오픈 모델과 자체 GPU 사용
Kubemoot runs a crew of AI agents on Kubernetes that deliberate to a consensus answer, instead of trusting one large model. Open models, your own GPUs.
플러그인TypeScript · CSSGitHub @kubemoot온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
CrewForge for VS Code: see, ask, and author Kubemoot crews from the editor
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
CrewForge is a VS Code extension for building and running Kubemoot
crews. Create a crew, edit it as code, lint it, deploy it to a namespace, ask it questions,
and run its fitness scenarios, all from the editor.
It works through your kubeconfig, the same way kmctl does: any cluster your kubectl can
reach works, no crew needs a public address, and no extra credential is involved.
Install CrewForge from the VS Code Marketplace. For other editors (Open VSX) and the
offline .vsix, see Install and connect.README 전문 보기 ↗CrewForge is a VS Code extension for building and running Kubemoot crews. Create a crew, edit it as code, lint it, deploy it to a namespace, ask it questions, and run its fitness scenarios, all from the editor.
It works through your kubeconfig, the same way kmctl does: any cluster your kubectl can
reach works, no crew needs a public address, and no extra credential is involved.
Install CrewForge from the VS Code Marketplace. For other editors (Open VSX) and the
offline .vsix, see Install and connect.
You need VS Code 1.95 or later and a kubeconfig with access to a cluster that runs the
Kubemoot operator. Developing a crew also needs helm (deploy and lint), kubectl
(bundles of plain manifests), and a current kmctl
release (create). CrewForge reads the kubeconfig from the crewforge.kubeconfig
setting, else KUBECONFIG, else ~/.kube/config. VS Code started from the Dock or
Start menu does not see a KUBECONFIG exported in a terminal, so point CrewForge at the
file with CrewForge: Select Kubeconfig File. If the path is a folder or missing,
CrewForge says so and names the command.
kmctl create --chart: a small, working crew that reads its
own namespace, with 1 to 5 specialists. It ships no models and names no model server:
its scheduling policy states what it needs, a model that can call tools, and the
cluster's model catalog supplies the models. Name it in plain words; CrewForge suggests
the Kubernetes name from it, and Rename... later changes either.preferFaster). It names no
model; the cluster's model catalog supplies them. Add Crew-Local Model
(Advanced)... is there for a crew that must bring its own: it writes the Model's
parameters and abilities, and warns first that a crew with Models of its own stops
using the catalog. The status bar says where the crew stands against its deployment:
not deployed, in sync, or changed. Lint checks the chart against your cluster's
schemas.The status bar always shows the context CrewForge is connected to. If the cluster cannot be reached, CrewForge says so in plain words and offers Select Kubernetes Context.
CrewForge writes only Kubemoot resources and Helm releases of them. It never deletes a namespace or any other kind of object; the operator owns cleanup.
The full documentation is on kubemoot.org:
This section is for working on CrewForge itself; using it needs only the install above.
npm install
npm test # vitest
npm run test:coverage # the same, failing below the coverage thresholds CI enforces
npm run lint
npm run typecheck
npm run package # builds dist/ and crewforge-<version>.vsix
Before you push, run npm run lint, npm run typecheck, and npm run test:coverage.
SonarQube judges the code, and npm run lint runs the same TypeScript rules on src/
first: the eslint-plugin-sonarjs rules of the Sonar way profile, plus the
typescript-eslint and unicorn rules Sonar runs under its own keys (see
eslint.config.mjs). A finding there is very likely one SonarQube would report after
the push; the server stays the authority.
With this repository open in VS Code, F5 starts a second VS Code window (the Extension Development Host) running your local build.
The tests replay discussion streams recorded from a live crew (test/fixtures/*.sse).
The VS Code glue runs against a small fake of the vscode module (test/vscodeFake.ts)
and a local stand-in for the Kubernetes API (test/fakeApiServer.ts); the chat page's
script runs in jsdom against the page the panel generates.
To record a new one:
P=/api/v1/namespaces/<ns>/services/<crew>-discussion:80/proxy/api/v1/discussions/<crew>
ID=$(kubectl create --raw $P -f <(printf '{"message":"<question>","conversationId":""}') | jq -r .conversationId)
kubectl get --raw $P/$ID/stream > test/fixtures/<name>.sse
Versions come from git tags; package.json keeps 0.0.0 and the workflows set the
version when they package. Every push to main tags a release candidate
vX.Y.Z-rc.N (the conventional commits since the last release decide X.Y.Z) and
packages its .vsix as a workflow artifact, publishing nothing. A maintainer publishes a
tested candidate with the Publish Release workflow, which tags vX.Y.Z and writes
the GitHub Release with the .vsix, its Sigstore signature, and its build provenance
attached, and, only when asked, publishes the same .vsix to the VS Code Marketplace
and Open VSX (see CONTRIBUTING).
Kubemoot is an independent open-source project under the Apache License 2.0. Contributing, support, governance, the code of conduct, security reporting, and releases are documented in one place: the Community section of kubemoot.org. Ask questions and share ideas in GitHub Discussions. Write to [email protected] for anything else. Use [email protected] only to report a vulnerability, privately.
Apache License 2.0. See LICENSE.