Claude هم یکی از چت‌های شماست.

aipager سشن‌های Claude Code شما را به Telegram می‌آورد، کنار خانواده، دوست‌ها و هم‌تیمی‌هایتان. روی کامپیوتر خودتان اجرا می‌شود.

اجراهای امن خودشان انجام می‌شوند؛ پرخطرها اول اجازهٔ شما را لازم دارند.

یک سشن Claude Code که روی لپ‌تاپ شما آماده است، در مود خودکار، همان مودی که هر سشن جدید با آن شروع می‌شود.

$curl -fsSL aipager.run/install | sh

Linux و macOS · MIT · حدود یک دقیقه

مودهای اجازه

سه مود. از مود خودکار شروع می‌کنید.

هر سشن در یکی از این سه مود است؛ مود برای هر سشن جداگانه تنظیم می‌شود و هر وقت بخواهید با /mode عوض می‌شود. مود پرسش پیش از هر کاری می‌پرسد. مود خودکار، که هر سشن جدید با آن شروع می‌شود، می‌گذارد بررسی ایمنی خود Claude Code کارهای امن را اجرا کند و کارهای پرخطر را برای شما نگه دارد. مود دسترسی کامل همه چیز را بدون هیچ بررسی‌ای اجرا می‌کند. مود فقط روی درخواست‌های اجازهٔ خود Claude Code اثر دارد: در یک گروه، ابزاری که نقش یک عضو اجازهٔ استفاده از آن را ندارد باز هم رد می‌شود، مود هر چه باشد.

aipager
ربات
‏💬 مود پرسش‏/mode ask
اول سراغ فایل کوکی می‌روم.”
🔐 Read: فایل کوکی
src/auth/cookie.ts
‏🔐 ⁨api⁩ · اجازه می‌خواهد‏
‏✅ اجازه بده‏‏❌ رد کن‏‏🟢 همیشه اجازه بده‏‏⏹ توقف‏
‏⁨✅⁩ ⁨api⁩ · ⁨‏اجازه داده شد‏⁩ · ⁨Read: src/auth/cookie.ts⁩‏

هر اجرا منتظر شما می‌ماند، حتی خواندن یک فایل.

aipager
ربات
‏🤖 مود خودکار‏پیش‌فرض
تست قبل از اینکه کوکی سشن ست شود کلیک می‌کند.”
✅Read: src/auth/cookie.ts
✅Bash: pnpm test e2e/login --trace on
🔐 Bash: نگاه به جدیدترین سشن‌ها روی staging
psql $STAGING_URL -c 'select id, …'
‏🔐 ⁨api⁩ · اجازه می‌خواهد‏
‏✅ اجازه بده‏‏❌ رد کن‏‏🟢 همیشه اجازه بده‏‏⏹ توقف‏

خواندن فایل و اجرای تست خودشان انجام شدند. دستوری که روی staging اجرا می‌شود از نوع پرخطر است، پس متوقف شد.

aipager
ربات
‏🔓 مود دسترسی کامل‏/mode full
/mode full
‏✅ ⁨api⁩ الان در ⁨‏🔓 مود دسترسی کامل‏⁩ است.‏
تست e2e لاگین که گاهی رد می‌شود را درست کن
‏▸ ۴ ابزار اجرا شد‏
تست قبل از اینکه کوکی سشن ست شود کلیک می‌کند. ۵ ثانیه صبر می‌کند و امیدوار است.”
✅Edit: e2e/login.spec.ts
⏳Bash: pnpm test e2e/login --repeat 10
‏⁨⏳⁩ ⁨api⁩ · ⁨‏در حال کار‏⁩‏ · ۴:۰۲ · Read ×۲ · Bash ×۳ · Edit ×۱

نه بررسی، نه دکمه. فقط جواب، وقتی تمام شد.

  • ✅ اجازه بده · فقط همین یک اجرا
  • ❌ رد کن · Claude جلوی این اجرا را می‌گیرد
  • 🟢 همیشه اجازه بده · قاعده‌ای را که Claude پیشنهاد می‌دهد اضافه می‌کند، اگر پیشنهادی داشته باشد
  • ⏹ توقف · به جای جواب دادن، نوبت را قطع می‌کند
