06/Documentation
Çoklayıcılar
Collie'yi Herdr, tmux veya zellij'e yönlendirme, her arka ucun yanıtlayabildikleri ve aracı işaretçileri. tmux ve zellij için 1.0 sürümünde deneyseldir; hata bildirimleri beklenmektedir
Collie, kurulum başına tek bir çoğullayıcı yönetir: Herdr, tmux veya zellij. Herdr varsayılandır. Bu sayfa, Collie'yi bu üçünden birine yönlendirmeyi, her bir arka ucun nelere yanıt verebileceğini ve Collie'nin bir bölmedeki ajanı tespit etmek için kullandığı işaretçileri (beacons) kapsar.
Collie'yi bir çoklayıcıya yönlendirme
Arka ucu COLLIE_MUX içinde adlandırın, bir uç noktaya yönlendirin, yeniden başlatın ve işaretçi kancalarını yükleyin.
1.0 sürümünde deneyseldir. tmux ve zellij, tek bir ana makinede tmux 3.6b ve zellij 0.44.2 üzerinde test edildi. Herdr, varsayılan ve birincil olarak desteklenen arka uçtur. Test edenler aranıyor: çoğullayıcınız, sürümünüz, işletim sisteminiz ve gördüğünüz durumu içeren,tmux: …veyazellij: …başlıklı bir sorunu AltanS/collie üzerinde açın.
Komut satırında çoğullayıcıyı adlandırın:
COLLIE_MUX=herdr collie start
COLLIE_MUX=tmux collie start
COLLIE_MUX=zellij collie startVarsayılan hedef istediğiniz hedef olmadığında uç noktayı ayarlayın:
# in your .env: ~/.config/collie/.env, or Herdr's plugin config dir on a Herdr
# install. See Configure for the full precedence.
COLLIE_MUX=tmux
COLLIE_MUX_ENDPOINT_TMUX=/run/user/1000/collie-tmux.sock
COLLIE_MUX_ENDPOINT_ZELLIJ=collie-zellij
# only if the binary sits somewhere unusual
# COLLIE_TMUX_BIN=/usr/bin/tmux
# COLLIE_ZELLIJ_BIN=/home/you/.local/bin/zellij| değişken | değer | anlamı |
|---|---|---|
COLLIE_MUX | herdr, tmux veya zellij | bu kurulumun hangi arka ucu yönettiği |
COLLIE_MUX_ENDPOINT_TMUX | /run/user/1000/collie-tmux.sock | bir soket PATH değeri (tmux -S), çünkü bir / içerir |
COLLIE_MUX_ENDPOINT_TMUX | work | bir soket NAME değeri (tmux -L work), / içermez |
COLLIE_MUX_ENDPOINT_TMUX | boş | tmux'ın kendi varsayılan sunucusu |
COLLIE_MUX_ENDPOINT_ZELLIJ | collie-zellij | bir oturum NAME değeri, yol değil |
COLLIE_MUX_ENDPOINT_ZELLIJ | boş | çalışan tek oturum |
COLLIE_TMUX_BIN | /usr/bin/tmux | yalnızca tmux alışılmadık bir konumdaysa |
COLLIE_ZELLIJ_BIN | /home/you/.local/bin/zellij | yalnızca zellij alışılmadık bir konumdaysa |
Herdr'ın burada bir uç nokta değişkeni yoktur: soketi HERDR_SOCKET_PATH şeklindedir, bir COLLIE_MUX_ENDPOINT_ adı değildir.
Bu soket yerel olandır ve başka bir soket değildir. Herdr içinde kayıtlı bir makine bir ekip üyesi değildir ve yalnızca bir Collie ekibi başka bir makinenin oturumlarını telefona aktarır. Her listenin ne olduğu ve birinin neden diğeri olmadığı Herdr makineleri ve ekip içinde yer alır.
Ardından yeniden başlatın, işaretçi kancalarını kurun ve telefonun görebileceği yerde bir ajan başlatın:
collie restart # after every .env edit
collie hooks install claude # once per host, tmux and zellij only
# open a window or a tab for the agent
tmux -S /run/user/1000/collie-tmux.sock new-window -n claude
zellij --session collie-zellij action new-tab --name claude
claude # in that window or tabBu komutlar ne yaptı
Komut satırındaki COLLIE_MUX, seçimi hem o çalıştırma hem de sonraki tüm çalıştırmalar için ayarlar. start, adı .env dosyasına yazar; böylece daha sonra collie start komutunu çalıştırmak aynı çoğullayıcıyı yönetir.
COLLIE_MUX ayarlanmadığında, start Herdr, tmux ve zellij için yoklama yapar, bir arka uç seçilmesini ister ve yanıtı .env dosyasına yazar. Yapılandırma referansının tamamı için MUX_CONTRACT.md → Bir collie'yi çoğullayıcıya yönlendirme bölümüne bakın.
collie hooks install claude, Collie'nin tmux ve zellij tarafından gereksinim duyulan beacon kancalarını kurar. Bunlar panelleri genel kabuklar olarak sunar; bu nedenle kancalar olmadan her panel bash olarak görünür.
Komut ~/.claude/settings.json dosyasını günceller ve proje yapılandırmalarına dokunmaz (ayrıntılar aşağıda). Çalışan Claude örnekleri yapılandırmalarını yeniden yüklemez, bu nedenle bunları yeniden başlatın.
Not. Bu modda Herdr gerekli değildir.COLLIE_MUX=tmuxveyaCOLLIE_MUX=zellijile köprü yalnızca seçilen bağdaştırıcıyı yükler ve Herdr'ın soketini yok sayar. Herdr yapılandırma kökleri genelinde çoklu oturum keşfi devre dışı bırakılır (bridge/index.ts). Herdr'ın kurulu veya çalışıyor olmasına gerek yoktur ve.env, eklenti yapılandırma dizini yerine~/.config/collie/içinde yer alır.
tmux notları
COLLIE_TMUX_BIN genellikle ayarlanmadan bırakılır. Collie standart yolların bir listesini denetler ve arka plan servislerinin ve Herdr eylemlerinin oturum açma kabuklarıyla paylaşmadığı PATH değerini okumaz.
Not. Soket yollarını kısa tutun. Yaklaşık 100 karakterden uzun Unix alan adı soketlerine bağlanılamaz ve tmuxerror connecting to … (File name too long)döndürür. Derin bir dizin yolu yerine/run/user/<uid>/veya/tmpkullanın.
window-size değeri manual olarak ayarlanmış 3.7 sürümünden önceki tmux sürümlerinde bir pencere oluşturmak sunucuyu çökertecektir. Collie bu durumda pencere oluşturulmasını engeller ve sizden tmux set -g window-size latest komutunu çalıştırmanızı ister; Gereksinimler test edilen sürümleri listeler.
zellij notları
Dağıtımınızda zellij paketleri yoksa zellij'in GitHub sürümleri adresinden bir ikili dosya indirin ve bunu PATH yolunuza yerleştirin.
Uç noktanın boş bırakılması varsayılan olarak tek çalışan oturumu kullanır. Sıfır veya birden fazla oturum varsa Collie bunlardan birini seçmek yerine bir hatayla durur. Adlandırılmış bir oturum sonlanırsa Collie etkin bir oturuma geçmek yerine bunu adıyla bildirir.
Zellij oturumları bulmak için XDG_RUNTIME_DIR değişkenini gerektirir. Collie tüm oturumların sonlandığını bildirirse systemd servisinin bu ortam değişkenini içerdiğini doğrulayın (contract).
Zellij oturumları ilk uçbirimlerinden bağımsız olarak varlığını sürdürür. zellij -s collie-zellij ile bir oturum oluşturun ve Ctrl o d kullanarak ayrılın. Başsız ana bilgisayarlarda zellij attach --create-background collie-zellij doğrudan ayrılmış bir oturum başlatır (zellij 0.44.2 üzerinde doğrulanmıştır).
Not. Collie etkin oturumları yönetir, ancak bunları oluşturmaz veya yeniden başlatmaz.
Çalıştı mı?
collie doctor # the `mux` check names the multiplexer, its endpoint,
# and whether it answered
# `[bridge] mux: tmux · socket /run/user/1000/collie-tmux.sock`, printed at
# startup; a multiplexer it cannot reach is one warning line more
collie logs
# the herd, as the phone is given it
curl -s http://127.0.0.1:8787/api/snapshot | head -c 400Bu curl çağrısı kimlik doğrulama başlıkları olmadan çalışır. Okuma istekleri COLLIE_DEVICE_HEADER etkin olduğunda bile cihaz doğrulamasını atlar (Yapılandırma). Yalnızca yazma eylemleri yapılandırılmış başlığı gerektirir.
Telefon arayüzünü denetleyin: gösterge paneli tmux pencereleri veya zellij sekmeleri değerinizi görüntülemeli ve Claude paneli bash yerine bir ajan olarak tanımlanmalıdır. Paneller hala standart kabuklar olarak görüntüleniyorsa aşağıdaki beacon kancası kurulumunu doğrulayın.
Collie kancaları Claude'un kendi ayarlarına yazar
$ collie hooks install claude
$ collie hooks status
would install: /home/you/collie/bin/collie beacon emit (this checkout)
/home/you/.claude/settings.json: installed (v1)tmux ve zellij panelleri genel kabuklar olarak sunduğu için ajanlar kendilerini bildirmelidir. Bu işlem Collie'nin beacon kancalarının Claude Code yapılandırmasına kurulmasını gerektirir.
Çıktı bu depodaki bin/collie yolunu referans alır. Paket kurulumları sürümlenmiş dizinler yerine kurulu ikili dosya yolunu (~/.local/bin/collie veya ~/.local/share/collie/current/bin/collie) kullanarak bağlantıların güncellemeler boyunca geçerli kalmasını sağlar.
Claude yapılandırma değişiklikleri için davranış ayrıntıları:
- genel
~/.claude/settings.jsondosyasını ve tüm etkinCLAUDE_CONFIG_DIRöğelerini değiştirir. Proje düzeyindeki.claude/settings.jsondosyalarına dokunulmaz. - 10 saniyelik zaman aşımlarına sahip
# collie-beacon v1etiketli beş kancası ekler. Mevcut kancalar korunur.hooks uninstall claudeyalnızca Collie girdilerini kaldırır. - Çalışan Claude işlemleri yapılandırmayı yeniden yüklemez. Değişiklikleri uygulamak için aracıları yeniden başlatın.
- Yalnızca Linux. Aracının canlılık denetimi
/procbileşenine bağlıdır. Diğer işletim sistemleri sinyal göndermez. - Sinyaller çoğullayıcıya özeldir. Etkin arka uç için bölme ve oturum tanımlayıcılarını kaydederler.
COLLIE_MUXdeğiştirmek mevcut sinyalleri geçersiz kılar. Eski sinyaller temizlenene kadar diskte kalır vecollie doctoraltındakibeaconssayısında görünür. COLLIE_STATE_DIRkullanıyorsanız aracının kabuk ortamında dışa aktarın.collie beacon emitbu değişkeni doğrudan okur; aksi takdirde sinyaller, köprünün onları bulamayacağı varsayılan durum dizinine yazılır.
collie doctor, eksik kancaları veya yeri değiştirilmiş depolara yönelik bozuk yolları gösteren bir beacon-hooks-claude tanılama denetimi içerir. Çalışma zamanı ayrıntıları için Aracı sinyalleri bölümüne bakın.
Herdr ile karşılaştırıldığında ne değişiyor
Aşağıdaki tablo temel farklılıkları özetlemektedir. Kesin belirtim için MUX_CONTRACT.md belgesine bakın.
| Herdr | tmux | zellij | |
|---|---|---|---|
| bir alan şudur: | bir çalışma alanı | bir oturum | oturum; tam olarak bir tane, bu nedenle telefon alan şeridini kaldırır |
| bir sekme şudur: | bir sekme | bir pencere | bir sekme |
| bir bölme şudur: | bir bölme | bir bölme | bir uçbirim bölmesi |
| bir bölmenin aracı içerdiğini kim belirtir | Herdr, bizzat kendisi | bir beacon veya hiçbir şey | bir beacon veya hiçbir şey |
| duurulmamış bir değişikliğin ne kadar sürede görüleceği | itildi | itildi | bir takvime göre sayılır, 12 sn üst sınır |
| "Terminalde göster" | evet | evet | hayır — zellij isteği kabul eder ve hiçbir şeyi taşımaz |
| sekme aç / yeniden adlandır / kapat | evet | evet (yukarıdaki tmux çökmesi durumunda açma işlemi reddedilir) | evet |
| alan aç | evet | evet | hayır — oluşturduğu bir oturum kendisine görünmez olurdu |
| bölme geçmişi | Herdr'ın kendi bölme kaydından | beacon'ın oturum anahtarından | beacon'ın oturum anahtarından |
Etkin beacon'lar olmadığında tmux ve zellij bölmeleri ham kabuklar olarak sunar ve bölme geçmişi boş içerik döndürmek yerine kullanılamaz olarak işaretlenir.
Telefonda farklı hissettiren iki şey
- "N sn önce senkronize edildi": Bu gösterge, veri yaşını göstermek için pano başlığında görünür. zellij gibi yalnızca arka uç zamanlanmış yoklamaya dayandığında görüntülenir (12 saniyeye kadar yoklama aralığı). Herdr ve tmux durum değişikliklerini anında iletir, bu nedenle güncellik rozeti gösterilmez.
- "Terminalde göster": Bu bölme eylemi, seçilen bölmeyi etkin ana bilgisayar terminalinizde odaklar. zellij'in odak komutu görünüm durumunu değiştirmeden talimatı kabul ettiği için bu eylem zellij üzerinde devre dışı.
Not. Mobil arayüz, ana bilgisayar terminali odağını hiçbir zaman otomatik olarak değiştirmez. Yalnızca açıkça yapılan "Terminalde göster" eylemi ekranı günceller. Panoda gezinmek veya bölmeleri açmak etkin ana bilgisayar imlecini etkilemez (ADR 0031).
tmux ipuçları — yeniden başlatma sonrasında pencerelerinizi geri alma
claude --resume # reconnects the conversation, not the windowCollie çoğullayıcı durumunu saklamaz. Bir tmux sunucusunu yeniden başlatmak pencerelerini yok eder ve panoyu boş bırakır. Standart tmux eklentileri pencere düzenlerini ve çalışma dizinlerini geri yükler: eklenti yönetimi için tpm, oturum ağaçlarını kaydetmek için tmux-resurrect ve otomatik anlık görüntüler için tmux-continuum.
Not. Çalışan ajan süreçleri korunmaz. Kurtarma işleminden sonra Claude Code'u manuel olarak yeniden başlatın.
zellij ipuçları — yeniden başlatma sonrasında geri yüklenecek bir şey yoktur
zellij -s collie-zellij # start the session
zellij attach --create-background collie-zellij # headless: start it detached
claude --resume # reconnects the agentZellij, tmux-resurrect eşdeğeri bir özellik sunmaz. Terminal bağlantısı kesildikten sonra sürdürülen oturumlar (EXITED - attach to resurrect) olarak görünür ve bağlanmak oturum komutlarının yeniden yürütülmesini tetikler; bu nedenle yeniden başlatma, oturumu yukarıdaki komutlardan biriyle sıfırdan başlatmak, içine ajanları yüklemek ve her birini claude --resume veya claude --continue ile yeniden bağlamak anlamına gelir.
Not. Bağlanmak yan etkilere yol açtığı için Collie oturumlara bağlanmaz veya onları yeniden canlandırmaz. Sonlandırılmış oturumlar ulaşılamaz olarak görünür ve kullanıcı arayüzü boş bir oturum listesi yerine bağlantı kesildi başlığı görüntüler.
Ajan sinyalleri (isteğe bağlı, Linux)
Bir beacon, bir bölmenin normalde genel bir kabuk olarak göründüğü tmux ve zellij üzerinde bir ajanın kendini Collie'ye tanıtma biçimidir.
$ collie hooks install claude
$ collie hooks status
would install: /home/you/collie/bin/collie beacon emit (this checkout)
/home/you/.claude/settings.json: installed (v1)Claude Code ayarlarındaki bir kanca, koşum takımı adını, oturumu ve hedef bölmeyi içeren bir dosya yazan collie beacon emit komutunu çalıştırır. Herdr bunu yerel olarak izler. Kurulum ayrıntıları Collie'yi bir çoklayıcıya yönlendirme içindedir; bu bölüm mekanizmayı açıklar.
Yukarıdaki yol, yerel kopyadaki bin/collie konumuna başvurur. İkili paket kurulumu, ~/.local/bin/collie konumuna veya bu ad bağlanmadığında yukarıda açıklandığı gibi belirtildiği üzere ~/.local/share/collie/current/bin/collie konumuna işaret eder. status komutu hiçbir yazma işlemi gerçekleştirmez.
hooks uninstall claude komutunu çalıştırmak yalnızca Collie tarafından eklenen girdileri kaldırır. Proje düzeyindeki dosyaları değil, genel Claude yapılandırmanızı değiştirir. Bu yalnızca Linux içindir: canlılık denetimi /proc öğesini inceler ve Collie diğer işletim sistemlerinde hiçbir sinyal yazmaz.
Claude başlangıçta hemen görünür hale gelir. Kanca SessionStart üzerinde tetiklendiğinden, girdi bekleyen açık bir bölme bir kabuk yerine boşta bekleyen bir ajan olarak görüntülenir.
Görünürlük işlem sonlandığında biter. Collie yayımlanan PID'yi her denetimde doğrular; böylece ajan sonlandığında bölme bilinmeyen bir durumda asılı kalmak yerine hemen standart bir kabuk olarak raporlanır.
Collie bunu yapmak için sinyal dosyasını silmez: dosya diskte kalır, collie doctor bunu beacons altında süresi doldu olarak raporlar ve sonraki kanca çağrısı dosyanın üzerine yazar.
Bu, panonun bölmeleri bash yerine ajan adına göre etiketlemesine olanak tanır. "size ihtiyacı var" durumunun bölmeleri engellenme durumuna göre sıralamasını sağlar ve uyarılar için gereken durumu sunar. Bölme geçmişi de günlük tarafından kullanılan oturum anahtarını sağlamak için sinyale dayanır.
Not. Sinyaller hiçbir kontrol kanalı sağlamaz. Bir sinyal yalnızca Collie'nin neyi görüntüleyeceğini ve sorgulayacağını belirler. Metin gönderemez, tuş vuruşları enjekte edemez, bölmeleri yeniden adlandıramaz, oturumları kapatamaz veya erişim kontrollerini atlayamaz. Tehdit modeli ve atlanan alanlar ADR 0024 içinde belgelenmiştir.
Bu sayfayı GitHub üzerinde düzenleyin