dscode یک هارنس کدنویسی برای macOS است که روی DeepSeek Harness ساخته شده و سه چیزی را می‌کند که بیشتر ایجنت‌های کدنویسی نمی‌کنند: یک شل پایدار که بین نوبت‌ها cwd و متغیرهای محیطی و کارهای پس‌زمینه را نگه می‌دارد، یک پل نشست که از ترمینال دوم می‌توانی به نشست در حال اجرا دستور بدهی و جواب بخوانی، و /btw که پرسش جانبی را در نشست فرزندِ فقط‌خواندنی می‌برد تا گفت‌وگوی اصلی را آلوده نکند. در این نوشته نصب واقعی، اولین اجرا، و هر سه قابلیت را با دستورهایی که از خودِ مخزن آمده نشان می‌دهم.

این ابزار دقیقاً چه می‌کند

بیشتر ایجنت‌های کدنویسی هر نوبت یک شل تازه بالا می‌آورند. یعنی cd که در نوبت اول زدی در نوبت دوم نیست، متغیری که ساختی نیست، و هر پس‌زمینه‌ای که رها کردی بین دو فراخوانی می‌میرد. dscode این را برعکس ساخته: یک runtime مشترک که TUI، خط فرمان و اسکریپت‌های خودت همه به آن وصل می‌شوند و هرکدام نشست خودشان را نمی‌سازند.

پایه‌اش DeepSeek Harness است و خودش را یک پروژه‌ی مستقلِ جامعه معرفی می‌کند، نه محصول رسمی. این را جدی بگیر: یعنی قرارداد پایداری ندارد و نسخه‌ها سریع عوض می‌شوند.

نصب: سه مسیر، و یک محدودیت که باید اول بدانید

این ابزار فقط روی macOS 14 به بالا کار می‌کند و Node.js و Git لازم دارد. اگر لینوکس داری، این پست به کارت نمی‌آید و بهتر است سراغ یکی از هارنس‌های چندسکویی بروی.

# مسیر خانگی: نصب‌کننده خودش نسخه‌ی تازه را پیدا می‌کند
# و درگیر sha256 را که گیت‌هاب منتشر می‌کند بررسی می‌کند
curl -fsSL https://raw.githubusercontent.com/qiz029/dscode/main/install.sh | sh

# اگر می‌خواهی دقیقاً روی یک نسخه‌ی مشخص بایستی
curl -fsSL https://raw.githubusercontent.com/qiz029/dscode/main/install.sh | sh -s -- 0.7.29

دو مسیر دیگر هم هست: Homebrew با brew tap qiz029/tap && brew trust qiz029/tap && brew install dscode که خودِ مخزن تصریح کرده هوم‌برو نسخه‌ی ۷ از tap نامعتبر را رد می‌کند و به همین دلیل trust لازم است؛ و نصب از سورس با npm ci --ignore-scripts که --ignore-scripts‌اش اختیاری نیست وگرنه مرحله‌ی setup اجرا نمی‌شود.

اولین اجرا و دستورهایی که واقعاً به کار می‌آیند

پس از نصب، dscode را بدون آرگومان اجرا کن تا TUI بالا بیاید. برای کار در پروژه‌ی دیگر، مسیرش را بده. حالت غیرتعاملی‌اش هم هست و همان است که در CI به کار می‌آید.

# اجرای یک نوبت کامل از اسکریپت: جواب روی stdout، ابزار و شناسه‌ی
# نشست روی stderr، و کد خروج بازتاب کیفیت همان نوبت
$ dscode exec "پیام خطای parser.ts را پیدا کن و اصلاحش کن"
$ git diff | dscode exec "این تغییر را بازبینی کن"

# نوشتن روی پروژه‌ی دیگر بدون تغییر مسیر جاری
$ dscode --cwd /path/to/project exec "تست‌ها را اجرا کن"

اگر خروجی را می‌خواهی به‌جای متن ساختاریافته بگیری، --json و --resume هم هست. آن دومی برای سناریویی است که یک نوبت قطع شده و می‌خواهی همان نشست را ادامه بدهی نه از صفر شروع کنی.

سه قابلیتی که این ابزار را از بقیه جدا می‌کند