/mode

برای هر مود دیگر یک دکمه نشان می‌دهد؛ /mode ask و /mode auto و /mode full همان لحظه مود را عوض می‌کنند. سشن‌های جدید در مود خودکار شروع می‌شوند، مگر اینکه چت در /settings ← سشن‌های جدید چیز دیگری انتخاب کرده باشد.

مود پرسش ⇄ مود خودکار، در همان سشن

بدون ری‌استارت، حتی وقتی Claude در حال کار است: aipager در سشن Shift+Tab می‌زند و کارت می‌گوید در حال تغییر است، تا Claude Code مود جدید را تأیید کند.

مود دسترسی کامل ری‌استارت می‌خواهد

رفتن به مود دسترسی کامل یا بیرون آمدن از آن، سشن را ری‌استارت می‌کند و گفتگو می‌ماند. فقط یک ادمین می‌تواند سشنی را با این مود شروع کند یا به آن ببرد (یا خود شما، در چت خصوصی‌تان با ربات).

سؤال‌ها به هر حال می‌آیند

مود روی درخواست‌های اجازه اثر دارد، نه روی تصمیم‌ها: وقتی Claude چیزی از شما می‌پرسد، دکمه‌هایش در هر مودی به چت شما می‌آیند.

کجا کار می‌کند

سه چت. باقی‌اش زندگی خودتان است.

  • aipagerربات
    ⏳ api · در حال کار · ۳:۱۴ · Read ×۲ · Bash ×۲
    چت شما با Claude

    یک چت برای همهٔ سشن‌ها. برای هر نوبت یک کارت زنده که خودش را آپدیت می‌کند، درخواست‌های اجازه‌ای که با یک لمس جواب می‌دهید، و یک نوار سنجاق‌شده که می‌گوید چه چیزی منتظر شماست. پیام ساده به همان سشنی ارسال می‌شود که نوار اسمش را می‌برد؛ با /web پیام بعدی به سشن دیگری ارسال می‌شود و گفتگو همان‌جا ادامه پیدا می‌کند.

    /status/new/mode/stop/app/<session> <prompt>
  • BT
    backend-teamگروه · استفادهٔ تیمی
    Sara: @aipagerbot /web تست e2e لاگین را روی staging اجرا کن
    گروه تیم شما

    ربات را در یک گروه بگذارید تا هر کسی که اجازهٔ استفاده از ربات را دارد بتواند صدایش بزند. هر پیام با نقش فرستنده‌اش اجرا می‌شود؛ ابزاری که آن نقش اجازهٔ استفاده از آن را ندارد پیش از اجرا رد می‌شود، و هر تصمیم با نام کسی که دکمه را زده در لاگ ثبت می‌شود.

    owneradminuserread_only
  • J
    Jimچت خودش با ربات
    🔐 web · اجازه می‌خواهد
    یک نفر دیگر، در چت خودش

    چت خصوصی یک هم‌تیمی با ربات را اضافه کنید تا با سشن‌های خودش کار کند، با نقش خودش و پوشهٔ root خودش: نوبت‌های Claude او داخل همان پوشه شروع می‌شوند و بیرون از آن چیزی از پوشهٔ خانهٔ شما نمی‌خوانند. کسی که فقط باید تماشا کند، در گروه شما read_only می‌گیرد.

    پوشهٔ root اعضا~/aipager-users/<label>read_only/new

چهار نقش، و برای هر نقش یک قاعدهٔ ابزار.

نقشی که ملاک است، نقش شما در همان چتی است که در آن کار می‌کنید، و ابزاری که یک نقش اجازهٔ استفاده از آن را ندارد پیش از اجرا رد می‌شود، نه اینکه دربارهٔ آن پرسیده شود. هیچ چیز در Telegram یا Mini App نمی‌تواند فهرست افراد را عوض کند: فقط aipager config، روی خود کامپیوتر.

