
आपके फ़ोन और पीसी के लिए झटपट और सरल web/mcp टर्मिनल टनलिंग
<p align="center">
<a href="https://github.com/porterminal/porterminal">
<img src="https://raw.githubusercontent.com/porterminal/porterminal/master/assets/header.png?v=9" alt="PTN — Portable Terminal with decorative QR artwork." width="800">
</a>
</p>
<h1 align="center">अपने एजेंट को कोई भी कंप्यूटर दें</h1>
<p align="center">
एक कमांड। एक URL। आपके एजेंट के लिए एक असली टर्मिनल, आपके लिए एक लाइव व्यू।
</p>
<p align="center">
<a href="https://pypi.org/project/ptn/"><img src="https://img.shields.io/pypi/v/ptn?style=flat-square&logo=pypi&logoColor=white&label=PyPI" alt="PyPI"></a>
<a href="https://pypi.org/project/ptn/"><img src="https://img.shields.io/pypi/pyversions/ptn?style=flat-square&logo=python&logoColor=white" alt="Python"></a>
<a href="https://github.com/porterminal/porterminal/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/porterminal/porterminal/ci.yml?branch=master&style=flat-square&logo=github&label=CI" alt="CI"></a>
<a href="https://github.com/porterminal/porterminal/blob/master/LICENSE"><img src="https://img.shields.io/github/license/porterminal/porterminal?style=flat-square" alt="License"></a>
</p>
Porterminal को Windows, macOS या Linux कंप्यूटर पर चलाएँ और जनरेट किया गया
लिंक अपने AI एजेंट को दें। इसे उस मशीन पर मौजूद फ़ाइलों, टूल्स और प्रोजेक्ट्स के साथ एक असली शेल मिलता है। एजेंट को काम करते हुए देखने और उसके टर्मिनल में टाइप करने के लिए वही लिंक अपने फ़ोन पर या किसी भी ब्राउज़र में खोलें।
## यहाँ से शुरू करें
जिस कंप्यूटर को आप अपने एजेंट को देना चाहते हैं, उस पर:
```bash
uvx ptn
```
1. **एजेंट को लिंक दें।** URL और कनेक्शन निर्देशों को कॉपी करने के लिए स्थानीय Porterminal विंडो में **`c`** दबाएँ। उन्हें किसी कार्य के साथ अपने एजेंट में पेस्ट करें। एजेंट को रिमोट MCP समर्थन या HTTP अनुरोध करने का कोई तरीका चाहिए।
2. **अपना दृश्य खोलें।** QR कोड स्कैन करें या ब्राउज़र में पूरा URL खोलें। एजेंट का टर्मिनल देखने के लिए उसका **🤖 टैब** चुनें।
3. **मिलकर काम करें।** आउटपुट देखें, किसी इंटरैक्टिव प्रॉम्प्ट का उत्तर दें, कोई कमांड टाइप करें, या उस शेल को समाप्त करने के लिए टैब बंद करें।
4. **किसी भी फ़ोन से अपने कंप्यूटर तक पहुँचें।** वाइब कोडिंग, त्वरित सुधार, कमांड चलाने और अन्य कार्यों के लिए अपने फ़ोन का ब्राउज़र उपयोग करें।
किसी विशेष प्रोजेक्ट में शुरू करने के लिए, `uvx ptn /path/to/project` का उपयोग करें।
इंस्टॉलेशन विकल्पों के लिए, [installation](https://github.com/porterminal/porterminal/blob/master/docs/installation.md) देखें, या नीचे दिए गए इंस्टॉलर का उपयोग करें।
> **लिंक ही कंप्यूटर की कुंजी है।** पूरा URL और QR कोड शेल एक्सेस प्रदान करते हैं। इन्हें केवल उन्हीं लोगों और एजेंटों के साथ साझा करें जिन पर आप भरोसा करते हैं।
> [सुरक्षा मॉडल पढ़ें](#security)।
## एजेंट काम करता है। आप जानकारी में बने रहते हैं।
| आपका एजेंट | आप |
|------------|-----|
| कंप्यूटर के वास्तविक शेल में कमांड चलाता है | ब्राउज़र में वही आउटपुट लाइव देखते हैं |
| टर्मिनल स्क्रीन पढ़ता है और प्रॉम्प्ट का उत्तर देता है | ज़रूरत पड़ने पर उसी टर्मिनल में टाइप करते हैं |
| टूल कॉल्स के बीच शेल स्थिति बनाए रखता है | एजेंट और व्यक्तिगत टैब के बीच स्विच करते हैं |
| कनेक्ट करने के लिए MCP या HTTP का उपयोग करता है | फ़ोन या डेस्कटॉप से QR कोड या URL का उपयोग करते हैं |
टर्मिनल इनपुट साझा होता है; अपने एजेंट के साथ टाइपिंग का समन्वय करें। Porterminal इंटरैक्टिव टर्मिनल ऐप्स, कई टैब, और सर्वर व सत्र के जीवित रहने के दौरान चल रहे सत्रों से पुनः कनेक्ट होने का समर्थन करता है।
फ़ोन UI में Ctrl/Alt/Shift कुंजियाँ, टच चयन, स्क्रॉलिंग, पिंच-टू-ज़ूम, और लंबे इनपुट को संपादित करने या डिक्टेट करने के लिए एक कंपोज़ फ़ील्ड शामिल है।
[terminal controls](https://github.com/porterminal/porterminal/blob/master/docs/frontend_features.md) देखें।
## डेमो आज़माएँ
किसी एजेंट को एक छोटा इनवॉइस प्रोजेक्ट दें जिसमें एक चेक विफल हो रहा हो। देखें कि वह बग ढूँढता है, फ़ाइल संपादित करता है, और चेक को हरा कर देता है। फिर अपने फ़ोन से रसीद के लेबल प्रॉम्प्ट का उत्तर दें और एजेंट से परिणाम पढ़वाएँ।
[demo guide](https://github.com/porterminal/porterminal/blob/master/docs/demo.md) में कॉपी करने के लिए तैयार एक प्रोजेक्ट, एक एजेंट कार्य, और 60-सेकंड की रिकॉर्डिंग योजना शामिल है। यह एक साझा सत्र में कमांड, फ़ाइल परिवर्तन, सत्यापन, और मानव इनपुट को प्रदर्शित करता है।
## अपना एजेंट कनेक्ट करें
**`c`** दबाने पर उपलब्ध कनेक्शन विधियों के निर्देश कॉपी हो जाते हैं। चल रहा सर्वर इन्हें `<url>/llms.txt` पर भी प्रदान करता है।
यहाँ, **`<url>` पूरा जनरेट किया गया URL है, जिसमें उसका एक्सेस कोड भी शामिल है**।
| एजेंट क्षमता | कनेक्शन |
|------------------|------------|
| रिमोट MCP | `<url>/mcp` — Streamable HTTP |
| HTTP अनुरोध | `<url>/api/agent/run` — REST |
| ब्राउज़र ऑटोमेशन | `<url>/` खोलें; **Terminal screen** और **Terminal input** का उपयोग करें |
MCP चार टूल प्रदान करता है: `run_command`, `read_screen`, `send_keys`, और `send_signal`। REST एक `session_id` लौटाता है जिसे एजेंट बाद के कमांड और इंटरैक्शन के लिए पुनः उपयोग करता है। एजेंट शेल आपके ब्राउज़र में 🤖 टैब के रूप में दिखाई देते हैं।
क्लाइंट सेटअप, अनुरोध उदाहरण, सत्र जीवनकाल, और लंबे समय तक चलने वाले कमांड के लिए [agent access](https://github.com/porterminal/porterminal/blob/master/docs/agent-access.md) देखें।
## इंस्टॉल करें
**Python 3.12+** आवश्यक है। जब `cloudflared` अनुपस्थित होता है तो Porterminal इसे स्वचालित रूप से इंस्टॉल करने का प्रयास करता है।
| विधि | चलाएँ या इंस्टॉल करें | अपडेट करें |
|--------|----------------|--------|
| uvx | `uvx ptn` | `uvx --isolated ptn@latest` |
| uv tool | `uv tool install ptn` | `uv tool upgrade ptn` |
| pipx | `pipx install ptn` | `pipx upgrade ptn` |
| pip | `pip install ptn` | `pip install -U ptn` |
**uv और Porterminal एक साथ इंस्टॉल करें:**
Windows (PowerShell):
```powershell
powershell -ExecutionPolicy ByPass -c "irm https://raw.githubusercontent.com/porterminal/porterminal/master/install.ps1 | iex"
```
macOS / Linux:
```bash
curl -LsSf https://raw.githubusercontent.com/porterminal/porterminal/master/install.sh | sh
```
## उपयोग
इंस्टॉल करने के बाद, `ptn` या `ptn /path/to/project` चलाएँ।
| विकल्प | उद्देश्य |
|--------|---------|
| `--no-tunnel` | Cloudflare tunnel के बिना चलाएँ |
| `--mcp-only` | केवल MCP उपलब्ध कराएँ; QR कोड, ब्राउज़र टर्मिनल, और REST API अक्षम करता है |
| `--compose` | मोबाइल compose फ़ील्ड सक्षम करके शुरू करें |
| `--init` | प्रोजेक्ट स्क्रिप्ट से खोजे गए बटनों के साथ `.ptn/ptn.yaml` जनरेट करें |
| `--password` | ब्राउज़र टर्मिनल एक्सेस में पासवर्ड जोड़ें |
| `--help` | सभी विकल्प दिखाएँ |
| `--version` | इंस्टॉल किया गया संस्करण दिखाएँ |
चलने के दौरान: **`c`** एजेंट निर्देश कॉपी करता है, **`u`** केवल
URL कॉपी करता है, और **`s`** स्क्रीन पर शेयर टेक्स्ट दिखाता है (**`q`** इसे बंद करता है)।
**Ctrl+C** Porterminal को रोकता है। MCP-only मोड में शेयर कुंजियाँ MCP URL का उपयोग करती हैं।
कस्टम शेल, टूलबार बटन, और स्टार्टअप सेटिंग्स `ptn.yaml` में रहती हैं।
[कॉन्फ़िगरेशन](https://github.com/porterminal/porterminal/blob/master/docs/configuration.md) देखें।
## सुरक्षा
Porterminal आपके उपयोगकर्ता की अनुमतियों के साथ एक वास्तविक शेल तक पहुँच देता है। प्रारंभिक
निर्देशिका एक सुविधा है, न कि कोई सैंडबॉक्स या फ़ाइल एक्सेस की सीमा।
प्रत्येक लॉन्च एक नया 128-बिट रैंडम एक्सेस पाथ बनाता है। बिना पाथ वाला tunnel होस्टनेम
और गलत पाथ 404 लौटाते हैं, लेकिन पूरा URL रखने वाला कोई भी व्यक्ति शेल का उपयोग कर सकता है।
URL और QR कोड को निजी रखें, काम पूरा होने पर Porterminal रोकें, और यदि लिंक लीक हो जाए
तो एक्सेस कोड बदलने के लिए इसे पुनः आरंभ करें।
**वैकल्पिक पासवर्ड ब्राउज़र कनेक्शन की सुरक्षा करता है। MCP और REST अपने क्रेडेंशियल के रूप में
पूर्ण URL का उपयोग करते हैं और उस पासवर्ड की आवश्यकता नहीं होती।**
पूर्ण मॉडल और पासवर्ड व्यवहार के लिए [सुरक्षा](https://github.com/porterminal/porterminal/blob/master/docs/security.md) देखें।
कमज़ोरियों की रिपोर्ट [सुरक्षा नीति](https://github.com/porterminal/porterminal/blob/master/.github/SECURITY.md) के माध्यम से करें।
## दस्तावेज़ीकरण और विकास
- [इंस्टॉलेशन](https://github.com/porterminal/porterminal/blob/master/docs/installation.md)
- [एजेंट एक्सेस: MCP, REST, और ब्राउज़र फ़ॉलबैक](https://github.com/porterminal/porterminal/blob/master/docs/agent-access.md)
- [डेमो सेटअप और रिकॉर्डिंग](https://github.com/porterminal/porterminal/blob/master/docs/demo.md)
- [कॉन्फ़िगरेशन](https://github.com/porterminal/porterminal/blob/master/docs/configuration.md)
- [आर्किटेक्चर](https://github.com/porterminal/porterminal/blob/master/docs/architecture.md)
- [विकास और रिलीज़ प्रक्रिया](https://github.com/porterminal/porterminal/blob/master/docs/development.md)
- [चेंजलॉग](https://github.com/porterminal/porterminal/blob/master/docs/CHANGELOG.md)
बग रिपोर्ट और फ़ीचर अनुरोधों का
[issues](https://github.com/porterminal/porterminal/issues) के रूप में स्वागत है।
बाहरी pull requests और कोड योगदान स्वीकार नहीं किए जाते; देखें
[CONTRIBUTING.md](https://github.com/porterminal/porterminal/blob/master/CONTRIBUTING.md)। आप फ़ोर्क करके अपनी प्रतिलिपि चला सकते हैं।
## लाइसेंस
[AGPL-3.0](https://github.com/porterminal/porterminal/blob/master/LICENSE)