İçeriğe atla
ColliePWA

03/Documentation

Yapılandırma

.env, kendi eğik çizgi komutlarınız, anahtarlar, hızlı yanıtlar ve yazı tipleri; görünüm, Zen modu, dil

Collie varsayılan olarak açık tek kullanıcılı modda çalışır: tailnet ağınızda URL'ye erişebilen herkes tam kontrole sahip olur. Bu durum TRUSTED_USER uyarısını tetikler. Erişimi sınırlandırın:

# in your .env
COLLIE_TRUSTED_USER=you@example.com           # your tailnet login — Collie rejects anyone else
COLLIE_PUBLIC_HOSTS=myhost.tail1234.ts.net    # only behind your OWN proxy; on a tailnet `collie
                                              # start` discovers this for you

Collie yapılandırmayı ~/.config/collie dizinindeki bir .env dosyasından yükler. Kurulumu Herdr yönetiyorsa CLI, eklenti yapılandırma dizini için Herdr'a sorgu atar (genellikle ~/.config/herdr/plugins/config/herdr.collie). Her iki yol da CLI komutları genelinde tutarlı şekilde çözümlenir, böylece servis burada oluşturulan dosyayı okur:

mkdir -p ~/.config/collie && cp .env.example ~/.config/collie/.env

# on a Herdr-managed install, seed Herdr's plugin config dir instead:
cp .env.example "$(herdr plugin config-dir herdr.collie)/.env"

Aşağıdaki yollar ~/.config/collie/… kullanır. Herdr tarafından yönetilen bir kurulumda bu önek yerine $(herdr plugin config-dir herdr.collie) kullanın.

Collie .env dosyasını yalnızca başlangıç sırasında okur. Dosyayı değiştirdikten sonra collie restart komutunu çalıştırın.

.env.example dosyası tüm seçenekleri listeler.