می‌تواندowneradminuserread_only
پیام فرستادن به یک سشن✓✓✓✕
اجازه دادن، رد کردن، جواب به سؤال‌های Claude✓✓✓✕
Bash، و هر چیز دیگری که کد اجرا می‌کند✓✓✕✕
مود دسترسی کامل، /settings گروه، /update✓✓چت خودش✕
سشن‌هایشان کجا می‌توانند کار کنندهر جاهر جاپوشهٔ rootپوشهٔ root
خواندن فایل‌های رمز (~/.ssh و …)✓✓✕✕
همه چیز دربارهٔ استفادهٔ تیمی ←
استفادهٔ روزمره

مثل یک چت از آن استفاده کنید.

یک کنسول با ظاهر چت نیست: هر کاری که همین حالا در Telegram می‌کنید، اینجا هم کار می‌کند. سر راه خانه برایش حرف بزنید، اسکرین‌شات را برایش بفرستید، فکر بعدی را بفرستید قبل از اینکه قبلی تمام شود.

  • 🎙️
    به جای تایپ، بگویید

    یک ویس بفرستید: روی کامپیوتر خودتان به متن تبدیل می‌شود (هیچ‌وقت روی سرور کس دیگری)، متنش برایتان برمی‌گردد تا ببینید چه شنیده، و در سشن تایپ می‌شود، انگار خودتان نوشته باشید.

    ۰:۰۷
    🎙️ شنیدم: تست e2e لاگین که گاهی رد می‌شود را درست کن
  • 📎
    اسکرین‌شات باگ

    عکس‌ها و فایل‌ها در پوشه‌ای روی کامپیوتر خودتان ذخیره می‌شوند و مسیرشان به Claude داده می‌شود، با کپشن شما به‌عنوان پیام، یا اگر کپشنی نباشد با «check this: …». چندتا را با هم بفرستید، به‌شکل یک پیام ارسال می‌شوند.

  • 📤
    برایتان فایل هم می‌فرستد

    با حرف خودتان بخواهید، «اسکرین‌شات را برام بفرست»، و فایل درست بعد از جواب در چت همان سشن می‌رسد: عکس‌ها به‌شکل عکس، ویدیو و صدا همان‌طور که هستند، بقیه به‌شکل فایل، و چندتا با هم به‌شکل یک آلبوم. ولی تنظیمات aipager، اطلاعات ورود Claude و کلیدهای شما هیچ‌وقت فرستاده نمی‌شوند: پیش از ارسال رد می‌شوند.

    اسکرین‌شات را برام بفرست
  • 👀
    پیام بعدی را همین حالا بفرستید

    پیام شما همان لحظه که می‌فرستید به Claude می‌رسد، حتی وسط یک نوبت: 👀 تا وقتی در صف خود Claude است، 👍 وقتی Claude برش داشت. دکمهٔ «⚡ همین حالا بفرست» پیام را بدون صبر کردن تا آخر قدم به Claude می‌دهد.

  • ⏸
    هیچ‌وقت به جای جواب خوانده نمی‌شود

    پیامی که وقتی یک درخواست اجازه باز است می‌فرستید نگه داشته می‌شود، قاطی آن درخواست نمی‌شود، و همان لحظه که جواب دادید به سشن ارسال می‌شود.

  • 🤖
    ایجنت‌ها و دستورهای پس‌زمینه، زیر نظر

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

  • 🔔
    خودش اول به شما می‌گوید

    هشدار کانتکست، کامپکت شدن گفتگو، سشنی که بسته شده یا ساکت مانده، نوبتی که زیادی طول کشیده: چت خودش می‌گوید، بدون اینکه بروید سراغش.

  • ⌨️
    دکمه‌ها از قبل آنجا هستند

    زیر کادر پیام یک کیبورد هست: برای هر سشن باز یک دکمه، بعد «وضعیت»، «توقف» و «جدید»، بعد «قالب‌ها» برای پیام‌هایی که مدام دوباره تایپ می‌کنید و «فرمان‌ها» برای آن‌هایی که خود Claude Code انجام می‌دهد.

  • 📋
    /status، کل چت یک‌جا

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

Mini App

یک داشبورد، همچنان داخل Telegram.

/app همهٔ سشن‌ها را با هم باز می‌کند: برای هر کدام یک کاشی، با حلقهٔ کانتکست، پوشه، مدل و هزینه‌ای که کرده. جواب دادن همچنان در چت است، و اپ برای نگاه کردن به همهٔ آن‌ها با هم است و برای کارهایی که در چت دست‌وپاگیرند، مثل خواندن یک diff یا عوض کردن یک تنظیم.

