2026
Claude Code، Codex، Grok، OpenCode یا Cursor Agent را روی سرور اجرا کنید و از لپتاپ با یک ترمینال کامل راه دور هدایتشان کنید — نشستهای تعاملی در tmux که از راه WebSocket استریم میشوند.
agents دو باینری Go است. agentsd روی سروری اجرا میشود که ابزارهای
کدنویسی روی آن نصباند: هر ایجنت را در یک نشست tmux شروع میکند و یک API HTTP
بهعلاوهٔ یک WebSocket ارائه میدهد که یک ترمینال کامل را حمل میکند.
agentsctl روی لپتاپ شما اجرا میشود: یک TUI برای انتخاب نشست، یک CLI، و
یک کلاینت ترمینال خام برای آن WebSocket.
laptop server
┌─────────────┐ WebSocket ┌──────────────────────────┐
│ agentsctl │ ──────────────► │ agentsd │
│ · tui │ + REST API │ · tmux sessions │
│ · session │ │ · claude/grok/codex/… │
│ · status │ │ · full PTY bridge │
└─────────────┘ └──────────────────────────┘
ابزارهای تعاملی ایجنت یک ترمینال واقعی میخواهند: ورود با اشتراک، رابط کامل،
مدیریت کلیدها. حالتهای headless آنها (-p) رفتار متفاوتی دارند و ممکن است از
اعتبار API کم کنند. agents ایجنت را روی سرور در حالت تعاملی نگه میدارد و
ترمینال را برای شما استریم میکند. یک صف کار print هم وجود دارد، اما اختیاری
است و صریحاً با همین برچسب مشخص شده.
POST /v1/sessions با یک ایجنت و یک پوشهٔ کاری.workspace_root resolve و با یک فهرست مجاز بررسی میشود — .. رد
میشود و symlinkها پیش از تطبیق resolve میشوند.tmux new-session -d -s la-<id> -c <dir> -- <agent> را اجرا
میکند. یک پرامپت اول اختیاری با tmux send-keys تایپ میشود، نه بهصورت
پرچم CLI.agentsctl session open به /v1/sessions/{id}/pty وصل میشود. سرور یک PTY
با tmux attach باز میکند؛ فریمهای باینری ورودی/خروجی ترمینال را حمل
میکنند و فریمهای متنی JSON تغییر اندازه و pingهای نگهدارنده را.SSH همچنان یک جایگزین اختیاری است (session open --ssh).
# server: tmux + the CLIs you want
echo "AGENTSD_TOKEN=$(openssl rand -hex 32)" > ~/.config/agentsd/env
agentsd serve --config ~/.config/agentsd/config.toml
# laptop
agentsctl config init # set url + token
agentsctl # TUI session picker
agentsctl session start -a claude --open
اختیاری: Chromium با رابط گرافیکی برای Playwright از طریق Xvfb، تا ایجنتها بتوانند یک مرورگر قابلمشاهده را روی سرور هدایت کنند.
توکن در عمل دسترسی تعاملی راه دور به ابزارهای ایجنت روی آن میزبان است — مثل یک
شل با آن رفتار کنید. پیشفرضها و مستندات بهسمت 127.0.0.1 بهعلاوهٔ یک تونل
(Tailscale، Cloudflare Tunnel با Access) هدایت میکنند، نه یک پورت عمومی، و همهٔ
مسیرهای /v1/*، از جمله WebSocket ترمینال، توکن bearer میخواهند.
این یک پیشنمایش عمومی اولیه (v0.2.x) است، مناسب یک «سرور ایجنت» شخصی یا تیمی کوچک. چندمستأجری نیست: جداسازی چندکاربره، هویت فراتر از یک توکن مشترک، ضبط نشست و بستهٔ Homebrew در نقشهٔ راهاند و هنوز عرضه نشدهاند.
Go، tmux، WebSocket، Bubble Tea. با مجوز GNU AGPL v3.