Bu dosya COLLIE_PORT, COLLIE_SERVE_MODE=http (Headscale veya .internal alan adları için) ve COLLIE_SERVE_PORT (HTTPS'i :443 dışındaki bir bağlantı noktasından sunmak için; bkz. docs/deployment.md → Tek bir konakta birden fazla Collie) içerir. CLI, sunma parametrelerini köprüye iletmek yerine tailscale serve yapılandırması için okur.

Birden fazla ajan ev dizininden geçmişi okumak için COLLIE_TRANSCRIPT_ROOT içinde virgülle ayrılmış bir liste belirtin.

docs/deployment.md özel alan adlarını ve ters proxy'leri kapsar. Collie aynı köken politikasını zorunlu kılar; bu nedenle her özel ana bilgisayar adı veya harici TLS sonlandırıcısı açıkça izin verilenler listesine eklenmelidir:

COLLIE_ALLOWED_ORIGINS=https://collie.example.com

Bu ayar olmadan kullanıcı arayüzü boş bir sayfa olarak yüklenir. Ayrıntılar için Sorun giderme bölümüne bakın.

Kendi bölü işareti komutlarınız

Herdr eklentisi /fork-in-herdr veya özel /deploy gibi makineye özgü komutları commands.toml içine yerleştirin. Bu, aynı okuyucuyu ve yükleme modelini paylaşan dört yapılandırma dosyasından biridir:

dosyakapsamconfirm/danger bayrağıcanlı yeniden yükleme
commands.tomlisteğe bağlı, satır başınaconfirm = trueevet, yeniden başlatma gerekmez
keys.tomlisteğe bağlı, satır başınadanger = trueevet, yeniden başlatma gerekmez
quick-replies.tomlisteğe bağlı, satır başınayokevet, yeniden başlatma gerekmez
launchers.tomlyok, bunun yerine tam komut eşleşmesi kullanılıryokevet, ancak açık olan bir sekme satırları yalnızca bir sonraki yüklemesinde yeniden okur

Bayrağın ayarlandığı herhangi bir satır, tetiklenmeden önce iki dokunuşlu bir onay gerektirir. Bu dosyalardan herhangi birinde yapılan düzenlemeler, servis yeniden başlatılmadan geçerli olur. Collie bir satırı reddederse journalctl --user -u collie -n 20 satır numarasını ve hatayı yazdırır.

cp commands.toml.example ~/.config/collie/commands.toml
[[commands]]
scope = "omp"                # optional; omit for every pane
command = "/fork-in-herdr"
description = "Fork this conversation into a new herdr tab"

Yapılandırılan satırlarınızla eşleşen bir bölme yalnızca o satırları görüntüler. ADR 0018 belgesinde açıklandığı gibi en dar kapsamlı satır öncelik kazanır.

Doğrulamak için bir bölme açın ve / tuşuna dokunun; satırlarınız ilk ekranda görünür.

Kendi tuş önayarlarınız

Keys çekmecesinin Önayarlar satırını, commands.toml yanında bulunan keys.toml içinde değiştirebilirsiniz:

cp keys.toml.example ~/.config/collie/keys.toml
[[keys]]
scope = "claude"             # optional; omit for every pane
label = "Yes"
keys = ["Down", "Enter"]     # several chords go out as one batch

Bir bölme tanımladığınız satırlarla eşleştiğinde, varsayılan Ctrl C/D/U/R/L/Z düğmeleri (ADR 0018) yerine yalnızca önayarlarınızı gösterir. Çekmecenin geri kalanı (Esc, ok tuşları, Enter/Tab/Space, niteleyiciler, basamaklar, F1–F12) sabittir.

Akorlar tmux sözdizimini değil, herdr sözdizimini kullanır:

tuşakordestekleniyor mu?
Ctrl+Cctrl+c (C-c değil)evet
Shift+Tabshift+tabevet
Ctrl+F7ctrl+F7evet
Page Uphayır
Homehayır
Endhayır
Deletehayır

Doğrulamak için bir bölme açın ve yeni düğmeleri görmek için Keys → Presets ögesine dokunun. Collie bir satırı reddederse hata ayrıntıları için journalctl --user -u collie -n 20 dosyasını kontrol edin.

Kendi hızlı yanıtlarınız

quick-replies.toml içindeki Hızlı dock ifadelerini özelleştirebilirsiniz:

cp quick-replies.toml.example ~/.config/collie/quick-replies.toml
[[replies]]
scope = "claude"             # optional; omit for every pane
title = "confirm"
items = ["yes", "no"]        # sent verbatim, one per button

Bir bölme kurallarınızla eşleştiğinde, varsayılan grupların (ADR 0018) yerini kendi gruplarınız alır. Varsayılan ifadeler İngilizcedir (yes, commit and push).

Farklı dillerde çalıştırmak veya belirli koşumlara approve gibi sözcükler göndermek için bu dosyayı kullanın. scope = "shell" ayarı, aksi takdirde yalnızca y/n alan standart kabuk bölmelerini hedefler.

Doğrulamak için bir bölme açın ve gruplarınızı görmek için Hızlı ögesine dokunun. Bir satır yüklenemezse journalctl --user -u collie -n 20 hatayı yazdırır.

Kendi başlatıcılarınız

Tek bir dokunuş, tanımladığınız bir komutu keys.toml yanında launchers.toml içinde çalıştırır:

cp launchers.toml.example ~/.config/collie/launchers.toml
[[launchers]]
command = "htop"             # required; the shell line, typed verbatim into the fresh shell
label = "Top"                # optional; defaults to the first word of command
# cwd = "~/dev/collie"       # optional; absent means "here" — see below

Dokunuşun nerede açılacağı satıra değil, nereye dokunduğunuza bağlıdır. gösterge paneli üzerinden dokunulduğunda, satırın adını taşıyan yeni bir Space oluşturulur. Yukarı kaydırarak ulaştığınız değiştirici sayfası olan bölme üzerinden dokunulduğunda ise, yanında yeni bir o bölmenin kendi Space alanı içindeki sekme açılır.

Her iki durumda da köprü, yeni kabuğa command yazar ve Enter gönderir. Komut kendi yaşam döngüsünü yönetir: kendi kendine kapanan bir komut Space'i veya sekmeyi de beraberinde kapatır; htop ise siz çıkış yapana kadar kalır.

cwd, söz konusu yeni Space'in veya sekmenin açılacağı yerdir. Bir konumu sabitlediğinizde (yukarıda htop tarafından yapıldığı gibi), satıra nereden dokunursanız dokunun o konum geçerli olur.

Belirtmezseniz "burası" anlamına gelir: kontrol paneli bunu ev dizininizde açar, bir bölme ise o bölmenin kendi çalışma dizininde (cwd) açar; böylece cwd içermeyen bir satır, her zaman belirli bir dizinin en üstüne yerleşmek yerine checkout'larınız boyunca sizi takip eder.

Bu dosya izin verilenler listesidir. POST /api/launch, yalnızca buradaki bir satırla tam olarak eşleşen bir command kabul eder; bu sayede bir telefon, dosyada yer almayan hiçbir şeyi başlatamaz. Değişiklikler yeniden başlatma gerekmeden anında uygulanır, ancak açık durumdaki bir sekme satırları yalnızca bir sonraki yüklemesinde yeniden okur.

Satırlarınız iki yerde görünür: kontrol panelinde Spaces ve Recent gibi katlanabilen bir Launch bölümü ve değiştirici sayfasında (bir bölmeden yukarı kaydırın) bir Launch bölümü. Sabitlenmiş bir satır, ev dizini altında kısaltılmış klasörünü gösterir; cwd içermeyen bir satır, değiştiricide "burası" olarak görünür (kontrol paneli zaten ev dizinini varsaydığı için orada bir şey yazmaz). Hiçbir satır tanımlamazsanız iki bölüm de görünmez.

Bir ekipte (birden fazla makine, telefona bakan tek bir lider), her makine bu dosyanın kendi kopyasını okur; bir satır, lider üzerinde değil, satırına dokunduğunuz makinenin kontrol panelinde veya bölmesinde başlatılır.

Doğrulamak için kontrol panelini yeniden yükleyin ve herd altına bakın. Bir satır yüklenemezse journalctl --user -u collie -n 20 hatayı yazdırır.

Kendi yazı tipleriniz

Arayüz yazı tipi cihaz bazında bir ayardır. Settings → Typeface altında System, Space Grotesk (varsayılan) ve Aldrich arasında seçim yapabilirsiniz. Dördüncü yapılandırma dosyası olan theme.toml içine özel yazı tipleri ekleyebilirsiniz:

cp theme.toml.example ~/.config/collie/theme.toml
mkdir -p ~/.config/collie/fonts
cp departure.woff2 ~/.config/collie/fonts/
[[font]]
family = "Departure Mono"    # the picker's label AND the CSS family
file   = "departure.woff2"   # a bare name inside fonts/, woff2 only
weight = "400 700"           # optional

Özel yazı tipleri, commands.toml ve diğer yapılandırma dosyalarındaki davranışın aksine, yerleşik listenin yerini almak yerine sonuna eklenir (ADR 0033). Yazı tipleri eylemleri tetiklemediğinden gölgelenecek bir durum yoktur.

Üç varsayılan girdinin altında görünürler ve her istemci cihaz kendi seçimini yapar.

Dikkat edilmesi gereken üç davranış:

  • İlk yüklemede düzen kayması. Özel yazı tipleri metrik eşlemeli yedek karakter kümelerine sahip değildir; bu durum ilk yükleme sırasında küçük bir düzen kaymasına (layout shift) neden olur. Yerleşik yazı tiplerinin yedekleri derleme sırasında oluşturulduğu için bu durum önlenir.
  • Soğuk yükleme gecikmesi. Soğuk yükleme dosyayı kısa bir gecikmeyle getirir; önbelleğe alınmış bir istemci ise anında çizer.
  • Yalnızca arayüz çerçevesi. Seçilen yazı tipi yalnızca Collie'nin arayüz çerçevesine uygulanır. Terminal yansıması, transkript ve işlenmiş markdown kendi tipografilerini korur.
  • Sonraki yenilemede etkin. Değişiklikler yeniden başlatma gerektirmez, bir sonraki sayfa yenilemesinde geçerli olur. Geçersiz yapılandırmalar, journalctl --user -u collie -n 20 aracılığıyla görüntülenebilen hatalar kaydeder.

Ekler

Mesaj kutusunun yanındaki ataş, ana bilgisayara bir dosya yükler ve dosyanın yolunu mesajınıza ekler.

# in your .env
COLLIE_MAX_UPLOAD_MB=25              # default 10, floor 1, ceiling 512
COLLIE_UPLOAD_EXTRA_TYPES=rb,ex,zig  # bare extensions, no dot

Collie dosyayı <state-dir>/uploads altına yalnızca sahibine özel izinlerle kaydeder ve mutlak yolunu taslağınıza ekler. Terminal yapıştırılan bir dosyayı alamayacağından, ajan dosyayı bu yoldan okur. Yüklemeler, yazıldıktan 48 saat sonra temizlenir.

AyarVarsayılanİşlevi
COLLIE_MAX_UPLOAD_MB10Kabul edilen en büyük dosya boyutu, tam megabayt cinsinden. Aralık dışı veya tam sayı olmayan değerler varsayılana döner ve bir uyarı günlüğe kaydedilir.
COLLIE_UPLOAD_EXTRA_TYPES(boş)Aşağıdaki listenin dışında kabul edilecek ek metin türleri. Virgülle ayrılmış yalın uzantılar; baştaki nokta yok sayılır ve harf ya da rakam olmayan her şey bir uyarıyla atılır.

İki tür dosya kabul edilir ve bunlar farklı şekilde denetlenir.

Görseller adlarına veya beyan edilen türlerine göre değil, imza baytlarına göre tanımlanır: png, jpg, gif ve webp. SVG, bir resimden ziyade komut dosyası içeren bir işaretleme dili olduğu için bilerek reddedilir.

Metin uzantısıyla tanımlanır ve baytlar veto yetkisine sahiptir: ilk 4 KB'ı NUL veya sahipsiz bir kontrol baytı içeren bir dosya, adı ne olursa olsun reddedilir. Varsayılan olarak sunulan liste şunlardır: md, markdown, txt, json, jsonl, yaml, yml, toml, csv, tsv, log, xml, html, htm, css, js, jsx, mjs, cjs, ts, tsx, py, go, rs, sh, bash, sql, diff ve patch.

Not. COLLIE_UPLOAD_EXTRA_TYPES yalnızca metin türlerini ekler. Bir görselin denetlenmesi için bir imzaya ihtiyacı vardır, bu nedenle bu yöntemle ekleyebileceğiniz ikili bir biçim yoktur.

COLLIE_MAX_UPLOAD_MB değerini artırmak, beraberinde iki sayıyı daha artırır. Bridge, boyutu ölçebilmek için yüklemenin tamamını belleğe okur; bu nedenle büyük bir üst sınır ile aynı anda yapılan birkaç yükleme, o miktarda bellek tüketir. Ayrıca çalışma zamanının gövde boyutu sınırı yalnızca yükleme yoluna değil her yola uygulanır; bu yüzden büyük bir üst sınır, büyük bir gövdenin herhangi bir işleyiciye ulaşmasına izin verir ve işleyicinin kendi sınırı bunu reddeder. 48 saat dolmadan hiçbir şey silinmez, dolayısıyla yüklemeler dizini en fazla iki günde gönderilenleri tutar. Sayıyı varsayılan olarak değil, ihtiyacınız olduğu için artırın.

Bir crew içinde her iki ayar da makine başınadır ve bunları dosyayı depolayan makine uygular. Lead, giden bağlantı kotanızı korumak için aşırı büyük bir gövdeyi iletmeden önce reddeder, ancak bunu kendi sınırına göre yapar. Her üyede aynı değerleri ayarlayın; aksi takdirde bir eş, lead'in izin verdiğini reddeder.

Çoklu oturum

Varsayılan olarak tek bir Collie örneği, bulduğu her Herdr oturumuna hizmet verir.

COLLIE_MULTI_SESSION=on (varsayılan), yapılandırma kökünüz altındaki adlandırılmış her Herdr oturumunu keşfeder ve hizmete sunar; başlık alanından oturumlar arasında geçiş yapılabilir. COLLIE_MULTI_SESSION=off ayarlandığında yalnızca birincil oturuma hizmet verilir. Özel veya sandbox oturumları dahil olmak üzere keşfedilen her oturuma aynı URL üzerinden erişilebilir. Güvenlik bu davranışı dikkat edilmesi gereken pürüzlü bir nokta olarak listeler.

Karanlık mod / aydınlık mod

Not. Collie varsayılan olarak telefonunuzun görünümünü takip eder.

Sabitlemek için Ayarlar → Görünüm menüsünü açın ve Sistem, Aydınlık veya Karanlık seçeneğini belirleyin. Ayar, bridge üzerinde değil tarayıcıda cihaz başına olarak saklanır. Dizüstü bilgisayar işletim sistemini takip ederken telefonunuz Karanlık modda kalabilir. Tercih, aynı cihazda sayfa yenilemelerinde ve PWA yeniden yüklemelerinde korunur.

Terminal yansıması kasten farklıdır

Yansıma her zaman bir karanlık zemin üzerinde işlenir. Aydınlık mod, bağımsız span öğelerini yeniden renklendirmek yerine tüm öğeyi tersine çevirir.

Ajanlar, karanlık arka planlar için ayarlanmış mutlak 24 bit renk kodları (38;2;r;g;b) yayar; ardışıl ayrıştırıcılar bunları güvenilir şekilde yeniden eşleyemez. Doğrudan beyaz üzerine işlendiğinde çoğu ajan çıktısının kontrast oranı 3:1 altına düşer. Tersine çevirme, hedeflenen kontrastı korur. Ölçümler ADR 0002 içinde belgelenmiştir.

Bu uygulamanın iki pratik sonucu vardır:

  • Ajanlarınızı koyu temalar için yapılandırılmış tutun. Bu durum Claude Code, codex, opencode ve pi için varsayılandır. Bir ajan açık tema kullanıyorsa, her iki modda da Collie içinde okunaksız hale gelen açık zemin üzerine koyu değerler yayar. Bu durum Collie'nin kendisinden değil, ajan çıktısından kaynaklanır.
  • Açık modda Farklar ve vurgulanan satırlar koyu bloklar olarak oluşturulur. Kontrast korunur ancak görsel ağırlık tersine döner.
Not. iOS'e yüklendiğinde, açık modda durum çubuğu metni beyaz kalır ve arka planla karışabilir. iOS, web uygulamalarının bu değeri dinamik olarak güncellemesine izin vermez. Bu kısıtlamayı önlemek için Collie'yi yüklü bir PWA yerine doğrudan tarayıcıda çalıştırın.

Zen modu

Not. Zen modu varsayılan olarak kapalıdır.

Settings → Zen mode üzerinden etkinleştirin (tarayıcıda cihaz başına saklanır). Bu işlem, Find ve History'nin yanındaki ⋮ altında bulunan bölme menüsüne bir Zen modu seçeneği ekler. Bu seçeneğe dokunulduğunda tüm Collie arayüz ögeleri gizlenir: üst bilgi, sekme ve bölme şeritleri, ajan durum satırı ve composer dock'ları. Yalnızca terminal yansıması görünür kalır. Sağ üst köşedeki yüzen bir düğme veya Escape tuşu arayüzü geri yükler.

Zen modu geçici durumdadır. Yapılandırma kalıcıdır, ancak bölmeler arasında geçiş yaptığınızda veya sayfayı yeniden yüklediğinizde etkin durum sıfırlanır. Bölmeler her zaman standart chrome ile açılır.

Terminal yansıması Zen modunda yoklamaya devam eder ve etkileşimli arabellek ögeleri işlevsel kalır. İstem düğmeleri, "Load older" ve "Show entire history" denetimleri, chrome yerine içerik akışının parçası oldukları için kullanılabilir kalır.

Dil

Collie'nin arayüzü altı dilde kullanılabilir. Bunu Settings → Language altından yapılandırın.

  • English
  • Deutsch
  • Español
  • 한국어
  • 日本語
  • 中文

Seçim, cihaz başına tarayıcıda yerel olarak kaydedilir. Terminal yansıması çevrilmeden kalır: ajanın ham çıktısını görüntüler; hızlı yanıtlar, menü etiketleri ve tuş başlıkları ise temel ekran veya klavye adlarıyla eşleşir.

Bu sayfayı GitHub üzerinde düzenleyin