aipager⋮
aipager
@aipagerbot · v1.3.8 · ‏۱۴۱ دقیقه روشن‏
‏۱ منتظر شما‏، ‏۲ در حال کار‏، ‏۱ آماده‏
‏⁨$۴٫۱۹⁩ هزینه‏ · ‏۱۲ بسته‌شده‏
‏منتظر شما‏
@aipagerbot
همهٔ سشن‌ها در یک صفحه

برای هر کدام یک کاشی، با حلقهٔ کانتکست، اینکه مال کیست، مدل و هزینه‌ای که کرده، و بالای همه یک خط که می‌گوید چت چه حالی دارد: چه چیزی در حال کار است، چه چیزی آماده، امروز چقدر خرج شده، چندتا بسته شده. با دکمهٔ + یک سشن دیگر شروع می‌شود: یک اسم، یکی از پوشه‌هایی که از قبل دارید، یک مدل.

هر چه منتظر شماست، اول

سشنی که منتظر یک درخواست اجازه یا یک سؤال است، با چیزی که می‌پرسد بالای همه می‌نشیند. «جواب در چت» همان درخواست را با همهٔ دکمه‌هایش به ته چت برمی‌گرداند تا آنجا جوابش را بدهید.

برای هر سشن یک صفحه

خط وضعیت، «در حال کار، ۳:۱۲» یا «آماده، آخرین فعالیت ۵ دقیقه پیش»، و یک لمس برای توقف یا ادامه. زیرش آخرین ابزارهایی که اجرا شده، آخرین جواب، کنترل مدل، فایل‌هایی که این نوبت عوض کرده به‌شکل diff، و تنظیمات خود همان سشن.

میزبانش خود aipager است

پیش‌فرض روشن است، هر درخواست با امضای خود Telegram سنجیده می‌شود، و صفحه هیچ چیزی از جای دیگری لود نمی‌کند: نه فونتی، نه اسکریپتی. با aipager miniapp disable خاموش می‌شود.

اپ چه کارهایی می‌کند ←
۱۵ زبان

به زبان خودتان، حتی عددهایش.

فقط متن‌های خود aipager عوض می‌شوند: کارت‌ها، درخواست‌های اجازه، دکمه‌ها، نوار سنجاق‌شده، /status، Mini App و مستندات. سشن‌هایتان عوض نمی‌شوند: Claude به همان زبانی جواب می‌دهد که برایش می‌نویسید، و چیزی که aipager برای Claude می‌فرستد دست‌نخورده می‌ماند. با /language یکی را انتخاب کنید، یا بگذارید از زبان Telegram خودتان پیروی کند.

راست‌به‌چپ، آن‌طور که باید

فارسی و عربی راست‌به‌چپ خوانده می‌شوند، با عددهای فارسی (۰-۹) یا عربی (٠-٩) و جداکننده‌های خودشان، هم در Telegram و هم در Mini App. اسم سشن‌ها، مسیرها، فرمان‌ها و کد جهت خودشان را نگه می‌دارند.

نوشته شده، نه ترجمه‌شده

هر زبان همان‌طور نوشته شده که آدم‌هایی که با آن زبان از اپ استفاده می‌کنند واقعاً حرف می‌زنند، با همان کلمه‌های قرضی، و با شکل‌های جمع خود آن زبان (عربی شش تا دارد).

چت شما، زبان شما

یک چت خصوصی می‌تواند از زبان Telegram خودتان پیروی کند. یک گروه یک زبان دارد که ادمین تعیینش می‌کند، و پیامی که بعد از زدن یک دکمه بالا می‌آید به زبان خود همان کسی است که زده.

مستندات هم همین‌طور

README و همهٔ صفحه‌های داخل پوشهٔ docs ترجمه شده‌اند. وقتی ترجمه و صفحهٔ انگلیسی با هم فرق داشتند، صفحهٔ انگلیسی درست است.

