Claude هم یکی از چتهای شماست.
aipager سشنهای Claude Code شما را به Telegram میآورد، کنار خانواده، دوستها و همتیمیهایتان. روی کامپیوتر خودتان اجرا میشود.
یک سشن Claude Code که روی لپتاپ شما آماده است، در مود خودکار، همان مودی که هر سشن جدید با آن شروع میشود.
curl -fsSL aipager.run/install | shLinux و macOS · MIT · حدود یک دقیقه
سه مود. از مود خودکار شروع میکنید.
هر سشن در یکی از این سه مود است؛ مود برای هر سشن جداگانه تنظیم میشود و هر وقت بخواهید با /mode عوض میشود. مود پرسش پیش از هر کاری میپرسد. مود خودکار، که هر سشن جدید با آن شروع میشود، میگذارد بررسی ایمنی خود Claude Code کارهای امن را اجرا کند و کارهای پرخطر را برای شما نگه دارد. مود دسترسی کامل همه چیز را بدون هیچ بررسیای اجرا میکند. مود فقط روی درخواستهای اجازهٔ خود Claude Code اثر دارد: در یک گروه، ابزاری که نقش یک عضو اجازهٔ استفاده از آن را ندارد باز هم رد میشود، مود هر چه باشد.
- ✅ اجازه بده · فقط همین یک اجرا
- ❌ رد کن · Claude جلوی این اجرا را میگیرد
- 🟢 همیشه اجازه بده · قاعدهای را که Claude پیشنهاد میدهد اضافه میکند، اگر پیشنهادی داشته باشد
- ⏹ توقف · به جای جواب دادن، نوبت را قطع میکند
برای هر مود دیگر یک دکمه نشان میدهد؛ /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> - BTbackend-teamگروه · استفادهٔ تیمیSara: @aipagerbot /web تست e2e لاگین را روی staging اجرا کنگروه تیم شما
ربات را در یک گروه بگذارید تا هر کسی که اجازهٔ استفاده از ربات را دارد بتواند صدایش بزند. هر پیام با نقش فرستندهاش اجرا میشود؛ ابزاری که آن نقش اجازهٔ استفاده از آن را ندارد پیش از اجرا رد میشود، و هر تصمیم با نام کسی که دکمه را زده در لاگ ثبت میشود.
owneradminuserread_only - JJimچت خودش با ربات🔐 web · اجازه میخواهدیک نفر دیگر، در چت خودش
چت خصوصی یک همتیمی با ربات را اضافه کنید تا با سشنهای خودش کار کند، با نقش خودش و پوشهٔ root خودش: نوبتهای Claude او داخل همان پوشه شروع میشوند و بیرون از آن چیزی از پوشهٔ خانهٔ شما نمیخوانند. کسی که فقط باید تماشا کند، در گروه شما read_only میگیرد.
پوشهٔ root اعضا~/aipager-users/<label>read_only/new
چهار نقش، و برای هر نقش یک قاعدهٔ ابزار.
نقشی که ملاک است، نقش شما در همان چتی است که در آن کار میکنید، و ابزاری که یک نقش اجازهٔ استفاده از آن را ندارد پیش از اجرا رد میشود، نه اینکه دربارهٔ آن پرسیده شود. هیچ چیز در Telegram یا Mini App نمیتواند فهرست افراد را عوض کند: فقط aipager config، روی خود کامپیوتر.
| میتواند | owner | admin | user | read_only |
|---|---|---|---|---|
| پیام فرستادن به یک سشن | ✓ | ✓ | ✓ | ✕ |
| اجازه دادن، رد کردن، جواب به سؤالهای Claude | ✓ | ✓ | ✓ | ✕ |
| Bash، و هر چیز دیگری که کد اجرا میکند | ✓ | ✓ | ✕ | ✕ |
| مود دسترسی کامل، /settings گروه، /update | ✓ | ✓ | چت خودش | ✕ |
| سشنهایشان کجا میتوانند کار کنند | هر جا | هر جا | پوشهٔ root | پوشهٔ root |
| خواندن فایلهای رمز (~/.ssh و …) | ✓ | ✓ | ✕ | ✕ |
مثل یک چت از آن استفاده کنید.
یک کنسول با ظاهر چت نیست: هر کاری که همین حالا در Telegram میکنید، اینجا هم کار میکند. سر راه خانه برایش حرف بزنید، اسکرینشات را برایش بفرستید، فکر بعدی را بفرستید قبل از اینکه قبلی تمام شود.
- 🎙️به جای تایپ، بگویید
یک ویس بفرستید: روی کامپیوتر خودتان به متن تبدیل میشود (هیچوقت روی سرور کس دیگری)، متنش برایتان برمیگردد تا ببینید چه شنیده، و در سشن تایپ میشود، انگار خودتان نوشته باشید.
۰:۰۷🎙️ شنیدم: تست e2e لاگین که گاهی رد میشود را درست کن - 📎اسکرینشات باگ
عکسها و فایلها در پوشهای روی کامپیوتر خودتان ذخیره میشوند و مسیرشان به Claude داده میشود، با کپشن شما بهعنوان پیام، یا اگر کپشنی نباشد با «check this: …». چندتا را با هم بفرستید، بهشکل یک پیام ارسال میشوند.
- 📤برایتان فایل هم میفرستد
با حرف خودتان بخواهید، «اسکرینشات را برام بفرست»، و فایل درست بعد از جواب در چت همان سشن میرسد: عکسها بهشکل عکس، ویدیو و صدا همانطور که هستند، بقیه بهشکل فایل، و چندتا با هم بهشکل یک آلبوم. ولی تنظیمات aipager، اطلاعات ورود Claude و کلیدهای شما هیچوقت فرستاده نمیشوند: پیش از ارسال رد میشوند.
اسکرینشات را برام بفرست - 👀پیام بعدی را همین حالا بفرستید
پیام شما همان لحظه که میفرستید به Claude میرسد، حتی وسط یک نوبت: 👀 تا وقتی در صف خود Claude است، 👍 وقتی Claude برش داشت. دکمهٔ «⚡ همین حالا بفرست» پیام را بدون صبر کردن تا آخر قدم به Claude میدهد.
- ⏸هیچوقت به جای جواب خوانده نمیشود
پیامی که وقتی یک درخواست اجازه باز است میفرستید نگه داشته میشود، قاطی آن درخواست نمیشود، و همان لحظه که جواب دادید به سشن ارسال میشود.
- 🤖ایجنتها و دستورهای پسزمینه، زیر نظر
هر ایجنت پسزمینهای که Claude شروع میکند روی کارت ردیف خودش را دارد، با کاری که میکند، و دستور پسزمینهای که هنوز در حال اجراست، تا وقتی تمام شود زمان خودش را نشان میدهد.
- 🔔خودش اول به شما میگوید
هشدار کانتکست، کامپکت شدن گفتگو، سشنی که بسته شده یا ساکت مانده، نوبتی که زیادی طول کشیده: چت خودش میگوید، بدون اینکه بروید سراغش.
- ⌨️دکمهها از قبل آنجا هستند
زیر کادر پیام یک کیبورد هست: برای هر سشن باز یک دکمه، بعد «وضعیت»، «توقف» و «جدید»، بعد «قالبها» برای پیامهایی که مدام دوباره تایپ میکنید و «فرمانها» برای آنهایی که خود Claude Code انجام میدهد.
- 📋/status، کل چت یکجا
همهٔ سشنها در یک فهرست که میشود رویش کار کرد: هر کدام چه میکند، مدلش، کانتکست باقیمانده، چقدر خرج کرده، چه چیزی پشتش در صف است، با «توقف»، «جواب بده» و بقیهٔ منو روی هر کدام.
یک داشبورد، همچنان داخل Telegram.
/app همهٔ سشنها را با هم باز میکند: برای هر کدام یک کاشی، با حلقهٔ کانتکست، پوشه، مدل و هزینهای که کرده. جواب دادن همچنان در چت است، و اپ برای نگاه کردن به همهٔ آنها با هم است و برای کارهایی که در چت دستوپاگیرند، مثل خواندن یک diff یا عوض کردن یک تنظیم.
برای هر کدام یک کاشی، با حلقهٔ کانتکست، اینکه مال کیست، مدل و هزینهای که کرده، و بالای همه یک خط که میگوید چت چه حالی دارد: چه چیزی در حال کار است، چه چیزی آماده، امروز چقدر خرج شده، چندتا بسته شده. با دکمهٔ + یک سشن دیگر شروع میشود: یک اسم، یکی از پوشههایی که از قبل دارید، یک مدل.
سشنی که منتظر یک درخواست اجازه یا یک سؤال است، با چیزی که میپرسد بالای همه مینشیند. «جواب در چت» همان درخواست را با همهٔ دکمههایش به ته چت برمیگرداند تا آنجا جوابش را بدهید.
خط وضعیت، «در حال کار، ۳:۱۲» یا «آماده، آخرین فعالیت ۵ دقیقه پیش»، و یک لمس برای توقف یا ادامه. زیرش آخرین ابزارهایی که اجرا شده، آخرین جواب، کنترل مدل، فایلهایی که این نوبت عوض کرده بهشکل diff، و تنظیمات خود همان سشن.
پیشفرض روشن است، هر درخواست با امضای خود Telegram سنجیده میشود، و صفحه هیچ چیزی از جای دیگری لود نمیکند: نه فونتی، نه اسکریپتی. با aipager miniapp disable خاموش میشود.
به زبان خودتان، حتی عددهایش.
فقط متنهای خود aipager عوض میشوند: کارتها، درخواستهای اجازه، دکمهها، نوار سنجاقشده، /status، Mini App و مستندات. سشنهایتان عوض نمیشوند: Claude به همان زبانی جواب میدهد که برایش مینویسید، و چیزی که aipager برای Claude میفرستد دستنخورده میماند. با /language یکی را انتخاب کنید، یا بگذارید از زبان Telegram خودتان پیروی کند.
فارسی و عربی راستبهچپ خوانده میشوند، با عددهای فارسی (۰-۹) یا عربی (٠-٩) و جداکنندههای خودشان، هم در Telegram و هم در Mini App. اسم سشنها، مسیرها، فرمانها و کد جهت خودشان را نگه میدارند.
هر زبان همانطور نوشته شده که آدمهایی که با آن زبان از اپ استفاده میکنند واقعاً حرف میزنند، با همان کلمههای قرضی، و با شکلهای جمع خود آن زبان (عربی شش تا دارد).
یک چت خصوصی میتواند از زبان Telegram خودتان پیروی کند. یک گروه یک زبان دارد که ادمین تعیینش میکند، و پیامی که بعد از زدن یک دکمه بالا میآید به زبان خود همان کسی است که زده.
README و همهٔ صفحههای داخل پوشهٔ docs ترجمه شدهاند. وقتی ترجمه و صفحهٔ انگلیسی با هم فرق داشتند، صفحهٔ انگلیسی درست است.
pnpm test e2e/login --trace onترمینال همچنان مرجع اصلی است.
Claude Code در یک ترمینال واقعی اجرا میشود، داخل dtach، تا کسی مجبور نباشد پنجرهای را باز نگه دارد. هر قدم یک هوک را اجرا میکند که از طریق یک سوکت محلی یک بسته به aipager میفرستد، و aipager پیامی را در چت شما آپدیت میکند. جوابهای شما از همان راه برمیگردند: یک تصمیم برای هوکی که اجرا را نگه داشته، یا تایپ مستقیم در سشن.
- Claude Codeداخل dtach، بدون نیاز به پنجره
- هوکدر هر قدم اجرا میشود
- aipagerیک پروسه، با کاربر خودتان
- Telegramتوکن ربات خودتان
- چتهای شماچت خصوصیتان، گروه تیمتان
aipager session api از هر ترمینالی به سشن در حال اجرا وصل میشود. آنجا تایپ کنید یا در چت تایپ کنید: همان یک سشن است. پنجره را ببندید، کارش ادامه دارد، و این اتصال حتی بعد از ریاستارت سشن هم سر جایش میماند.
aipager در سشن تایپ میکند و به رویدادهای خود Claude Code گوش میدهد. چیزی که در چت میبینید از هوکها و از گفتگوی ذخیرهشده میآید، نه از خواندن صفحهٔ ترمینال.
هوک یک بسته میفرستد و برمیگردد، حدود ۲۰ میلیثانیه از وقت Claude Code. اگر aipager در حال گوش دادن نباشد، آن رویداد از دست میرود و Claude به کارش ادامه میدهد؛ aipager بعداً از روی فایلهای خود سشن چیزهایی را که از دست داده جبران میکند.
هیچکس وسط نیست.
aipager هیچوقت با Anthropic حرف نمیزند. تنها چیزی که این کار را میکند خود Claude Code است، با لاگین خودتان، روی کامپیوتر خودتان. aipager آن را در یک ترمینال شروع میکند و به هوکهایی که Claude Code منتشر میکند گوش میدهد. نه آدرسی که کسی مهندسی معکوس کرده باشد، نه پراکسی، نه حسابی جز حساب خودتان: همان سشنی که از گوشی با آن کار میکنید، همانی است که پشت کیبورد با آن کار میکردید.
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، نصبکنندهها) با کاربر خود شما اجرا میشود.
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. همهٔ راههای نصب ←
بپرسید.
Claude را به چتهایتان اضافه کنید.
بعد ترمینال را ببندید و بروید از شبتان لذت ببرید.