00 · Ne bu
Y Combinator, Claude'u "komple bir şirket kadrosuna" çeviren sistemi açık kaynak yaptı
Sekiz günde on iki bin yıldız aldı. Adı qm (yc-software/qm). Fikir basit ama önemli bir fark yaratıyor: Claude'u tek başına değil, kendi hafızası, kendi dosyaları, kendi izinleri olan ayrı "ekip üyeleri" halinde çalıştırıyorsunuz — hepsi aynı ajanla, ortak bir kadro gibi.
Repo dokümantasyonunda anlatılan resmi kurulum yolu bir şirket için tasarlanmış ve bulut hesabı istiyor. Ama kaynak kodun içinde, hiçbir yerde yazmayan bir şey var: bulutsuz, sadece kendi bilgisayarınızda çalışan bir mod. Bunu bizzat kurup çalıştırdık, ekran görüntüsüyle doğruladık.
01 · İki yol var, birbirine karıştırma
"Denemek" ile "şirkete kurmak" aynı şey değil
resmi yol (şirket için)
Kurulum klasörünü üretmesi bulutsuz çalışıyor. Ama sistemi gerçekten ayağa kaldırmak — yani qm doctor / qm up adımı — bir Fly.io hesabı zorunlu kılıyor. Ayarlardan kaçış aradık, sistem sertçe kapattı.
yerel yol (denemek için)
Kaynak kodun kendisini bilgisayarınızda çalıştırıyorsunuz. Fly yok, AWS yok, veritabanı yok, Docker bile yok. Tarayıcıda gerçek arayüz açılıyor, model seçicide Opus 5 görünüyor, mesaj yazıp cevap alıyorsunuz.
Aşağıda bu iki yolu da adım adım, gerçek komut ve gerçek çıktılarla anlatıyorum — hangi adımda hangi duvarla karşılaştığımı da saklamadan.
01 · Ön koşul: Node 24 şart
Node 22 ile başladık, komut kapıda durdurdu:
error: Node v22.22.0 does not satisfy "node": ">=24.0.0" required by the qm CLI package
— install Node >=24.0.0 (e.g. `nvm install 24`) and rerunNode 24'e geçince kurulum sorunsuz devam etti. Kalıcı bir sistem değişikliği gerekmiyor — nvm ile geçici bir sürüm yeterli.
02 · Kurulum klasörünü üret (bulutsuz, hesapsız)
Tek komut, saniyeler içinde şirketin bütün ayarlarını üretiyor:
$ npm exec --yes --package=@yc-software/qm@latest -- qm init . --org kaanai --target docker
✓ wrote qm.config.jsonc (orgId=kaanai, target=docker, modelProvider=anthropic)
✓ wrote package.json
✓ wrote .env.example
✓ wrote .gitignore
✓ wrote .env
✓ wrote AGENTS.md
✓ wrote deployment.md
✓ wrote .codex/skills/deploy-qm/SKILL.md
✓ wrote .codex/skills/deploy-qm/agents/openai.yaml
✓ wrote .codex/skills/deploy-qm/references/fly.md
✓ wrote .codex/skills/deploy-qm/references/aws.md
✓ wrote .codex/skills/deploy-qm/references/slack.md
✓ wrote .codex/skills/deploy-qm/references/email.md
✓ wrote slack-app-manifest.yml
✓ wrote sandbox/skills/greet/SKILL.md
✓ wrote sandbox/tools/example-tool/tool.json
✓ wrote sandbox/tools/example-tool/example-tool
Next:
1. npm install
2. \$EDITOR qm.config.jsonc
3. npm exec qm -- setup
4. npm exec qm -- check
5. npm exec qm -- up17 dosya, hesap yok, para yok. qm.config.jsonc her satırı yorumlu — şirketin ayarları önünde duruyor.
02b · Config doğrulaması
$ npm exec qm -- check
=== qm check — kaanai ===
· sandbox: sandbox/
tools : example-tool (executable)
skills: greet
Dockerfile: no
· plugins: (none)
· required secrets: ANTHROPIC_API_KEY, CAPABILITY_SECRET, CONNECTOR_SECRET_KEY,
CORE_SIGNING_SECRET, PORTAL_IDENTITY_SECRET, PUBLIC_API_URL, SKILL_SIGNING_SECRET
✓ check passed — config, sandbox layer, and plugins are valid.03 · Duvarın tam yeri (resmi yolda) — gizlemiyoruz
Aynı config'i gerçekten ayağa kaldırmak (qm doctor) istediğimizde:
$ npm exec qm -- doctor
· required local secret values: ok
error: flyctl not found on PATH — install it (https://fly.io/docs/flyctl/install/) and run `fly auth login`--target docker (yerel Docker) seçili olsa bile bir Fly.io hesabı isteniyor. Ayarlardan sandbox bloğunu silip kaçış aradık — sistem sertçe kapattı:
error: check failed (1 problem):
- contract sandbox.app: a Fly agent-computer app is required for docker and fly targetsResmi CLI ile bulutsuz "şirkete kurulum" imkânsız — bu kesin. Aşağıdaki adım bu yüzden var: aynı sistemi, kaynak kodundan, bulut hiç devreye girmeden çalıştırmak.
04 · Belgelerde yazmayan yol: sistemi kaynağından yerelde çalıştır
Kaynak kod klonlanıp .env dosyasına gerekli değerler (test için rastgele üretilmiş anahtarlar) yazıldıktan sonra:
$ npm start
[qm] listening on :8080 (org=acme, store=memory, runStore=memory, workers=16, backgroundWork=true)Kritik satır: store=memory. Veritabanı yok, Docker yok, bulut yok — sistem sadece bu komutla ayakta.
05 · Web arayüzü + giriş (e-posta sağlayıcısı olmadan)
Web arayüzü, yönetim paneli ve giriş kapısı da aynı şekilde yerelde başlatılıyor. Kritik ortam değişkeni PORTAL_LOCAL_AUTH_BYPASS — bu resmi dokümantasyonda hiç geçmiyor:
[web-ui] surface on http://localhost:8096 → core http://localhost:8080 (org acme)
[portal] public front door on http://localhost:8098 → web-ui/admin over 6PN (org acme)
[portal] PORTAL_LOCAL_AUTH_BYPASS=1 -- using kaan@kaandogan.com.tr as the local session principalGiriş doğrulaması — hiçbir e-posta gönderilmeden:
{"user":"kaan@kaandogan.com.tr","org":"acme","mode":"portal","permissions":[]}Tarayıcıda localhost:8098 açıldığında ChatGPT benzeri tam bir uygulama karşılıyor: sol menüde Projects · Chats · Files · Crons · Keychain · Apps · Memory · Skills — her biri "ekip üyesinin kendi alanı" iddiasının ekrandaki karşılığı. Mesaj kutusunun yanında model seçici (Opus 5) ve harness seçici (Pi) duruyor.
06 · Gerçek mesaj gönder, cevap al
Mock modda (para harcamadan) uçtan uca test:
POST /api/turn {"text":"Merhaba, sen kimsin?"}
→ {"status":"queued","runId":"429620d1-..."}
→ {"status":"done","result":{"status":"ok","reply":"You said: Merhaba, sen kimsin?"}}Bu, mock moddaki kalıp cevap — ama boru hattının uçtan uca çalıştığını kanıtlıyor. Gerçek model moduna (HARNESS=pi) kasıtlı geçersiz bir anahtarla geçildiğinde:
{"status":"failed","reason":"Model provider API error (authentication_error): invalid x-api-key"}Bunun anlamı büyük: istek doğrudan modele gitti — Docker'a, buluta, sanal makineye hiç takılmadı. Geçerli bir Anthropic API anahtarı verirseniz gerçek cevap yerelde gelir.
07 · İki duvar daha (dürüstçe)
- Ajanın komut çalıştırması (dosya işleme, kod çalıştırma) için Docker Desktop gerekiyor (
SANDBOX_BACKEND=local requires a running Docker daemon). Sadece sohbet/cevap için gerekmiyor — sadece "ajan gerçekten komut çalıştırsın" sahnesi için. - Gerçek cevap için bir Anthropic API anahtarı lazım. Bu bulut altyapısı değil, sadece model kullanım faturası — birkaç kuruş.
08 · 60 saniyelik kontrol listesi
- Terminalde
[qm] listening on :8080satırı göründü mü? localhost:8098açılıp giriş ekranı olmadan doğrudan panele düştü mü?- Sol menüde Projects · Chats · Files · Crons · Keychain · Memory · Skills görünüyor mu?
- Mesaj kutusunun yanında model seçici (Opus 5) var mı?
- Mock mesaj gönderip
"status":"done"cevabı aldınız mı?
Hepsi ✓ ise sistem sizin bilgisayarınızda, bulutsuz çalışıyor demektir.
Kalıcılık notu
Bu yerel mod repo güncellenmeye devam ettikçe de çalışmaya devam eder — store=memory ve PORTAL_LOCAL_AUTH_BYPASS resmi dokümantasyonun DIŞINDA, kaynak kodun kendisinde tanımlı; CLI'nin resmi akışı değişse bile bu yerel çalıştırma yolu ayrı bir kapıdır.
Sorularınızı yorumlarda görürsem cevaplarım — @kaandoganai