aipager
ربات
فارسی
پیام سنجاق‌شده
‏⏳ ⁨api⁩ منتظر شماست‏ - ‏⁨Bash: pnpm test e2e/login⁩‏
‏🔐 ⁨api⁩ · اجازه می‌خواهد‏
pnpm test e2e/login --trace on
‏✅ اجازه بده‏‏❌ رد کن‏‏🟢 همیشه اجازه بده‏‏⏹ توقف‏
‏⁨✅⁩ ⁨api⁩ · ⁨‏اجازه داده شد‏⁩ · ⁨Bash: pnpm test e2e/login⁩‏
‏⁨⏳⁩ ⁨api⁩ · ⁨‏در حال تأمل‏⁩‏ · ۳:۱۴ · Read ×۲ · Bash ×۱
‏✅ کار ۲ ایجنت تمام شد (⁨۶:۱۲⁩)‏
‏🌐 زبان: ⁨فارسی⁩‏
زیر چت

ترمینال همچنان مرجع اصلی است.

Claude Code در یک ترمینال واقعی اجرا می‌شود، داخل dtach، تا کسی مجبور نباشد پنجره‌ای را باز نگه دارد. هر قدم یک هوک را اجرا می‌کند که از طریق یک سوکت محلی یک بسته به aipager می‌فرستد، و aipager پیامی را در چت شما آپدیت می‌کند. جواب‌های شما از همان راه برمی‌گردند: یک تصمیم برای هوکی که اجرا را نگه داشته، یا تایپ مستقیم در سشن.

  1. Claude Code
    داخل dtach، بدون نیاز به پنجره
  2. هوک
    در هر قدم اجرا می‌شود
  3. aipager
    یک پروسه، با کاربر خودتان
  4. Telegram
    توکن ربات خودتان
  5. چت‌های شما
    چت خصوصی‌تان، گروه تیم‌تان
هر وقت خواستید، خودتان پشتش بنشینید

aipager session api از هر ترمینالی به سشن در حال اجرا وصل می‌شود. آنجا تایپ کنید یا در چت تایپ کنید: همان یک سشن است. پنجره را ببندید، کارش ادامه دارد، و این اتصال حتی بعد از ری‌استارت سشن هم سر جایش می‌ماند.

هیچ‌وقت صفحهٔ شما را نمی‌خواند

aipager در سشن تایپ می‌کند و به رویدادهای خود Claude Code گوش می‌دهد. چیزی که در چت می‌بینید از هوک‌ها و از گفتگوی ذخیره‌شده می‌آید، نه از خواندن صفحهٔ ترمینال.

هیچ چیزی منتظر چت نمی‌ماند

هوک یک بسته می‌فرستد و برمی‌گردد، حدود ۲۰ میلی‌ثانیه از وقت Claude Code. اگر aipager در حال گوش دادن نباشد، آن رویداد از دست می‌رود و Claude به کارش ادامه می‌دهد؛ aipager بعداً از روی فایل‌های خود سشن چیزهایی را که از دست داده جبران می‌کند.

۱۶ هوک، به‌علاوهٔ خط وضعیتی که مدل و کانتکست و هزینه را از آن می‌خواند. aipager به همهٔ آن‌ها وصل است.
UserPromptSubmitPreToolUsePermissionRequestPostToolUsePostToolUseFailureNotificationStopStopFailureSubagentStartSubagentStopPreCompactPostCompactMessageDisplayPreModelSwitchSessionStartSessionEndstatusline
امنیت

هیچ‌کس وسط نیست.

aipager هیچ‌وقت با Anthropic حرف نمی‌زند. تنها چیزی که این کار را می‌کند خود Claude Code است، با لاگین خودتان، روی کامپیوتر خودتان. aipager آن را در یک ترمینال شروع می‌کند و به هوک‌هایی که Claude Code منتشر می‌کند گوش می‌دهد. نه آدرسی که کسی مهندسی معکوس کرده باشد، نه پراکسی، نه حسابی جز حساب خودتان: همان سشنی که از گوشی با آن کار می‌کنید، همانی است که پشت کیبورد با آن کار می‌کردید.

۰۱
سرور aipager وجود ندارد.

aipager با توکن ربات خودتان با Telegram Bot API حرف می‌زند. نه حساب aipager هست، نه سرویس aipager، و هیچ کامپیوتر دیگری بین گوشی شما و کامپیوترتان نیست.