پرسش جانبی بدون آلودگی گفت‌وگو

/btw پرسشت را می‌گیرد و در یک نشست فرزندِ فقط‌خواندنی می‌برد و جوابش را در یک پنل نشان می‌دهد. آنچه در گفت‌وگوی اصلی گفته می‌شود هرگز وارد پیام‌های اصلی نمی‌شود. وقتی در میانه‌ی کار هستی و یک سؤال مبهم داری، این تفاوت واقعی است: در غیر این صورت آن سؤال به پنجره‌ی متن اضافه می‌شود و تا آخر عمر نشست باقی می‌ماند.

# در TUI: چرا کش در نخستین نوبت سرد است؟
$ /btw why is the cache cold on the first turn?

پل نشست: از ترمینال دوم به نشست در حال اجرا

نشست‌های روی ماشین خودت برای همدیگر دیدنی‌اند. از ترمینال دوم می‌توانی فهرست نشست‌ها را بگیری، به یکی پیام بدهی، خروجی‌اش را بخوانی یا پیشرفت را دنبال کنی. نکته‌ی مهم معماری: خواننده هرگز قفل نوشتن نشست را نمی‌گیرد، پس خواندن و دنبال‌کردن، جریان کار اصلی را مسدود نمی‌کند.

$ dscode sessions                    # فهرست نشست‌های این ماشین
$ dscode read <session-id>           # خواندن خروجی
$ dscode watch <session-id>          # دنبال‌کردن پیشرفت

# واگذاری کار به نشست دیگر روی همین ماشین، با دستور صریح
$ dscode send --steer "تغییر parser.ts را بازبینی کن و جواب بده"

تأیید خودکار با بازبین مستقل

/permission auto-review تأییدها را به یک مدلِ جداِ فقط‌خواندنی می‌دهد تا بر اساس دستور خودت تصمیم بگیرد، نه یک جدول قواعد ثابت. /review-usage هم نشان می‌دهد چه چیزی مجاز شد و چقدر هزینه داشت.

محدودیت‌ها، پیش از اینکه به آن بیفتی

اگر قبلاً هزینه‌ی توکنِ نشست را حساب کرده‌ای، آن نوشته‌ی کانتکست توضیح می‌دهد چرا هر ابزاری که به پنجره‌ی متن اضافه شود گران است؛ /btw دقیقاً از همان سمت هزینه می‌کند و به همین دلیل در نشست فرزند اجرا می‌شود.

  • فقط macOS 14 به بالا. روی لینوکس یا ویندوز نصب نمی‌شود.
  • پروژه‌ی مستقلِ جامعه است، نه محصول رسمی دیپ‌سیک. API و رفتار می‌تواند عوض شود.
  • برای نوشتن روی یک پروژه‌ی دیگر --cwd لازم است؛ بدون آن روی پوشه‌ی خودش کار می‌کند.
  • تأیید خودکار مجوز تازه‌تری اضافه نمی‌کند؛ همان چیزی است که از قبل هست.

جمع‌بندی: اگر روی مک هستی و کاری می‌کنی که نیاز به جست‌وجوی جانبی در میانه‌ی یک کار طولانی دارد، /btw به‌تنهایی دلیل کافی است که امتحانش کنی. اگر چندسکویی بودن برایت مهم است، این را رد کن و سراغ چیزی شبیه Hermes یا Codex برو که روی لینوکس هم اجرا می‌شود.

منابع

  1. مخزن dscode در گیت‌هاب — شمارش ستاره، لایسنس و تاریخ آخرین push در لحظه‌ی خواندن: ۲۶ سپتامبر ۲۰۲۶
  2. صفحه‌ی بسته در npm
  3. DeepSeek Harness — هارنسی که این پروژه رویش ساخته شده
  4. صفحه‌ی انتشارها — برای دیدن نام فایل tarball و هش اعلام‌شده
  5. اسکریپت نصب — همان چیزی که خط فرمان بالا اجرا می‌کند
  6. مستند حالت exec — قرارداد stdout و stderr و کد خروج
  7. مستند تأیید خودکار — دامنه، هزینه و محدودیت‌ها