۰۲
فقط به چت‌های خودتان جواب می‌دهد.

aipager فقط در چت‌هایی جواب می‌دهد که در تنظیمات شما آمده‌اند. غریبه‌ای که ربات را پیدا کند فقط یک خط جواب می‌گیرد که این ربات برای گفتگو با او تنظیم نشده؛ هیچ چیزی که بفرستد به سشنی نمی‌رسد.

۰۳
هیچ پورت بازی نیست.

فقط روی loopback گوش می‌دهد. Mini App از یک تونل Cloudflare بیرون می‌رود که هر درخواستش باید امضای Telegram را داشته باشد، و با aipager miniapp disable خاموش می‌شود.

۰۴
توکن خودتان، فایل خودتان.

توکن ربات و آیدی چت‌ها در ~/.config/aipager/aipager.yaml با سطح دسترسی 600 می‌مانند. به لاگ aipager نمی‌رسند، و هر جا که ممکن باشد سر از لاگ دربیاورند پنهان می‌شوند.

۰۵
هیچ‌وقت دسترسی بالاتر نمی‌گیرد.

نه sudo، نه setuid. هر چه می‌نویسد زیر پوشهٔ خانهٔ شما، /tmp یا پوشهٔ سوکت خودش است، و هر پروسه‌ای که شروع می‌کند (claude، dtach، نصب‌کننده‌ها) با کاربر خود شما اجرا می‌شود.

۰۶
تصمیم همچنان با Claude Code است.

settings.json خودتان می‌گوید برای چه چیزی باید پرسیده شود. aipager فقط سؤال را می‌رساند؛ هیچ‌وقت تصمیم نمی‌گیرد چه چیزی اجرا شود، و دکمه‌ای که از یک نوبت تمام‌شده مانده کاری انجام نمی‌دهد و به کاری که الان در جریان است دست نمی‌زند.

۰۷
دسترسی روی خود کامپیوتر داده می‌شود.

اعضا و نقش‌ها فقط با aipager config، روی خود کامپیوتر، عوض می‌شوند. نه در Telegram و نه در Mini App نمی‌شود کسی را اضافه کرد یا دسترسی نقشی را بیشتر کرد.

۰۸
هر جوابی ثبت می‌شود.

هر «اجازه بده»، هر «رد کن» و هر جواب به انتهای ~/.claude/aipager-audit.jsonl اضافه می‌شود، و در گروه با نام کسی که زده.

مدل امنیتی ←
نصب

۴ خط. در پیام‌های ذخیره‌شده نگهشان دارید.

روی هر خط بزنید تا کپی شود. دو چیز را از قبل لازم دارید: یک ربات مال خودتان از @BotFather (در آن Start را بزنید)، و Claude Code که روی این کامپیوتر لاگین باشد. ویزارد خط دوم بقیه را از شما می‌پرسد.

یا بسپاریدش به همان ایجنتی که دارید.

توکن ربات را در فایلی بگذارید که ایجنت هیچ‌وقت لازم نباشد بخواندش، بعد این را به Claude Code بدهید:

Install aipager for me by following https://aipager.run/agent.md. My Telegram bot token is in ~/.config/aipager/bot-token and my Telegram user id is <your id>.

راهنمایی که دنبال می‌کند ←

پکیج‌منیجر خودتان را ترجیح می‌دهید؟ uv، pipx، Homebrew، Docker، Nix، AUR و Snap. همهٔ راه‌های نصب ←

پیام‌های ذخیره‌شده
۴ پیام
سؤالات متداول

بپرسید.

aipager
ربات
با اپ‌های موبایل Claude چه فرقی دارد؟
اپ‌های Claude با دستیار Anthropic حرف می‌زنند که روی سرور خود Anthropic اجرا می‌شود. aipager همان سشن Claude Code را نشان می‌دهد که روی کامپیوتر خودتان اجرا می‌شود: ریپوی خودتان، ابزارهای خودتان، محیط خودتان.

Claude را به چت‌هایتان اضافه کنید.

بعد ترمینال را ببندید و بروید از شب‌تان لذت ببرید.

$curl -fsSL aipager.run/install | sh