<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.alikaravi.ir/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Karavi</id>
	<title>wiki karavi - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.alikaravi.ir/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Karavi"/>
	<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Special:Contributions/Karavi"/>
	<updated>2026-08-25T06:33:45Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.40.1</generator>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Ai_Install_Extension&amp;diff=203</id>
		<title>Ai Install Extension</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Ai_Install_Extension&amp;diff=203"/>
		<updated>2026-08-21T09:23:35Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Installed IDE Extensions &amp;amp; Agentic Development Environment =&lt;br /&gt;
&lt;br /&gt;
این صفحه وضعیت افزونه‌ها و ابزارهای Agentic Development نصب‌شده در محیط توسعه را ثبت می‌کند.&lt;br /&gt;
&lt;br /&gt;
هدف اصلی این محیط، حرکت به سمت یک &#039;&#039;&#039;Agentic Development OS&#039;&#039;&#039; است؛ یعنی محیطی که بتواند چند AI Coding Agent را از یک نقطه مدیریت کند و قابلیت‌هایی مانند Orchestration، Skills، MCP، Memory، Parallel Agents، Git Worktrees، Code Review و Observability را فراهم کند.&lt;br /&gt;
&lt;br /&gt;
محیط‌های اصلی:&lt;br /&gt;
&lt;br /&gt;
* Visual Studio Code&lt;br /&gt;
* Cursor&lt;br /&gt;
* Google Antigravity&lt;br /&gt;
&lt;br /&gt;
Agentهای اصلی:&lt;br /&gt;
&lt;br /&gt;
* Claude Code&lt;br /&gt;
* OpenAI Codex&lt;br /&gt;
* OpenCode&lt;br /&gt;
* Continue&lt;br /&gt;
* Cline&lt;br /&gt;
&lt;br /&gt;
ابزارهای Agentic جدید:&lt;br /&gt;
&lt;br /&gt;
* Multicoder&lt;br /&gt;
* BuySkills&lt;br /&gt;
* Crispy&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;راهنما:&#039;&#039;&#039; ✅ = نصب‌شده | — = نصب‌نشده / ثبت نشده&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Agentic OS Architecture =&lt;br /&gt;
&lt;br /&gt;
ساختار هدف:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                  Agentic Development OS&lt;br /&gt;
                           │&lt;br /&gt;
             ┌─────────────┴─────────────┐&lt;br /&gt;
             │                           │&lt;br /&gt;
          IDE Layer               Agentic UI Layer&lt;br /&gt;
             │                           │&lt;br /&gt;
     ┌───────┼────────┐          ┌───────┼────────┐&lt;br /&gt;
     │       │        │          │       │        │&lt;br /&gt;
 VS Code   Cursor  Antigravity Multicoder Crispy  ...&lt;br /&gt;
     │&lt;br /&gt;
     ├──────────── Agent Layer ─────────────┐&lt;br /&gt;
     │                                      │&lt;br /&gt;
     ▼                                      ▼&lt;br /&gt;
 Claude Code                              Codex&lt;br /&gt;
     │                                      │&lt;br /&gt;
     ├──────── OpenCode / Cline ────────────┤&lt;br /&gt;
     │                                      │&lt;br /&gt;
     └────────── Specialized Agents ────────┘&lt;br /&gt;
                         │&lt;br /&gt;
                Orchestration Layer&lt;br /&gt;
                         │&lt;br /&gt;
       ┌─────────────────┼──────────────────┐&lt;br /&gt;
       ▼                 ▼                  ▼&lt;br /&gt;
     Skills             MCP              Memory&lt;br /&gt;
       │                 │                  │&lt;br /&gt;
       └────────────── Tools ───────────────┘&lt;br /&gt;
                         │&lt;br /&gt;
                   Git Worktrees&lt;br /&gt;
                         │&lt;br /&gt;
               Diff / Test / Review&lt;br /&gt;
                         │&lt;br /&gt;
                      Git / PR&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= نکته مهم درباره نصب Extension =&lt;br /&gt;
&lt;br /&gt;
== Visual Studio Code ==&lt;br /&gt;
&lt;br /&gt;
برای VS Code از CLI رسمی VS Code استفاده می‌شود:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
code --install-extension EXTENSION_ID&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
مشاهده Extensionهای نصب‌شده:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
code --list-extensions&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cursor ==&lt;br /&gt;
&lt;br /&gt;
دستور:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
code --install-extension EXTENSION_ID&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
مربوط به VS Code است و نباید به‌عنوان دستور نصب Extension در Cursor استفاده شود.&lt;br /&gt;
&lt;br /&gt;
Extensionهای Cursor از داخل خود Cursor مدیریت شوند:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Cursor&lt;br /&gt;
→ Extensions&lt;br /&gt;
→ Search&lt;br /&gt;
→ Install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cursor Agent CLI نیز ابزار جداگانه‌ای است.&lt;br /&gt;
&lt;br /&gt;
== Google Antigravity ==&lt;br /&gt;
&lt;br /&gt;
برای Antigravity نیز نباید دستور &amp;lt;code&amp;gt;code --install-extension&amp;lt;/code&amp;gt; را به‌عنوان دستور نصب مخصوص Antigravity استفاده کرد.&lt;br /&gt;
&lt;br /&gt;
Extensionها، Plugins و Skills آن باید با مکانیزم خود Antigravity مدیریت شوند.&lt;br /&gt;
&lt;br /&gt;
Antigravity CLI نیز با دستور:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
agy&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
اجرا می‌شود.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Summary Table =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! #&lt;br /&gt;
! Extension / Tool&lt;br /&gt;
! کاربرد&lt;br /&gt;
! VS Code&lt;br /&gt;
! Cursor&lt;br /&gt;
! Antigravity&lt;br /&gt;
|-&lt;br /&gt;
| 1 || &amp;lt;code&amp;gt;anthropic.claude-code&amp;lt;/code&amp;gt; || Claude Code || ✅ || ✅ || ✅&lt;br /&gt;
|-&lt;br /&gt;
| 2 || &amp;lt;code&amp;gt;continue.continue&amp;lt;/code&amp;gt; || Continue AI || ✅ || — || —&lt;br /&gt;
|-&lt;br /&gt;
| 3 || &amp;lt;code&amp;gt;openai.chatgpt&amp;lt;/code&amp;gt; || OpenAI / ChatGPT || ✅ || ✅ || ✅&lt;br /&gt;
|-&lt;br /&gt;
| 4 || &amp;lt;code&amp;gt;saoudrizwan.claude-dev&amp;lt;/code&amp;gt; || Cline / Claude Dev || ✅ || ✅ || ✅&lt;br /&gt;
|-&lt;br /&gt;
| 5 || &amp;lt;code&amp;gt;sst-dev.opencode&amp;lt;/code&amp;gt; || OpenCode || ✅ || — || —&lt;br /&gt;
|-&lt;br /&gt;
| 6 || &amp;lt;code&amp;gt;tanishqkancharla.opencode-vscode&amp;lt;/code&amp;gt; || OpenCode Integration || ✅ || — || —&lt;br /&gt;
|-&lt;br /&gt;
| 7 || &amp;lt;code&amp;gt;wannanbigpig.codex-accounts-manager&amp;lt;/code&amp;gt; || Codex Accounts Manager || ✅ || — || —&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Multicoder || Multi-Agent UI / Agent Management || ✅ || — || —&lt;br /&gt;
|-&lt;br /&gt;
| 9 || BuySkills || Agent Skills Management || ✅ || — || —&lt;br /&gt;
|-&lt;br /&gt;
| 10 || Crispy || Claude/Codex Agentic UI &amp;amp; Orchestration || ✅ || — || —&lt;br /&gt;
|-&lt;br /&gt;
| 11 || &amp;lt;code&amp;gt;lucasdonordeste.claude-control-panel&amp;lt;/code&amp;gt; || Claude Control Panel || ✅ || — || —&lt;br /&gt;
|-&lt;br /&gt;
| 12 || &amp;lt;code&amp;gt;nrigalle.claude-trace&amp;lt;/code&amp;gt; || Claude Observability / Trace || ✅ || ✅ || ✅&lt;br /&gt;
|-&lt;br /&gt;
| 13 || &amp;lt;code&amp;gt;anysphere.remote-ssh&amp;lt;/code&amp;gt; || Cursor Remote SSH || — || ✅ || —&lt;br /&gt;
|-&lt;br /&gt;
| 14 || &amp;lt;code&amp;gt;anysphere.remote-wsl&amp;lt;/code&amp;gt; || Cursor Remote WSL || — || ✅ || —&lt;br /&gt;
|-&lt;br /&gt;
| 15 || &amp;lt;code&amp;gt;bivipi.ag-manager&amp;lt;/code&amp;gt; || AG Manager || — || ✅ || ✅&lt;br /&gt;
|-&lt;br /&gt;
| 16 || &amp;lt;code&amp;gt;erennyuksell.ag-multi-account-switchboard&amp;lt;/code&amp;gt; || AG Multi Account || — || — || ✅&lt;br /&gt;
|-&lt;br /&gt;
| 17 || &amp;lt;code&amp;gt;leandrosilvaferreira.claude-agents-monitor&amp;lt;/code&amp;gt; || Claude Agents Monitor || — || — || ✅&lt;br /&gt;
|-&lt;br /&gt;
| 18 || &amp;lt;code&amp;gt;lucasdonordeste.claude-control&amp;lt;/code&amp;gt; || Claude Control || — || ✅ || ✅&lt;br /&gt;
|-&lt;br /&gt;
| 19 || &amp;lt;code&amp;gt;yossisa.cursor-usage&amp;lt;/code&amp;gt; || Cursor Usage || — || ✅ || —&lt;br /&gt;
|-&lt;br /&gt;
| 20 || &amp;lt;code&amp;gt;golang.go&amp;lt;/code&amp;gt; || Go || ✅ || — || ✅&lt;br /&gt;
|-&lt;br /&gt;
| 21 || &amp;lt;code&amp;gt;llvm-vs-code-extensions.vscode-clangd&amp;lt;/code&amp;gt; || clangd || ✅ || — || ✅&lt;br /&gt;
|-&lt;br /&gt;
| 22 || &amp;lt;code&amp;gt;meta.pyrefly&amp;lt;/code&amp;gt; || Pyrefly || ✅ || — || ✅&lt;br /&gt;
|-&lt;br /&gt;
| 23 || &amp;lt;code&amp;gt;ms-azuretools.vscode-containers&amp;lt;/code&amp;gt; || Containers || ✅ || — || —&lt;br /&gt;
|-&lt;br /&gt;
| 24 || &amp;lt;code&amp;gt;ms-dotnettools.csdevkit&amp;lt;/code&amp;gt; || C# Dev Kit || ✅ || — || —&lt;br /&gt;
|-&lt;br /&gt;
| 25 || &amp;lt;code&amp;gt;ms-dotnettools.csharp&amp;lt;/code&amp;gt; || C# || ✅ || — || —&lt;br /&gt;
|-&lt;br /&gt;
| 26 || &amp;lt;code&amp;gt;ms-dotnettools.vscode-dotnet-runtime&amp;lt;/code&amp;gt; || .NET Runtime || ✅ || — || —&lt;br /&gt;
|-&lt;br /&gt;
| 27 || &amp;lt;code&amp;gt;ms-python.debugpy&amp;lt;/code&amp;gt; || Python Debugger || ✅ || — || ✅&lt;br /&gt;
|-&lt;br /&gt;
| 28 || &amp;lt;code&amp;gt;ms-python.python&amp;lt;/code&amp;gt; || Python || ✅ || — || ✅&lt;br /&gt;
|-&lt;br /&gt;
| 29 || &amp;lt;code&amp;gt;ms-python.vscode-pylance&amp;lt;/code&amp;gt; || Pylance || ✅ || — || —&lt;br /&gt;
|-&lt;br /&gt;
| 30 || &amp;lt;code&amp;gt;ms-python.vscode-python-envs&amp;lt;/code&amp;gt; || Python Environments || ✅ || — || ✅&lt;br /&gt;
|-&lt;br /&gt;
| 31 || &amp;lt;code&amp;gt;ms-vscode.powershell&amp;lt;/code&amp;gt; || PowerShell || ✅ || — || ✅&lt;br /&gt;
|-&lt;br /&gt;
| 32 || &amp;lt;code&amp;gt;shopify.ruby-lsp&amp;lt;/code&amp;gt; || Ruby LSP || ✅ || — || ✅&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Visual Studio Code =&lt;br /&gt;
&lt;br /&gt;
VS Code در این ساختار IDE اصلی برای آزمایش Agentic Development است.&lt;br /&gt;
&lt;br /&gt;
== AI / Agent Extensions ==&lt;br /&gt;
&lt;br /&gt;
Extensionهای AI ثبت‌شده:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
anthropic.claude-code&lt;br /&gt;
continue.continue&lt;br /&gt;
lucasdonordeste.claude-control-panel&lt;br /&gt;
nrigalle.claude-trace&lt;br /&gt;
openai.chatgpt&lt;br /&gt;
saoudrizwan.claude-dev&lt;br /&gt;
sst-dev.opencode&lt;br /&gt;
tanishqkancharla.opencode-vscode&lt;br /&gt;
wannanbigpig.codex-accounts-manager&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
نصب:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
code --install-extension anthropic.claude-code&lt;br /&gt;
code --install-extension continue.continue&lt;br /&gt;
code --install-extension lucasdonordeste.claude-control-panel&lt;br /&gt;
code --install-extension nrigalle.claude-trace&lt;br /&gt;
code --install-extension openai.chatgpt&lt;br /&gt;
code --install-extension saoudrizwan.claude-dev&lt;br /&gt;
code --install-extension sst-dev.opencode&lt;br /&gt;
code --install-extension tanishqkancharla.opencode-vscode&lt;br /&gt;
code --install-extension wannanbigpig.codex-accounts-manager&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Multicoder =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Status:&#039;&#039;&#039; ✅ Installed&lt;br /&gt;
&lt;br /&gt;
Multicoder به‌عنوان لایه Multi-Agent UI در Agentic OS استفاده می‌شود.&lt;br /&gt;
&lt;br /&gt;
هدف اصلی آن ایجاد یک محیط مشترک برای کار با چند Coding Agent است.&lt;br /&gt;
&lt;br /&gt;
نقش پیشنهادی:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                   Multicoder&lt;br /&gt;
                       │&lt;br /&gt;
       ┌───────────────┼───────────────┐&lt;br /&gt;
       ▼               ▼               ▼&lt;br /&gt;
 Claude Code         Codex          OpenCode&lt;br /&gt;
       │               │               │&lt;br /&gt;
       └──────── Agent Sessions ────────┘&lt;br /&gt;
                       │&lt;br /&gt;
                Unified Agent UI&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
کاربردهای موردنظر:&lt;br /&gt;
&lt;br /&gt;
* مدیریت چند Coding Agent&lt;br /&gt;
* اجرای Agentها از یک UI&lt;br /&gt;
* مدیریت Sessionهای Agent&lt;br /&gt;
* کاهش نیاز به چند پنل مستقل&lt;br /&gt;
* استفاده از Agentهای مختلف برای وظایف متفاوت&lt;br /&gt;
* تبدیل VS Code به یک Multi-Agent Workspace&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;نقش در Agentic OS:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Multi-Agent UI / Agent Control Plane&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;اولویت:&#039;&#039;&#039; بسیار بالا&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= BuySkills =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Status:&#039;&#039;&#039; ✅ Installed&lt;br /&gt;
&lt;br /&gt;
BuySkills برای ایجاد و مدیریت لایه Skills در Agentic OS استفاده می‌شود.&lt;br /&gt;
&lt;br /&gt;
هدف این است که Skillها تا حد امکان مستقل از Agent باشند.&lt;br /&gt;
&lt;br /&gt;
معماری هدف:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                    Skills Library&lt;br /&gt;
                          │&lt;br /&gt;
       ┌──────────────────┼──────────────────┐&lt;br /&gt;
       ▼                  ▼                  ▼&lt;br /&gt;
 Claude Code            Codex             Cursor&lt;br /&gt;
       │                  │                  │&lt;br /&gt;
       ├────────────── OpenCode ─────────────┤&lt;br /&gt;
       │                  │                  │&lt;br /&gt;
       └──────────── Cline / Others ─────────┘&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
نمونه Skills موردنظر:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
skills/&lt;br /&gt;
│&lt;br /&gt;
├── dotnet-architect/&lt;br /&gt;
├── api-design/&lt;br /&gt;
├── database-review/&lt;br /&gt;
├── security-review/&lt;br /&gt;
├── code-review/&lt;br /&gt;
├── unit-testing/&lt;br /&gt;
├── integration-testing/&lt;br /&gt;
├── performance/&lt;br /&gt;
├── docker/&lt;br /&gt;
├── git/&lt;br /&gt;
├── documentation/&lt;br /&gt;
└── refactoring/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;نقش در Agentic OS:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Shared Agent Skills Layer&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
هدف نهایی این است که Skillهای قابل استفاده مجدد بین Claude، Codex، OpenCode و سایر Agentها داشته باشیم.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;اولویت:&#039;&#039;&#039; بسیار بالا&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Crispy =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Status:&#039;&#039;&#039; ✅ Installed&lt;br /&gt;
&lt;br /&gt;
Crispy به‌عنوان یک ابزار آزمایشی برای Agentic UI و Orchestration نصب شده است.&lt;br /&gt;
&lt;br /&gt;
تمرکز موردنظر:&lt;br /&gt;
&lt;br /&gt;
* Claude Code&lt;br /&gt;
* Codex&lt;br /&gt;
* Agent Sessions&lt;br /&gt;
* Multi-Agent workflow&lt;br /&gt;
* Agent Memory&lt;br /&gt;
* Orchestration&lt;br /&gt;
* مشاهده و کنترل Agentها از UI&lt;br /&gt;
&lt;br /&gt;
ساختار مورد آزمایش:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                      Crispy&lt;br /&gt;
                         │&lt;br /&gt;
               ┌─────────┴─────────┐&lt;br /&gt;
               ▼                   ▼&lt;br /&gt;
          Claude Code            Codex&lt;br /&gt;
               │                   │&lt;br /&gt;
               └──── Collaboration ┘&lt;br /&gt;
                         │&lt;br /&gt;
                   Orchestration&lt;br /&gt;
                         │&lt;br /&gt;
                      Memory&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;نقش در Agentic OS:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Experimental Agent UI&lt;br /&gt;
+&lt;br /&gt;
Orchestration&lt;br /&gt;
+&lt;br /&gt;
Memory&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Crispy فعلاً به‌عنوان ابزار آزمایشی در نظر گرفته می‌شود و جایگزین Multicoder یا Orchestrator اصلی نشده است.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;اولویت:&#039;&#039;&#039; آزمایشی&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Claude Code =&lt;br /&gt;
&lt;br /&gt;
Extension:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
anthropic.claude-code&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Status:&lt;br /&gt;
&lt;br /&gt;
* VS Code: ✅&lt;br /&gt;
* Cursor: ✅&lt;br /&gt;
* Antigravity: ✅&lt;br /&gt;
&lt;br /&gt;
در معماری Agentic OS، Claude Code گزینه اصلی برای نقش:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Main Orchestrator&lt;br /&gt;
Architecture Agent&lt;br /&gt;
Planning Agent&lt;br /&gt;
Complex Reasoning Agent&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
است.&lt;br /&gt;
&lt;br /&gt;
در VS Code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
code --install-extension anthropic.claude-code&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= OpenAI Codex =&lt;br /&gt;
&lt;br /&gt;
Codex یکی از Agentهای اصلی سیستم است.&lt;br /&gt;
&lt;br /&gt;
نقش پیشنهادی:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Implementation Worker&lt;br /&gt;
Refactoring Worker&lt;br /&gt;
Testing Worker&lt;br /&gt;
Code Review Worker&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
در معماری هدف:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Claude Orchestrator&lt;br /&gt;
        │&lt;br /&gt;
        ├──────────────┐&lt;br /&gt;
        ▼              ▼&lt;br /&gt;
      Codex          Codex&lt;br /&gt;
   Implementation     Tests&lt;br /&gt;
        │              │&lt;br /&gt;
        └──────┬───────┘&lt;br /&gt;
               ▼&lt;br /&gt;
             Review&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Codex Accounts Manager نیز در VS Code نصب شده است:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wannanbigpig.codex-accounts-manager&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= OpenCode =&lt;br /&gt;
&lt;br /&gt;
OpenCode به‌عنوان Agent جایگزین و Provider-independent در محیط نگهداری می‌شود.&lt;br /&gt;
&lt;br /&gt;
Extensionهای نصب‌شده در VS Code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sst-dev.opencode&lt;br /&gt;
tanishqkancharla.opencode-vscode&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
نقش پیشنهادی:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Alternative Worker Agent&lt;br /&gt;
Model Router&lt;br /&gt;
Fallback Agent&lt;br /&gt;
Experimental Agent&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Continue =&lt;br /&gt;
&lt;br /&gt;
Extension:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
continue.continue&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Status:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
VS Code: Installed&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
نقش Continue در معماری:&lt;br /&gt;
&lt;br /&gt;
* اتصال مدل‌های مختلف&lt;br /&gt;
* AI coding workflow&lt;br /&gt;
* Model flexibility&lt;br /&gt;
* experimentation&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Cline =&lt;br /&gt;
&lt;br /&gt;
Extension:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
saoudrizwan.claude-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Status:&lt;br /&gt;
&lt;br /&gt;
* VS Code: ✅&lt;br /&gt;
* Cursor: ✅&lt;br /&gt;
* Antigravity: ✅&lt;br /&gt;
&lt;br /&gt;
نقش پیشنهادی:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Autonomous Worker&lt;br /&gt;
MCP-enabled Agent&lt;br /&gt;
Experimental Worker&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Observability Layer =&lt;br /&gt;
&lt;br /&gt;
یکی از نیازهای Agentic OS مشاهده رفتار Agentها است.&lt;br /&gt;
&lt;br /&gt;
ابزارهای فعلی:&lt;br /&gt;
&lt;br /&gt;
== Claude Trace ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nrigalle.claude-trace&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Status:&lt;br /&gt;
&lt;br /&gt;
* VS Code: ✅&lt;br /&gt;
* Cursor: ✅&lt;br /&gt;
* Antigravity: ✅&lt;br /&gt;
&lt;br /&gt;
کاربرد:&lt;br /&gt;
&lt;br /&gt;
* Trace فعالیت Claude&lt;br /&gt;
* Debug workflow&lt;br /&gt;
* بررسی رفتار Agent&lt;br /&gt;
&lt;br /&gt;
== Claude Control Panel ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lucasdonordeste.claude-control-panel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Status:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
VS Code: ✅&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
کاربرد:&lt;br /&gt;
&lt;br /&gt;
* مشاهده وضعیت Claude&lt;br /&gt;
* کنترل Sessionها&lt;br /&gt;
* مدیریت بهتر Agent&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Skills Layer =&lt;br /&gt;
&lt;br /&gt;
Skills یکی از اجزای اصلی Agentic OS است.&lt;br /&gt;
&lt;br /&gt;
ابزار اصلی فعلی:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BuySkills&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ساختار هدف:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
             Shared Skills Repository&lt;br /&gt;
                       │&lt;br /&gt;
     ┌─────────────────┼─────────────────┐&lt;br /&gt;
     ▼                 ▼                 ▼&lt;br /&gt;
 Development        Security          DevOps&lt;br /&gt;
     │                 │                 │&lt;br /&gt;
 Architecture       OWASP            Docker&lt;br /&gt;
 Testing            Review           CI/CD&lt;br /&gt;
 Refactoring        Audit            Deployment&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
هدف:&lt;br /&gt;
&lt;br /&gt;
* Reusable Skills&lt;br /&gt;
* Shared Skills&lt;br /&gt;
* Version-controlled Skills&lt;br /&gt;
* Project-specific Skills&lt;br /&gt;
* Organization-wide Skills&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= MCP Layer =&lt;br /&gt;
&lt;br /&gt;
MCP باید به‌عنوان Tool Bus سیستم Agentic استفاده شود.&lt;br /&gt;
&lt;br /&gt;
معماری هدف:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                    Agents&lt;br /&gt;
                       │&lt;br /&gt;
                      MCP&lt;br /&gt;
                       │&lt;br /&gt;
       ┌───────────────┼────────────────┐&lt;br /&gt;
       ▼               ▼                ▼&lt;br /&gt;
    GitHub          Database          Browser&lt;br /&gt;
       │               │                │&lt;br /&gt;
    Issues            SQL              Web&lt;br /&gt;
      PRs              Data             Test&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
اهداف:&lt;br /&gt;
&lt;br /&gt;
* دسترسی استاندارد Agentها به Tools&lt;br /&gt;
* کاهش وابستگی به Agent خاص&lt;br /&gt;
* استفاده مشترک از Toolها&lt;br /&gt;
* کنترل دسترسی&lt;br /&gt;
* قابلیت توسعه&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Memory Layer =&lt;br /&gt;
&lt;br /&gt;
Agentic OS نیاز به Memory دارد.&lt;br /&gt;
&lt;br /&gt;
Memory موردنظر شامل:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Project Memory&lt;br /&gt;
Architecture Decisions&lt;br /&gt;
Coding Standards&lt;br /&gt;
Previous Agent Decisions&lt;br /&gt;
Known Bugs&lt;br /&gt;
Security Findings&lt;br /&gt;
User Preferences&lt;br /&gt;
Task History&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Crispy یکی از ابزارهایی است که برای بررسی قابلیت Agent Memory نصب شده است.&lt;br /&gt;
&lt;br /&gt;
Memory نباید فقط به Conversation History محدود شود.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Orchestration Layer =&lt;br /&gt;
&lt;br /&gt;
هدف نهایی اجرای workflow مشابه زیر است:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
User Request&lt;br /&gt;
     │&lt;br /&gt;
     ▼&lt;br /&gt;
Main Orchestrator&lt;br /&gt;
     │&lt;br /&gt;
     ├───────────────┬───────────────┐&lt;br /&gt;
     ▼               ▼               ▼&lt;br /&gt;
Architecture      Research        Planning&lt;br /&gt;
     │               │               │&lt;br /&gt;
     └───────────────┼───────────────┘&lt;br /&gt;
                     ▼&lt;br /&gt;
                Task Breakdown&lt;br /&gt;
                     │&lt;br /&gt;
       ┌─────────────┼─────────────┐&lt;br /&gt;
       ▼             ▼             ▼&lt;br /&gt;
    Worker 1      Worker 2      Worker 3&lt;br /&gt;
     Codex         Claude       OpenCode&lt;br /&gt;
       │             │             │&lt;br /&gt;
       ▼             ▼             ▼&lt;br /&gt;
 Implementation    Tests        Security&lt;br /&gt;
       │             │             │&lt;br /&gt;
       └─────────────┼─────────────┘&lt;br /&gt;
                     ▼&lt;br /&gt;
                  Review&lt;br /&gt;
                     │&lt;br /&gt;
                     ▼&lt;br /&gt;
                 Validation&lt;br /&gt;
                     │&lt;br /&gt;
                     ▼&lt;br /&gt;
                  Git / PR&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Parallel Agent Strategy =&lt;br /&gt;
&lt;br /&gt;
برای جلوگیری از Conflict:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Repository&lt;br /&gt;
    │&lt;br /&gt;
    ├── Worktree A → Agent A&lt;br /&gt;
    ├── Worktree B → Agent B&lt;br /&gt;
    ├── Worktree C → Agent C&lt;br /&gt;
    └── Worktree D → Review Agent&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
هر Agent ترجیحاً باید workspace یا Git Worktree مستقل داشته باشد.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Agent Roles =&lt;br /&gt;
&lt;br /&gt;
نقش‌های هدف:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Role&lt;br /&gt;
! Agent پیشنهادی&lt;br /&gt;
! مسئولیت&lt;br /&gt;
|-&lt;br /&gt;
| Main Orchestrator&lt;br /&gt;
| Claude Code&lt;br /&gt;
| Planning / Delegation / Architecture&lt;br /&gt;
|-&lt;br /&gt;
| Implementation&lt;br /&gt;
| Codex&lt;br /&gt;
| Coding / Refactoring&lt;br /&gt;
|-&lt;br /&gt;
| Alternative Worker&lt;br /&gt;
| OpenCode&lt;br /&gt;
| Coding / Provider flexibility&lt;br /&gt;
|-&lt;br /&gt;
| Autonomous Worker&lt;br /&gt;
| Cline&lt;br /&gt;
| Tool-based autonomous tasks&lt;br /&gt;
|-&lt;br /&gt;
| Security Agent&lt;br /&gt;
| Claude / Codex&lt;br /&gt;
| Security Review&lt;br /&gt;
|-&lt;br /&gt;
| Test Agent&lt;br /&gt;
| Codex&lt;br /&gt;
| Unit / Integration Tests&lt;br /&gt;
|-&lt;br /&gt;
| Review Agent&lt;br /&gt;
| Claude + Codex&lt;br /&gt;
| Independent Code Review&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Development Extensions =&lt;br /&gt;
&lt;br /&gt;
== .NET / C# ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
code --install-extension ms-dotnettools.csdevkit&lt;br /&gt;
code --install-extension ms-dotnettools.csharp&lt;br /&gt;
code --install-extension ms-dotnettools.vscode-dotnet-runtime&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Python ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
code --install-extension ms-python.debugpy&lt;br /&gt;
code --install-extension ms-python.python&lt;br /&gt;
code --install-extension ms-python.vscode-pylance&lt;br /&gt;
code --install-extension ms-python.vscode-python-envs&lt;br /&gt;
code --install-extension meta.pyrefly&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Go ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
code --install-extension golang.go&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LLVM / clangd ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
code --install-extension llvm-vs-code-extensions.vscode-clangd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== PowerShell ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
code --install-extension ms-vscode.powershell&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ruby ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
code --install-extension shopify.ruby-lsp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Containers ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
code --install-extension ms-azuretools.vscode-containers&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Cursor =&lt;br /&gt;
&lt;br /&gt;
Cursor به‌عنوان IDE دوم Agentic Development نگهداری می‌شود.&lt;br /&gt;
&lt;br /&gt;
Extensionهای ثبت‌شده:&lt;br /&gt;
&lt;br /&gt;
* Claude Code&lt;br /&gt;
* Claude Trace&lt;br /&gt;
* Claude Dev / Cline&lt;br /&gt;
* ChatGPT&lt;br /&gt;
* Claude Control&lt;br /&gt;
* Cursor Usage&lt;br /&gt;
* Remote SSH&lt;br /&gt;
* Remote WSL&lt;br /&gt;
* AG Manager&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;مهم:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
از دستور:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
code --install-extension&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
برای نصب Extension داخل Cursor استفاده نشود.&lt;br /&gt;
&lt;br /&gt;
Extensionها از UI خود Cursor نصب شوند.&lt;br /&gt;
&lt;br /&gt;
== Cursor Agent CLI ==&lt;br /&gt;
&lt;br /&gt;
Cursor Agent CLI یک ابزار مستقل از Extension است.&lt;br /&gt;
&lt;br /&gt;
بررسی:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
agent --version&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
اجرا:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
agent&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Google Antigravity =&lt;br /&gt;
&lt;br /&gt;
Antigravity به‌عنوان محیط Agentic مستقل برای آزمایش نگهداری می‌شود.&lt;br /&gt;
&lt;br /&gt;
قابلیت‌های موردنظر:&lt;br /&gt;
&lt;br /&gt;
* Agents&lt;br /&gt;
* Skills&lt;br /&gt;
* Plugins&lt;br /&gt;
* MCP&lt;br /&gt;
* Rules&lt;br /&gt;
* Hooks&lt;br /&gt;
&lt;br /&gt;
CLI:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
agy&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
بررسی:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
agy --version&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pluginها:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
agy plugin list&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
در Antigravity، Plugin و Skill با VS Code Extension یکسان نیستند.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Agentic OS Feature Matrix =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! قابلیت&lt;br /&gt;
! ابزار فعلی&lt;br /&gt;
! وضعیت&lt;br /&gt;
|-&lt;br /&gt;
| Multi-Agent UI&lt;br /&gt;
| Multicoder&lt;br /&gt;
| ✅&lt;br /&gt;
|-&lt;br /&gt;
| Claude Agent&lt;br /&gt;
| Claude Code&lt;br /&gt;
| ✅&lt;br /&gt;
|-&lt;br /&gt;
| Codex Agent&lt;br /&gt;
| OpenAI Codex&lt;br /&gt;
| ✅&lt;br /&gt;
|-&lt;br /&gt;
| Alternative Agent&lt;br /&gt;
| OpenCode&lt;br /&gt;
| ✅&lt;br /&gt;
|-&lt;br /&gt;
| Autonomous Agent&lt;br /&gt;
| Cline&lt;br /&gt;
| ✅&lt;br /&gt;
|-&lt;br /&gt;
| Skills Management&lt;br /&gt;
| BuySkills&lt;br /&gt;
| ✅&lt;br /&gt;
|-&lt;br /&gt;
| Agent Memory Experiment&lt;br /&gt;
| Crispy&lt;br /&gt;
| ✅ Experimental&lt;br /&gt;
|-&lt;br /&gt;
| Agent Observability&lt;br /&gt;
| Claude Trace&lt;br /&gt;
| ✅&lt;br /&gt;
|-&lt;br /&gt;
| Claude Management&lt;br /&gt;
| Claude Control Panel&lt;br /&gt;
| ✅&lt;br /&gt;
|-&lt;br /&gt;
| MCP&lt;br /&gt;
| Claude / Cline / Agent ecosystem&lt;br /&gt;
| 🟡 در حال توسعه&lt;br /&gt;
|-&lt;br /&gt;
| Parallel Agents&lt;br /&gt;
| Multicoder / Agent ecosystem&lt;br /&gt;
| 🟡 در حال ارزیابی&lt;br /&gt;
|-&lt;br /&gt;
| Git Worktrees&lt;br /&gt;
| Agent tooling&lt;br /&gt;
| 🟡 نیازمند استانداردسازی&lt;br /&gt;
|-&lt;br /&gt;
| Central Token Management&lt;br /&gt;
| —&lt;br /&gt;
| 🔴 نیازمند راهکار&lt;br /&gt;
|-&lt;br /&gt;
| Cross-Agent Usage Analytics&lt;br /&gt;
| —&lt;br /&gt;
| 🔴 نیازمند راهکار&lt;br /&gt;
|-&lt;br /&gt;
| Unified Memory&lt;br /&gt;
| Crispy / Future Memory Layer&lt;br /&gt;
| 🟡 آزمایشی&lt;br /&gt;
|-&lt;br /&gt;
| Central Orchestrator&lt;br /&gt;
| Claude / External Orchestrator&lt;br /&gt;
| 🟡 در حال ارزیابی&lt;br /&gt;
|-&lt;br /&gt;
| Automated Review Pipeline&lt;br /&gt;
| Claude + Codex&lt;br /&gt;
| 🟡 نیازمند Workflow&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Current Agentic Stack =&lt;br /&gt;
&lt;br /&gt;
در حال حاضر Stack اصلی به شکل زیر است:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
VS Code&lt;br /&gt;
│&lt;br /&gt;
├── Claude Code&lt;br /&gt;
├── OpenAI / ChatGPT&lt;br /&gt;
├── Codex Accounts Manager&lt;br /&gt;
├── OpenCode&lt;br /&gt;
├── Continue&lt;br /&gt;
├── Cline&lt;br /&gt;
│&lt;br /&gt;
├── Multicoder&lt;br /&gt;
│     └── Multi-Agent UI&lt;br /&gt;
│&lt;br /&gt;
├── BuySkills&lt;br /&gt;
│     └── Skills Management&lt;br /&gt;
│&lt;br /&gt;
├── Crispy&lt;br /&gt;
│     ├── Agent UI&lt;br /&gt;
│     ├── Orchestration Experiment&lt;br /&gt;
│     └── Memory Experiment&lt;br /&gt;
│&lt;br /&gt;
├── Claude Control Panel&lt;br /&gt;
└── Claude Trace&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Target Agentic Development OS =&lt;br /&gt;
&lt;br /&gt;
هدف نهایی:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
╔══════════════════════════════════════════════════╗&lt;br /&gt;
║             AGENTIC DEVELOPMENT OS               ║&lt;br /&gt;
╠══════════════════════════════════════════════════╣&lt;br /&gt;
║ UI                                               ║&lt;br /&gt;
║ VS Code / Multicoder / Specialized Dashboards    ║&lt;br /&gt;
╠══════════════════════════════════════════════════╣&lt;br /&gt;
║ ORCHESTRATOR                                     ║&lt;br /&gt;
║ Claude Code / Orchestration Engine               ║&lt;br /&gt;
╠══════════════════════════════════════════════════╣&lt;br /&gt;
║ AGENTS                                           ║&lt;br /&gt;
║ Claude │ Codex │ OpenCode │ Cline │ Others       ║&lt;br /&gt;
╠══════════════════════════════════════════════════╣&lt;br /&gt;
║ SKILLS                                           ║&lt;br /&gt;
║ BuySkills / Shared Skills Repository             ║&lt;br /&gt;
╠══════════════════════════════════════════════════╣&lt;br /&gt;
║ TOOL BUS                                         ║&lt;br /&gt;
║ MCP                                              ║&lt;br /&gt;
╠══════════════════════════════════════════════════╣&lt;br /&gt;
║ MEMORY                                           ║&lt;br /&gt;
║ Project / Architecture / Task / Agent Memory     ║&lt;br /&gt;
╠══════════════════════════════════════════════════╣&lt;br /&gt;
║ OBSERVABILITY                                    ║&lt;br /&gt;
║ Claude Trace / Usage / Logs / Agent Status       ║&lt;br /&gt;
╠══════════════════════════════════════════════════╣&lt;br /&gt;
║ ISOLATION                                        ║&lt;br /&gt;
║ Git Worktrees / Independent Agent Sessions       ║&lt;br /&gt;
╠══════════════════════════════════════════════════╣&lt;br /&gt;
║ QUALITY PIPELINE                                 ║&lt;br /&gt;
║ Test → Review → Security → Validation → PR       ║&lt;br /&gt;
╠══════════════════════════════════════════════════╣&lt;br /&gt;
║ COST / TOKEN MANAGEMENT                          ║&lt;br /&gt;
║ Central Usage / Limits / Routing / Optimization  ║&lt;br /&gt;
╚══════════════════════════════════════════════════╝&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Current Evaluation =&lt;br /&gt;
&lt;br /&gt;
با نصب Multicoder، BuySkills و Crispy، سه بخش مهم دیگر از Agentic OS پوشش داده شده‌اند:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! ابزار&lt;br /&gt;
! لایه&lt;br /&gt;
! ارزیابی فعلی&lt;br /&gt;
|-&lt;br /&gt;
| Multicoder&lt;br /&gt;
| Multi-Agent UI&lt;br /&gt;
| بسیار مهم&lt;br /&gt;
|-&lt;br /&gt;
| BuySkills&lt;br /&gt;
| Skills&lt;br /&gt;
| بسیار مهم&lt;br /&gt;
|-&lt;br /&gt;
| Crispy&lt;br /&gt;
| Memory / Agent UI / Orchestration&lt;br /&gt;
| آزمایشی&lt;br /&gt;
|-&lt;br /&gt;
| Claude Code&lt;br /&gt;
| Orchestrator / Agent&lt;br /&gt;
| اصلی&lt;br /&gt;
|-&lt;br /&gt;
| Codex&lt;br /&gt;
| Worker&lt;br /&gt;
| اصلی&lt;br /&gt;
|-&lt;br /&gt;
| OpenCode&lt;br /&gt;
| Alternative Worker&lt;br /&gt;
| اصلی / جایگزین&lt;br /&gt;
|-&lt;br /&gt;
| Cline&lt;br /&gt;
| Autonomous Worker&lt;br /&gt;
| مکمل&lt;br /&gt;
|-&lt;br /&gt;
| Claude Trace&lt;br /&gt;
| Observability&lt;br /&gt;
| مکمل&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Remaining Gaps =&lt;br /&gt;
&lt;br /&gt;
با وجود ابزارهای فعلی، هنوز چند بخش برای رسیدن به Agentic OS کامل نیاز به بررسی دارند:&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Central Token Management&#039;&#039;&#039; — مشاهده مصرف Claude، Codex، OpenCode و Providerهای مختلف در یک محل&lt;br /&gt;
# &#039;&#039;&#039;Token Optimization&#039;&#039;&#039; — انتخاب Agent/Model مناسب بر اساس هزینه و Context&lt;br /&gt;
# &#039;&#039;&#039;Unified Memory&#039;&#039;&#039; — حافظه مشترک و پایدار بین Agentها&lt;br /&gt;
# &#039;&#039;&#039;Central Orchestration&#039;&#039;&#039; — delegation واقعی و خودکار بین چند Agent&lt;br /&gt;
# &#039;&#039;&#039;Agent Health Monitoring&#039;&#039;&#039; — مشاهده وضعیت همه Agentها&lt;br /&gt;
# &#039;&#039;&#039;Unified Logs&#039;&#039;&#039; — Log و Trace مشترک&lt;br /&gt;
# &#039;&#039;&#039;Policy / Permissions&#039;&#039;&#039; — تعیین اینکه هر Agent اجازه چه عملیاتی دارد&lt;br /&gt;
# &#039;&#039;&#039;Automatic Git Worktree Management&#039;&#039;&#039; — isolation خودکار Workerها&lt;br /&gt;
# &#039;&#039;&#039;Quality Gates&#039;&#039;&#039; — جلوگیری از Merge قبل از Test/Security/Review&lt;br /&gt;
# &#039;&#039;&#039;Cross-Agent Handoff&#039;&#039;&#039; — تحویل Context و Task استاندارد بین Agentها&lt;br /&gt;
# &#039;&#039;&#039;Usage Analytics&#039;&#039;&#039; — مقایسه کیفیت، هزینه و سرعت Agentها&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Next Architecture Goal =&lt;br /&gt;
&lt;br /&gt;
مرحله بعدی نباید صرفاً نصب Extensionهای بیشتر باشد.&lt;br /&gt;
&lt;br /&gt;
هدف بعدی باید اتصال اجزای موجود باشد:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                  User&lt;br /&gt;
                    │&lt;br /&gt;
                    ▼&lt;br /&gt;
            Main Orchestrator&lt;br /&gt;
               Claude Code&lt;br /&gt;
                    │&lt;br /&gt;
          Task Decomposition&lt;br /&gt;
                    │&lt;br /&gt;
       ┌────────────┼────────────┐&lt;br /&gt;
       ▼            ▼            ▼&lt;br /&gt;
     Codex       OpenCode       Cline&lt;br /&gt;
       │            │            │&lt;br /&gt;
 Worktree A     Worktree B    Worktree C&lt;br /&gt;
       │            │            │&lt;br /&gt;
       └────────────┼────────────┘&lt;br /&gt;
                    ▼&lt;br /&gt;
               Test Agent&lt;br /&gt;
                    │&lt;br /&gt;
                    ▼&lt;br /&gt;
             Security Agent&lt;br /&gt;
                    │&lt;br /&gt;
                    ▼&lt;br /&gt;
              Review Agent&lt;br /&gt;
                    │&lt;br /&gt;
                    ▼&lt;br /&gt;
                Git / PR&lt;br /&gt;
&lt;br /&gt;
Shared Infrastructure:&lt;br /&gt;
&lt;br /&gt;
Skills     → BuySkills&lt;br /&gt;
Tools      → MCP&lt;br /&gt;
UI         → Multicoder&lt;br /&gt;
Memory     → Crispy / Memory Layer&lt;br /&gt;
Tracing    → Claude Trace&lt;br /&gt;
IDE        → VS Code&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;اصل طراحی:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
به‌جای وابستگی کامل به یک Agent، Agentic OS باید بتواند بهترین Agent را برای هر Task انتخاب کند و Agentها را از طریق Skills، MCP، Memory، Git و یک Orchestrator مشترک به یکدیگر متصل کند.&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Ai_Install_Extension&amp;diff=202</id>
		<title>Ai Install Extension</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Ai_Install_Extension&amp;diff=202"/>
		<updated>2026-08-21T09:11:46Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Installed IDE Extensions =&lt;br /&gt;
&lt;br /&gt;
این صفحه فهرست افزونه‌ها و ابزارهای نصب‌شده در محیط‌های توسعه زیر را نگهداری می‌کند:&lt;br /&gt;
&lt;br /&gt;
* Visual Studio Code&lt;br /&gt;
* Cursor&lt;br /&gt;
* Google Antigravity&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;راهنما:&#039;&#039;&#039; ✅ = نصب‌شده | — = نصب‌نشده&lt;br /&gt;
&lt;br /&gt;
== نکته مهم درباره نصب افزونه‌ها ==&lt;br /&gt;
&lt;br /&gt;
هر IDE باید با روش مخصوص خودش مدیریت شود.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VS Code&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
برای VS Code می‌توان از CLI رسمی خود VS Code استفاده کرد:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
code --install-extension EXTENSION_ID&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cursor&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
دستور &amp;lt;code&amp;gt;code --install-extension&amp;lt;/code&amp;gt; مربوط به VS Code است و نباید برای نصب افزونه داخل Cursor استفاده شود.&lt;br /&gt;
&lt;br /&gt;
برای افزونه‌های Cursor، در صورتی که Extension موردنظر در Marketplace/Extensions خود Cursor موجود باشد، آن را از داخل خود Cursor نصب کنید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Cursor&lt;br /&gt;
→ Extensions&lt;br /&gt;
→ Search Extension ID&lt;br /&gt;
→ Install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Google Antigravity&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
برای Antigravity نیز دستور &amp;lt;code&amp;gt;code --install-extension&amp;lt;/code&amp;gt; را به‌عنوان دستور نصب Extension در Antigravity استفاده نکنید.&lt;br /&gt;
&lt;br /&gt;
Extensionها و Pluginهای Antigravity باید از مکانیزم Extension/Plugin خود Antigravity نصب و مدیریت شوند.&lt;br /&gt;
&lt;br /&gt;
Antigravity CLI نیز سیستم Plugin و Skill مستقل خود را دارد.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Summary Table =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! #&lt;br /&gt;
! Extension ID&lt;br /&gt;
! Name&lt;br /&gt;
! VS Code&lt;br /&gt;
! Cursor&lt;br /&gt;
! Antigravity&lt;br /&gt;
|-&lt;br /&gt;
| 1 || &amp;lt;code&amp;gt;anthropic.claude-code&amp;lt;/code&amp;gt; || Claude Code || ✅ || ✅ || ✅&lt;br /&gt;
|-&lt;br /&gt;
| 2 || &amp;lt;code&amp;gt;anysphere.remote-ssh&amp;lt;/code&amp;gt; || Remote SSH (Anysphere) || — || ✅ || —&lt;br /&gt;
|-&lt;br /&gt;
| 3 || &amp;lt;code&amp;gt;anysphere.remote-wsl&amp;lt;/code&amp;gt; || Remote WSL (Anysphere) || — || ✅ || —&lt;br /&gt;
|-&lt;br /&gt;
| 4 || &amp;lt;code&amp;gt;bivipi.ag-manager&amp;lt;/code&amp;gt; || AG Manager || — || ✅ || ✅&lt;br /&gt;
|-&lt;br /&gt;
| 5 || &amp;lt;code&amp;gt;blackboxapp.blackbox&amp;lt;/code&amp;gt; || Blackbox AI || — || — || —&lt;br /&gt;
|-&lt;br /&gt;
| 6 || &amp;lt;code&amp;gt;blackboxapp.blackboxagent&amp;lt;/code&amp;gt; || Blackbox Agent || — || — || —&lt;br /&gt;
|-&lt;br /&gt;
| 7 || &amp;lt;code&amp;gt;continue.continue&amp;lt;/code&amp;gt; || Continue || ✅ || — || —&lt;br /&gt;
|-&lt;br /&gt;
| 8 || &amp;lt;code&amp;gt;erennyuksell.ag-multi-account-switchboard&amp;lt;/code&amp;gt; || AG Multi Account Switchboard || — || — || ✅&lt;br /&gt;
|-&lt;br /&gt;
| 9 || &amp;lt;code&amp;gt;golang.go&amp;lt;/code&amp;gt; || Go || ✅ || — || ✅&lt;br /&gt;
|-&lt;br /&gt;
| 10 || &amp;lt;code&amp;gt;leandrosilvaferreira.claude-agents-monitor&amp;lt;/code&amp;gt; || Claude Agents Monitor || — || — || ✅&lt;br /&gt;
|-&lt;br /&gt;
| 11 || &amp;lt;code&amp;gt;llvm-vs-code-extensions.vscode-clangd&amp;lt;/code&amp;gt; || clangd || ✅ || — || ✅&lt;br /&gt;
|-&lt;br /&gt;
| 12 || &amp;lt;code&amp;gt;lucasdonordeste.claude-control&amp;lt;/code&amp;gt; || Claude Control || — || ✅ || ✅&lt;br /&gt;
|-&lt;br /&gt;
| 13 || &amp;lt;code&amp;gt;lucasdonordeste.claude-control-panel&amp;lt;/code&amp;gt; || Claude Control Panel || ✅ || — || —&lt;br /&gt;
|-&lt;br /&gt;
| 14 || &amp;lt;code&amp;gt;meta.pyrefly&amp;lt;/code&amp;gt; || Pyrefly (Meta) || ✅ || — || ✅&lt;br /&gt;
|-&lt;br /&gt;
| 15 || &amp;lt;code&amp;gt;ms-azuretools.vscode-containers&amp;lt;/code&amp;gt; || Dev Containers || ✅ || — || —&lt;br /&gt;
|-&lt;br /&gt;
| 16 || &amp;lt;code&amp;gt;ms-dotnettools.csdevkit&amp;lt;/code&amp;gt; || C# Dev Kit || ✅ || — || —&lt;br /&gt;
|-&lt;br /&gt;
| 17 || &amp;lt;code&amp;gt;ms-dotnettools.csharp&amp;lt;/code&amp;gt; || C# (Microsoft) || ✅ || — || —&lt;br /&gt;
|-&lt;br /&gt;
| 18 || &amp;lt;code&amp;gt;ms-dotnettools.vscode-dotnet-runtime&amp;lt;/code&amp;gt; || .NET Runtime || ✅ || — || —&lt;br /&gt;
|-&lt;br /&gt;
| 19 || &amp;lt;code&amp;gt;ms-python.debugpy&amp;lt;/code&amp;gt; || Python Debugger || ✅ || — || ✅&lt;br /&gt;
|-&lt;br /&gt;
| 20 || &amp;lt;code&amp;gt;ms-python.python&amp;lt;/code&amp;gt; || Python || ✅ || — || ✅&lt;br /&gt;
|-&lt;br /&gt;
| 21 || &amp;lt;code&amp;gt;ms-python.vscode-pylance&amp;lt;/code&amp;gt; || Pylance || ✅ || — || —&lt;br /&gt;
|-&lt;br /&gt;
| 22 || &amp;lt;code&amp;gt;ms-python.vscode-python-envs&amp;lt;/code&amp;gt; || Python Environments || ✅ || — || ✅&lt;br /&gt;
|-&lt;br /&gt;
| 23 || &amp;lt;code&amp;gt;ms-vscode.powershell&amp;lt;/code&amp;gt; || PowerShell || ✅ || — || ✅&lt;br /&gt;
|-&lt;br /&gt;
| 24 || &amp;lt;code&amp;gt;nrigalle.claude-trace&amp;lt;/code&amp;gt; || Claude Trace || ✅ || ✅ || ✅&lt;br /&gt;
|-&lt;br /&gt;
| 25 || &amp;lt;code&amp;gt;openai.chatgpt&amp;lt;/code&amp;gt; || ChatGPT / OpenAI || ✅ || ✅ || ✅&lt;br /&gt;
|-&lt;br /&gt;
| 26 || &amp;lt;code&amp;gt;saoudrizwan.claude-dev&amp;lt;/code&amp;gt; || Claude Dev / Cline || ✅ || ✅ || ✅&lt;br /&gt;
|-&lt;br /&gt;
| 27 || &amp;lt;code&amp;gt;shopify.ruby-lsp&amp;lt;/code&amp;gt; || Ruby LSP || ✅ || — || ✅&lt;br /&gt;
|-&lt;br /&gt;
| 28 || &amp;lt;code&amp;gt;sst-dev.opencode&amp;lt;/code&amp;gt; || OpenCode || ✅ || — || —&lt;br /&gt;
|-&lt;br /&gt;
| 29 || &amp;lt;code&amp;gt;tanishqkancharla.opencode-vscode&amp;lt;/code&amp;gt; || OpenCode VS Code Integration || ✅ || — || —&lt;br /&gt;
|-&lt;br /&gt;
| 30 || &amp;lt;code&amp;gt;wannanbigpig.codex-accounts-manager&amp;lt;/code&amp;gt; || Codex Accounts Manager || ✅ || — || —&lt;br /&gt;
|-&lt;br /&gt;
| 31 || &amp;lt;code&amp;gt;yossisa.cursor-usage&amp;lt;/code&amp;gt; || Cursor Usage || — || ✅ || —&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Visual Studio Code =&lt;br /&gt;
&lt;br /&gt;
== نصب افزونه‌ها ==&lt;br /&gt;
&lt;br /&gt;
VS Code دارای CLI رسمی برای نصب Extension است.&lt;br /&gt;
&lt;br /&gt;
دستور عمومی:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
code --install-extension EXTENSION_ID&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Extensions نصب‌شده در VS Code ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
code --install-extension anthropic.claude-code&lt;br /&gt;
code --install-extension continue.continue&lt;br /&gt;
code --install-extension golang.go&lt;br /&gt;
code --install-extension llvm-vs-code-extensions.vscode-clangd&lt;br /&gt;
code --install-extension lucasdonordeste.claude-control-panel&lt;br /&gt;
code --install-extension meta.pyrefly&lt;br /&gt;
code --install-extension ms-azuretools.vscode-containers&lt;br /&gt;
code --install-extension ms-dotnettools.csdevkit&lt;br /&gt;
code --install-extension ms-dotnettools.csharp&lt;br /&gt;
code --install-extension ms-dotnettools.vscode-dotnet-runtime&lt;br /&gt;
code --install-extension ms-python.debugpy&lt;br /&gt;
code --install-extension ms-python.python&lt;br /&gt;
code --install-extension ms-python.vscode-pylance&lt;br /&gt;
code --install-extension ms-python.vscode-python-envs&lt;br /&gt;
code --install-extension ms-vscode.powershell&lt;br /&gt;
code --install-extension nrigalle.claude-trace&lt;br /&gt;
code --install-extension openai.chatgpt&lt;br /&gt;
code --install-extension saoudrizwan.claude-dev&lt;br /&gt;
code --install-extension shopify.ruby-lsp&lt;br /&gt;
code --install-extension sst-dev.opencode&lt;br /&gt;
code --install-extension tanishqkancharla.opencode-vscode&lt;br /&gt;
code --install-extension wannanbigpig.codex-accounts-manager&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== مشاهده افزونه‌های نصب‌شده ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
code --list-extensions&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Cursor =&lt;br /&gt;
&lt;br /&gt;
Cursor یک IDE مستقل است.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;نکته مهم:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
دستور زیر:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
code --install-extension EXTENSION_ID&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
افزونه را در VS Code نصب می‌کند و نباید در مستندات به‌عنوان دستور نصب Extension در Cursor معرفی شود.&lt;br /&gt;
&lt;br /&gt;
== نصب Extension در Cursor ==&lt;br /&gt;
&lt;br /&gt;
روش مطمئن:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Cursor&lt;br /&gt;
→ Extensions&lt;br /&gt;
→ Search by Extension ID&lt;br /&gt;
→ Install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Extensions ثبت‌شده برای Cursor ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;anthropic.claude-code&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;anysphere.remote-ssh&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;anysphere.remote-wsl&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;bivipi.ag-manager&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;lucasdonordeste.claude-control&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;nrigalle.claude-trace&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;openai.chatgpt&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;saoudrizwan.claude-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;yossisa.cursor-usage&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cursor Agent CLI ==&lt;br /&gt;
&lt;br /&gt;
Cursor Agent CLI با Extensionهای Cursor تفاوت دارد.&lt;br /&gt;
&lt;br /&gt;
برای نصب Cursor Agent CLI روی Windows PowerShell:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
irm &#039;https://cursor.com/install?win32=true&#039; | iex&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
بررسی نصب:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
agent --version&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
اجرای Cursor Agent:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
agent&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
به‌روزرسانی:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
agent update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;توجه:&#039;&#039;&#039; Cursor Agent CLI ابزار Agent خط فرمان Cursor است و جایگزین دستور نصب Extension داخل Cursor نیست.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Google Antigravity =&lt;br /&gt;
&lt;br /&gt;
Google Antigravity نیز محیط Agentic مستقل خود را دارد.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;نکته مهم:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
از دستور:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
code --install-extension EXTENSION_ID&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
به‌عنوان دستور نصب Extension داخل Antigravity استفاده نکنید.&lt;br /&gt;
&lt;br /&gt;
این دستور CLI مربوط به VS Code است.&lt;br /&gt;
&lt;br /&gt;
== Extensions ثبت‌شده برای Antigravity ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;anthropic.claude-code&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;bivipi.ag-manager&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;erennyuksell.ag-multi-account-switchboard&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;golang.go&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;leandrosilvaferreira.claude-agents-monitor&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;llvm-vs-code-extensions.vscode-clangd&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;lucasdonordeste.claude-control&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;meta.pyrefly&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ms-python.debugpy&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ms-python.python&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ms-python.vscode-python-envs&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ms-vscode.powershell&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;nrigalle.claude-trace&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;openai.chatgpt&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;saoudrizwan.claude-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;shopify.ruby-lsp&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Antigravity CLI ==&lt;br /&gt;
&lt;br /&gt;
Google برای Antigravity یک CLI مستقل با نام &amp;lt;code&amp;gt;agy&amp;lt;/code&amp;gt; ارائه می‌کند.&lt;br /&gt;
&lt;br /&gt;
نصب رسمی روی Windows PowerShell:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
irm https://antigravity.google/cli/install.ps1 | iex&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
مسیر پیش‌فرض:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\Users\&amp;lt;username&amp;gt;\AppData\Local\agy\bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
بعد از نصب:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
agy --version&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
اجرای Antigravity:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
agy&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Antigravity Plugins ==&lt;br /&gt;
&lt;br /&gt;
Antigravity CLI دارای Plugin System مستقل است.&lt;br /&gt;
&lt;br /&gt;
مشاهده Pluginها:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
agy plugin list&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
نصب Plugin:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
agy plugin install PATH&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Antigravity Skills ==&lt;br /&gt;
&lt;br /&gt;
Antigravity علاوه بر Plugin از Skills نیز پشتیبانی می‌کند.&lt;br /&gt;
&lt;br /&gt;
Pluginها می‌توانند شامل موارد زیر باشند:&lt;br /&gt;
&lt;br /&gt;
* Skills&lt;br /&gt;
* Agents&lt;br /&gt;
* Rules&lt;br /&gt;
* MCP Servers&lt;br /&gt;
* Hooks&lt;br /&gt;
&lt;br /&gt;
بنابراین Plugin/Skill در Antigravity با VS Code Extension یک مفهوم یکسان نیست.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= جزئیات مهم AI Extensions =&lt;br /&gt;
&lt;br /&gt;
== Claude Code ==&lt;br /&gt;
&lt;br /&gt;
Extension ID:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
anthropic.claude-code&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
در محیط‌های ثبت‌شده:&lt;br /&gt;
&lt;br /&gt;
* VS Code: ✅&lt;br /&gt;
* Cursor: ✅&lt;br /&gt;
* Antigravity: ✅&lt;br /&gt;
&lt;br /&gt;
در VS Code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
code --install-extension anthropic.claude-code&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
برای Cursor و Antigravity، Extension را از داخل همان IDE مدیریت کنید و از دستور &amp;lt;code&amp;gt;code&amp;lt;/code&amp;gt; به‌عنوان دستور نصب آن IDE استفاده نکنید.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Continue ==&lt;br /&gt;
&lt;br /&gt;
Extension ID:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
continue.continue&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
VS Code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
code --install-extension continue.continue&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Continue یک محیط open-source برای استفاده از مدل‌های AI در workflow توسعه است.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== OpenAI / ChatGPT ==&lt;br /&gt;
&lt;br /&gt;
Extension ID:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openai.chatgpt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
VS Code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
code --install-extension openai.chatgpt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
در وضعیت ثبت‌شده:&lt;br /&gt;
&lt;br /&gt;
* VS Code: ✅&lt;br /&gt;
* Cursor: ✅&lt;br /&gt;
* Antigravity: ✅&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Claude Dev / Cline ==&lt;br /&gt;
&lt;br /&gt;
Extension ID:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
saoudrizwan.claude-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
VS Code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
code --install-extension saoudrizwan.claude-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
در وضعیت ثبت‌شده:&lt;br /&gt;
&lt;br /&gt;
* VS Code: ✅&lt;br /&gt;
* Cursor: ✅&lt;br /&gt;
* Antigravity: ✅&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Claude Trace ==&lt;br /&gt;
&lt;br /&gt;
Extension ID:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nrigalle.claude-trace&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
VS Code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
code --install-extension nrigalle.claude-trace&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
برای مشاهده و Trace کردن فعالیت‌های Claude استفاده می‌شود.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== OpenCode ==&lt;br /&gt;
&lt;br /&gt;
دو Extension مرتبط در VS Code ثبت شده است:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sst-dev.opencode&lt;br /&gt;
tanishqkancharla.opencode-vscode&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
نصب:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
code --install-extension sst-dev.opencode&lt;br /&gt;
code --install-extension tanishqkancharla.opencode-vscode&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Codex Accounts Manager ==&lt;br /&gt;
&lt;br /&gt;
Extension ID:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wannanbigpig.codex-accounts-manager&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
نصب در VS Code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
code --install-extension wannanbigpig.codex-accounts-manager&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
برای مدیریت حساب‌های Codex استفاده می‌شود.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Development Extensions =&lt;br /&gt;
&lt;br /&gt;
== .NET / C# ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
code --install-extension ms-dotnettools.csdevkit&lt;br /&gt;
code --install-extension ms-dotnettools.csharp&lt;br /&gt;
code --install-extension ms-dotnettools.vscode-dotnet-runtime&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Python ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
code --install-extension ms-python.debugpy&lt;br /&gt;
code --install-extension ms-python.python&lt;br /&gt;
code --install-extension ms-python.vscode-pylance&lt;br /&gt;
code --install-extension ms-python.vscode-python-envs&lt;br /&gt;
code --install-extension meta.pyrefly&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Go ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
code --install-extension golang.go&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== C / C++ / LLVM ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
code --install-extension llvm-vs-code-extensions.vscode-clangd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== PowerShell ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
code --install-extension ms-vscode.powershell&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ruby ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
code --install-extension shopify.ruby-lsp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Containers ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
code --install-extension ms-azuretools.vscode-containers&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= تفاوت Extension، Agent CLI و Plugin =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! نوع&lt;br /&gt;
! نمونه&lt;br /&gt;
! کاربرد&lt;br /&gt;
|-&lt;br /&gt;
| IDE Extension&lt;br /&gt;
| &amp;lt;code&amp;gt;anthropic.claude-code&amp;lt;/code&amp;gt;&lt;br /&gt;
| ادغام قابلیت با IDE&lt;br /&gt;
|-&lt;br /&gt;
| Agent CLI&lt;br /&gt;
| &amp;lt;code&amp;gt;agent&amp;lt;/code&amp;gt;&lt;br /&gt;
| اجرای Cursor Agent از Terminal&lt;br /&gt;
|-&lt;br /&gt;
| Agent CLI&lt;br /&gt;
| &amp;lt;code&amp;gt;agy&amp;lt;/code&amp;gt;&lt;br /&gt;
| اجرای Google Antigravity Agent از Terminal&lt;br /&gt;
|-&lt;br /&gt;
| Antigravity Plugin&lt;br /&gt;
| &amp;lt;code&amp;gt;agy plugin ...&amp;lt;/code&amp;gt;&lt;br /&gt;
| افزودن Skills، Agents، Rules، MCP و Hooks&lt;br /&gt;
|-&lt;br /&gt;
| VS Code CLI&lt;br /&gt;
| &amp;lt;code&amp;gt;code --install-extension&amp;lt;/code&amp;gt;&lt;br /&gt;
| مدیریت Extensionهای Visual Studio Code&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= نکات مدیریتی =&lt;br /&gt;
&lt;br /&gt;
* دستور &amp;lt;code&amp;gt;code --install-extension&amp;lt;/code&amp;gt; فقط در بخش VS Code استفاده شود.&lt;br /&gt;
* برای Cursor، Extensionها از محیط Extensions خود Cursor نصب و مدیریت شوند.&lt;br /&gt;
* Cursor Agent CLI با Extensionهای Cursor متفاوت است.&lt;br /&gt;
* برای Antigravity، Extension/Pluginها از مکانیزم خود Antigravity مدیریت شوند.&lt;br /&gt;
* Antigravity CLI با دستور &amp;lt;code&amp;gt;agy&amp;lt;/code&amp;gt; اجرا می‌شود.&lt;br /&gt;
* Antigravity Plugin و VS Code Extension دو سیستم متفاوت هستند.&lt;br /&gt;
* قبل از افزودن Extension جدید، ابتدا مشخص شود هدف VS Code، Cursor یا Antigravity است.&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Ai_Agentic_os&amp;diff=201</id>
		<title>Ai Agentic os</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Ai_Agentic_os&amp;diff=201"/>
		<updated>2026-08-20T22:55:21Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Agentic Development OS برای Windows =&lt;br /&gt;
&lt;br /&gt;
این صفحه مستندات محیط Agentic Development شخصی من برای مدیریت، مقایسه و ارکستریشن Coding Agentها است.&lt;br /&gt;
&lt;br /&gt;
هدف نهایی ساخت محیطی شبیه یک:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Agentic Development Operating System&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
است که بتواند Agentهای مختلف را از یک Control Plane مدیریت کند.&lt;br /&gt;
&lt;br /&gt;
== اهداف اصلی ==&lt;br /&gt;
&lt;br /&gt;
* مدیریت چند Coding Agent&lt;br /&gt;
* رابط کاربری مناسب&lt;br /&gt;
* پشتیبانی Native از Windows&lt;br /&gt;
* Parallel Agent Execution&lt;br /&gt;
* Git Worktree Isolation&lt;br /&gt;
* Multi-Agent Orchestration&lt;br /&gt;
* Skills&lt;br /&gt;
* Persistent Memory&lt;br /&gt;
* Token / Cost Management&lt;br /&gt;
* Context Optimization&lt;br /&gt;
* Automated Build / Test&lt;br /&gt;
* Security Review&lt;br /&gt;
* LLM-as-a-Judge&lt;br /&gt;
* Human Approval&lt;br /&gt;
* Commit / Pull Request&lt;br /&gt;
* کمترین تعداد نرم‌افزار ممکن&lt;br /&gt;
&lt;br /&gt;
== Coding Agentهای مورد استفاده ==&lt;br /&gt;
&lt;br /&gt;
Agentهای اصلی:&lt;br /&gt;
&lt;br /&gt;
* Claude Code&lt;br /&gt;
* OpenAI Codex CLI&lt;br /&gt;
* Cursor Agent&lt;br /&gt;
* OpenCode&lt;br /&gt;
* Google Antigravity / agy&lt;br /&gt;
* Freebuff&lt;br /&gt;
&lt;br /&gt;
Agentهای جانبی:&lt;br /&gt;
&lt;br /&gt;
* Gemini CLI&lt;br /&gt;
* GitHub Copilot&lt;br /&gt;
* Qwen&lt;br /&gt;
* Kimi&lt;br /&gt;
* Pi&lt;br /&gt;
* Custom CLI Agents&lt;br /&gt;
* MCP Agents&lt;br /&gt;
* ACP Agents&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= معماری هدف =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                    Agentic Development OS&lt;br /&gt;
                              |&lt;br /&gt;
                         Unified UI&lt;br /&gt;
                              |&lt;br /&gt;
                +-------------+-------------+&lt;br /&gt;
                |             |             |&lt;br /&gt;
              Skills        Memory       Projects&lt;br /&gt;
                |             |             |&lt;br /&gt;
                +-------------+-------------+&lt;br /&gt;
                              |&lt;br /&gt;
                       Context Manager&lt;br /&gt;
                              |&lt;br /&gt;
                        Token Manager&lt;br /&gt;
                              |&lt;br /&gt;
                        Orchestrator&lt;br /&gt;
                              |&lt;br /&gt;
       +----------+-----------+-----------+----------+&lt;br /&gt;
       |          |           |           |          |&lt;br /&gt;
     Claude     Codex       Cursor     OpenCode     Agy&lt;br /&gt;
       |          |           |           |          |&lt;br /&gt;
       +----------+-----------+-----------+----------+&lt;br /&gt;
                              |&lt;br /&gt;
                        Git Worktrees&lt;br /&gt;
                              |&lt;br /&gt;
                    Candidate Solutions&lt;br /&gt;
                              |&lt;br /&gt;
              +---------------+---------------+&lt;br /&gt;
              |               |               |&lt;br /&gt;
            Build           Tests          Security&lt;br /&gt;
              |               |               |&lt;br /&gt;
              +---------------+---------------+&lt;br /&gt;
                              |&lt;br /&gt;
                         LLM Judge&lt;br /&gt;
                              |&lt;br /&gt;
                       Ranked Results&lt;br /&gt;
                              |&lt;br /&gt;
                       Human Approval&lt;br /&gt;
                              |&lt;br /&gt;
                        Commit / PR&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= نرم‌افزارهای نصب‌شده =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! نرم‌افزار&lt;br /&gt;
! دسته&lt;br /&gt;
! UI&lt;br /&gt;
! Windows&lt;br /&gt;
! نقش اصلی&lt;br /&gt;
! وضعیت&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Emdash&#039;&#039;&#039;&lt;br /&gt;
| Agentic Development Environment&lt;br /&gt;
| Desktop&lt;br /&gt;
| بله&lt;br /&gt;
| Control Plane / Parallel Agents&lt;br /&gt;
| نصب شده&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Kandev&#039;&#039;&#039;&lt;br /&gt;
| Agentic Development Environment / Orchestrator&lt;br /&gt;
| Web / Desktop&lt;br /&gt;
| بله&lt;br /&gt;
| Workflow Orchestration&lt;br /&gt;
| نصب شده&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;OpenHands Agent Canvas&#039;&#039;&#039;&lt;br /&gt;
| Agent Platform&lt;br /&gt;
| Web&lt;br /&gt;
| بله&lt;br /&gt;
| Agent Platform / Automation&lt;br /&gt;
| نصب شده&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Orca&#039;&#039;&#039;&lt;br /&gt;
| Agent Development Environment&lt;br /&gt;
| Desktop&lt;br /&gt;
| بله&lt;br /&gt;
| Multi-Agent Control Plane&lt;br /&gt;
| نصب شده&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Codbash&#039;&#039;&#039;&lt;br /&gt;
| Agent Control Room&lt;br /&gt;
| Web&lt;br /&gt;
| بله&lt;br /&gt;
| Sessions / Analytics&lt;br /&gt;
| نصب شده&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Claw Orchestrator&#039;&#039;&#039;&lt;br /&gt;
| Agent Runtime / Orchestrator&lt;br /&gt;
| Web Dashboard&lt;br /&gt;
| بله&lt;br /&gt;
| Persistent Multi-Agent Runtime&lt;br /&gt;
| نصب شده&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Agent Orchestrator (AO)&#039;&#039;&#039;&lt;br /&gt;
| Agent Orchestrator&lt;br /&gt;
| Desktop&lt;br /&gt;
| بله&lt;br /&gt;
| Parallel Agent Workflows&lt;br /&gt;
| نصب شده؛ دارای مشکل Daemon در تست Windows&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Promptfoo&#039;&#039;&#039;&lt;br /&gt;
| Evaluation / Judge Layer&lt;br /&gt;
| CLI / Web&lt;br /&gt;
| بله&lt;br /&gt;
| LLM-as-a-Judge / Evaluation&lt;br /&gt;
| نصب شده&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= 1. Emdash =&lt;br /&gt;
&lt;br /&gt;
== معرفی ==&lt;br /&gt;
&lt;br /&gt;
Emdash یک Open-Source Agentic Development Environment یا ADE است.&lt;br /&gt;
&lt;br /&gt;
هدف اصلی آن اجرای چند Coding Agent به صورت Parallel و قرار دادن هر Task در Git Worktree مستقل است.&lt;br /&gt;
&lt;br /&gt;
Emdash برای استفاده روزانه به عنوان Control Plane یکی از گزینه‌های اصلی این بررسی است.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== وب‌سایت و منابع ==&lt;br /&gt;
&lt;br /&gt;
* Website:&lt;br /&gt;
https://emdash.sh/&lt;br /&gt;
&lt;br /&gt;
* GitHub:&lt;br /&gt;
https://github.com/generalaction/emdash&lt;br /&gt;
&lt;br /&gt;
* Releases:&lt;br /&gt;
https://github.com/generalaction/emdash/releases&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== نصب Windows ==&lt;br /&gt;
&lt;br /&gt;
نسخه Windows به صورت Installer و Portable ارائه می‌شود.&lt;br /&gt;
&lt;br /&gt;
Windows Installer:&lt;br /&gt;
&lt;br /&gt;
https://github.com/generalaction/emdash/releases/latest&lt;br /&gt;
&lt;br /&gt;
نسخه x64 را نصب کنید.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Agent Detection ==&lt;br /&gt;
&lt;br /&gt;
Emdash می‌تواند CLI Agentهای نصب‌شده را شناسایی کند.&lt;br /&gt;
&lt;br /&gt;
از جمله:&lt;br /&gt;
&lt;br /&gt;
* Claude Code&lt;br /&gt;
* OpenAI Codex&lt;br /&gt;
* Cursor&lt;br /&gt;
* OpenCode&lt;br /&gt;
* Amp&lt;br /&gt;
* Devin&lt;br /&gt;
* Qwen Code&lt;br /&gt;
* Droid&lt;br /&gt;
* GitHub Copilot&lt;br /&gt;
* سایر Providerهای پشتیبانی‌شده&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== معماری ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                    Emdash&lt;br /&gt;
                       |&lt;br /&gt;
                Desktop UI&lt;br /&gt;
                       |&lt;br /&gt;
                  Projects&lt;br /&gt;
                       |&lt;br /&gt;
                    Tasks&lt;br /&gt;
                       |&lt;br /&gt;
          +------------+------------+&lt;br /&gt;
          |            |            |&lt;br /&gt;
        Claude       Codex        Cursor&lt;br /&gt;
          |            |            |&lt;br /&gt;
       OpenCode      Gemini       Others&lt;br /&gt;
          |            |            |&lt;br /&gt;
          +------------+------------+&lt;br /&gt;
                       |&lt;br /&gt;
                 Git Worktrees&lt;br /&gt;
                       |&lt;br /&gt;
              Candidate Solutions&lt;br /&gt;
                       |&lt;br /&gt;
               Diff / CI Checks&lt;br /&gt;
                       |&lt;br /&gt;
                Human Review&lt;br /&gt;
                       |&lt;br /&gt;
                  PR / Merge&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Git Worktree ==&lt;br /&gt;
&lt;br /&gt;
یکی از مهم‌ترین قابلیت‌های Emdash جداسازی Taskها با Worktree است.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Repository&lt;br /&gt;
 |&lt;br /&gt;
 +-- main&lt;br /&gt;
 |&lt;br /&gt;
 +-- worktree-task-1&lt;br /&gt;
 |&lt;br /&gt;
 +-- worktree-task-2&lt;br /&gt;
 |&lt;br /&gt;
 +-- worktree-task-3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
این قابلیت اجازه می‌دهد چند Agent بدون overwrite کردن فایل‌های یکدیگر روی یک Repository کار کنند.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== قابلیت‌های مهم ==&lt;br /&gt;
&lt;br /&gt;
* Windows Desktop&lt;br /&gt;
* Parallel Coding Agents&lt;br /&gt;
* Automatic Git Worktrees&lt;br /&gt;
* Diff Review&lt;br /&gt;
* CI Checks&lt;br /&gt;
* Pull Requests&lt;br /&gt;
* Remote Projects&lt;br /&gt;
* SSH/SFTP&lt;br /&gt;
* MCP&lt;br /&gt;
* Skills&lt;br /&gt;
* Multiple Projects&lt;br /&gt;
* Local-first architecture&lt;br /&gt;
* SQLite local state&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Privacy ==&lt;br /&gt;
&lt;br /&gt;
Emdash به صورت Local-first طراحی شده است.&lt;br /&gt;
&lt;br /&gt;
State برنامه در SQLite محلی ذخیره می‌شود.&lt;br /&gt;
&lt;br /&gt;
خود Coding Agentها ممکن است اطلاعات را طبق سیاست Provider خود به سرویس Cloud ارسال کنند.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== نقاط قوت ==&lt;br /&gt;
&lt;br /&gt;
* UI مناسب&lt;br /&gt;
* Windows&lt;br /&gt;
* نصب ساده&lt;br /&gt;
* Agent Coverage بالا&lt;br /&gt;
* Worktree Isolation&lt;br /&gt;
* Parallel Development&lt;br /&gt;
* Diff Review&lt;br /&gt;
* CI Integration&lt;br /&gt;
* PR Workflow&lt;br /&gt;
* MCP&lt;br /&gt;
* Local-first&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== نقاط ضعف نسبت به Agentic OS هدف ==&lt;br /&gt;
&lt;br /&gt;
* Agent-to-Agent Delegation محدودتر از Kandev&lt;br /&gt;
* Persistent Semantic Memory کامل ندارد&lt;br /&gt;
* Token Manager پیشرفته ندارد&lt;br /&gt;
* Context Optimization مرکزی محدود است&lt;br /&gt;
* LLM-as-a-Judge داخلی کامل ندارد&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== نقش پیشنهادی ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Primary Development Control Plane&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= 2. Kandev =&lt;br /&gt;
&lt;br /&gt;
== معرفی ==&lt;br /&gt;
&lt;br /&gt;
Kandev یک AI Kanban و Development Environment برای Orchestration چند Agent است.&lt;br /&gt;
&lt;br /&gt;
برخلاف ابزارهایی که فقط Agentها را Parallel اجرا می‌کنند، Kandev روی Workflow و Task Orchestration نیز تمرکز دارد.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== منابع ==&lt;br /&gt;
&lt;br /&gt;
* Website:&lt;br /&gt;
https://kandev.ai/&lt;br /&gt;
&lt;br /&gt;
* GitHub:&lt;br /&gt;
https://github.com/kdlbs/kandev&lt;br /&gt;
&lt;br /&gt;
* Releases:&lt;br /&gt;
https://github.com/kdlbs/kandev/releases&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== نصب با npm ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
npm install -g kandev@latest&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
بررسی:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
kandev --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
اجرا:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
kandev&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== اجرا بدون نصب Global ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
npx kandev@latest&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Windows Desktop ==&lt;br /&gt;
&lt;br /&gt;
Kandev Desktop از Windows x64 پشتیبانی می‌کند.&lt;br /&gt;
&lt;br /&gt;
Desktop Application مبتنی بر Tauri است.&lt;br /&gt;
&lt;br /&gt;
در Windows به Microsoft WebView2 Runtime نیاز دارد.&lt;br /&gt;
&lt;br /&gt;
Desktop App، Runtime مورد نیاز Kandev را همراه خود دارد و برای اجرای معمول Desktop به Node.js نیاز ندارد.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Executors ==&lt;br /&gt;
&lt;br /&gt;
Kandev چند روش اجرای Agent دارد:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Executor&lt;br /&gt;
! کاربرد&lt;br /&gt;
|-&lt;br /&gt;
| Local Process&lt;br /&gt;
| اجرای Agent مستقیماً روی سیستم&lt;br /&gt;
|-&lt;br /&gt;
| Docker&lt;br /&gt;
| اجرای Agent داخل Container&lt;br /&gt;
|-&lt;br /&gt;
| SSH&lt;br /&gt;
| اجرای Agent روی Remote Server&lt;br /&gt;
|-&lt;br /&gt;
| Cloud Executor&lt;br /&gt;
| اجرای Agent در محیط Cloud پشتیبانی‌شده&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== معماری ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                    Kandev&lt;br /&gt;
                       |&lt;br /&gt;
                Web / Desktop UI&lt;br /&gt;
                       |&lt;br /&gt;
                    Kanban&lt;br /&gt;
                       |&lt;br /&gt;
                 Orchestrator&lt;br /&gt;
                       |&lt;br /&gt;
           Workflow / Task Steps&lt;br /&gt;
                       |&lt;br /&gt;
       +---------------+---------------+&lt;br /&gt;
       |               |               |&lt;br /&gt;
    Agent A          Agent B         Agent C&lt;br /&gt;
       |               |               |&lt;br /&gt;
       +---------------+---------------+&lt;br /&gt;
                       |&lt;br /&gt;
                 Git Worktrees&lt;br /&gt;
                       |&lt;br /&gt;
              Build / Review / PR&lt;br /&gt;
                       |&lt;br /&gt;
                 Human Gates&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== قابلیت مهم: Workflow Orchestration ==&lt;br /&gt;
&lt;br /&gt;
Kandev برای Taskهای چندمرحله‌ای مناسب است.&lt;br /&gt;
&lt;br /&gt;
مثال:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Feature Request&lt;br /&gt;
      |&lt;br /&gt;
    Planner&lt;br /&gt;
      |&lt;br /&gt;
  Architect&lt;br /&gt;
      |&lt;br /&gt;
 +----+----+&lt;br /&gt;
 |         |&lt;br /&gt;
Claude   Codex&lt;br /&gt;
 |         |&lt;br /&gt;
 +----+----+&lt;br /&gt;
      |&lt;br /&gt;
    Tests&lt;br /&gt;
      |&lt;br /&gt;
 Security Review&lt;br /&gt;
      |&lt;br /&gt;
 Human Approval&lt;br /&gt;
      |&lt;br /&gt;
      PR&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Agent Integration ==&lt;br /&gt;
&lt;br /&gt;
Kandev از ACP و Agentهای مختلف پشتیبانی می‌کند.&lt;br /&gt;
&lt;br /&gt;
Agentها می‌توانند بسته به Workflow در Stepهای مختلف استفاده شوند.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Multi Repository ==&lt;br /&gt;
&lt;br /&gt;
Taskها می‌توانند با چند Repository یا چند Branch از یک Repository کار کنند.&lt;br /&gt;
&lt;br /&gt;
این ویژگی برای:&lt;br /&gt;
&lt;br /&gt;
* Microservices&lt;br /&gt;
* Backend + Frontend&lt;br /&gt;
* Shared Libraries&lt;br /&gt;
* Multi-repository Systems&lt;br /&gt;
&lt;br /&gt;
مهم است.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== نقاط قوت ==&lt;br /&gt;
&lt;br /&gt;
* Orchestration قوی&lt;br /&gt;
* Multi-step workflows&lt;br /&gt;
* Human Gates&lt;br /&gt;
* Worktrees&lt;br /&gt;
* Multi-repository&lt;br /&gt;
* ACP&lt;br /&gt;
* MCP&lt;br /&gt;
* Local execution&lt;br /&gt;
* Docker optional&lt;br /&gt;
* SSH execution&lt;br /&gt;
* Windows support&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== نقاط ضعف ==&lt;br /&gt;
&lt;br /&gt;
* پیچیده‌تر از Emdash&lt;br /&gt;
* Footprint بیشتر&lt;br /&gt;
* Skills هنوز به بلوغ سیستم‌های اختصاصی Skills نرسیده است&lt;br /&gt;
* Memory نیازمند توسعه بیشتر است&lt;br /&gt;
* Token/Cost Manager هنوز نقطه اصلی محصول نیست&lt;br /&gt;
* LLM Judge داخلی کامل ندارد&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== نقش پیشنهادی ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Workflow Orchestrator&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= 3. Promptfoo =&lt;br /&gt;
&lt;br /&gt;
== معرفی ==&lt;br /&gt;
&lt;br /&gt;
Promptfoo یک Agent OS نیست.&lt;br /&gt;
&lt;br /&gt;
Promptfoo در این معماری به عنوان:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Evaluation / Testing / LLM-as-a-Judge Layer&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
استفاده می‌شود.&lt;br /&gt;
&lt;br /&gt;
هدف آن ارزیابی خروجی Agentها، اجرای Rubricها، تست LLMها و مقایسه Candidateها است.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== منابع ==&lt;br /&gt;
&lt;br /&gt;
* Website:&lt;br /&gt;
https://www.promptfoo.dev/&lt;br /&gt;
&lt;br /&gt;
* Documentation:&lt;br /&gt;
https://www.promptfoo.dev/docs/&lt;br /&gt;
&lt;br /&gt;
* GitHub:&lt;br /&gt;
https://github.com/promptfoo/promptfoo&lt;br /&gt;
&lt;br /&gt;
* Installation:&lt;br /&gt;
https://www.promptfoo.dev/docs/installation/&lt;br /&gt;
&lt;br /&gt;
* Agent Rubric:&lt;br /&gt;
https://www.promptfoo.dev/docs/configuration/expected-outputs/model-graded/agent-rubric/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== نصب Windows ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
npm install -g promptfoo&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== بررسی نسخه ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
promptfoo --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ساخت اولین Project ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
promptfoo init&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
این دستور فایل:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
promptfooconfig.yaml&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
را ایجاد می‌کند.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== نقش Promptfoo در Agentic OS ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Claude Candidate -----+&lt;br /&gt;
                      |&lt;br /&gt;
Codex Candidate ------+&lt;br /&gt;
                      |&lt;br /&gt;
Cursor Candidate -----+----&amp;gt; Build&lt;br /&gt;
                      |        |&lt;br /&gt;
OpenCode Candidate ---+      Tests&lt;br /&gt;
                               |&lt;br /&gt;
                            Security&lt;br /&gt;
                               |&lt;br /&gt;
                            Promptfoo&lt;br /&gt;
                               |&lt;br /&gt;
                         LLM-as-a-Judge&lt;br /&gt;
                               |&lt;br /&gt;
                       Score / Ranking&lt;br /&gt;
                               |&lt;br /&gt;
                       Human Approval&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== LLM Rubric ==&lt;br /&gt;
&lt;br /&gt;
Promptfoo می‌تواند خروجی را با Natural Language Rubric ارزیابی کند.&lt;br /&gt;
&lt;br /&gt;
برای ارزیابی معمول:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
llm-rubric&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Agent Rubric ==&lt;br /&gt;
&lt;br /&gt;
برای Coding Agentها گزینه مهم‌تر:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
agent-rubric&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
است.&lt;br /&gt;
&lt;br /&gt;
Agent Rubric می‌تواند از Agent Runtime برای جمع‌آوری Evidence استفاده کند.&lt;br /&gt;
&lt;br /&gt;
در نتیجه Judge می‌تواند فقط متن پاسخ را نبیند، بلکه Repository یا Artifact را نیز بررسی کند.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Rubric پیشنهادی ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! معیار&lt;br /&gt;
! وزن&lt;br /&gt;
|-&lt;br /&gt;
| Correctness&lt;br /&gt;
| 30%&lt;br /&gt;
|-&lt;br /&gt;
| Tests&lt;br /&gt;
| 20%&lt;br /&gt;
|-&lt;br /&gt;
| Architecture&lt;br /&gt;
| 15%&lt;br /&gt;
|-&lt;br /&gt;
| Security&lt;br /&gt;
| 15%&lt;br /&gt;
|-&lt;br /&gt;
| Code Quality&lt;br /&gt;
| 10%&lt;br /&gt;
|-&lt;br /&gt;
| Performance&lt;br /&gt;
| 5%&lt;br /&gt;
|-&lt;br /&gt;
| Token / Cost Efficiency&lt;br /&gt;
| 5%&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Judge Pipeline پیشنهادی ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Candidate&lt;br /&gt;
   |&lt;br /&gt;
 Build&lt;br /&gt;
   |&lt;br /&gt;
 Unit Tests&lt;br /&gt;
   |&lt;br /&gt;
 Integration Tests&lt;br /&gt;
   |&lt;br /&gt;
 Lint&lt;br /&gt;
   |&lt;br /&gt;
 Security Scan&lt;br /&gt;
   |&lt;br /&gt;
 Benchmark&lt;br /&gt;
   |&lt;br /&gt;
 Agent Rubric&lt;br /&gt;
   |&lt;br /&gt;
 Weighted Score&lt;br /&gt;
   |&lt;br /&gt;
 Candidate Ranking&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== نقاط قوت ==&lt;br /&gt;
&lt;br /&gt;
* LLM Evaluation&lt;br /&gt;
* Agent Evaluation&lt;br /&gt;
* Rubric-based grading&lt;br /&gt;
* Regression testing&lt;br /&gt;
* Model comparison&lt;br /&gt;
* Automated evaluation&lt;br /&gt;
* CI/CD integration&lt;br /&gt;
* CLI&lt;br /&gt;
* Web UI&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== نقش پیشنهادی ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;LLM-as-a-Judge / Evaluation Engine&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= 4. OpenHands Agent Canvas =&lt;br /&gt;
&lt;br /&gt;
== معرفی ==&lt;br /&gt;
&lt;br /&gt;
OpenHands Agent Canvas یک Developer Control Center و Agent Platform است.&lt;br /&gt;
&lt;br /&gt;
تمرکز آن بیشتر روی Agent Infrastructure، Agent Servers و Automation است.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== منابع ==&lt;br /&gt;
&lt;br /&gt;
* Website:&lt;br /&gt;
https://openhands.dev/&lt;br /&gt;
&lt;br /&gt;
* Documentation:&lt;br /&gt;
https://docs.openhands.dev/&lt;br /&gt;
&lt;br /&gt;
* GitHub:&lt;br /&gt;
https://github.com/OpenHands/OpenHands&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== نصب ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
npm install -g @openhands/agent-canvas&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== اجرا ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
agent-canvas&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
یا:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
agent-canvas.cmd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Local UI ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://localhost:8000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== نقش پیشنهادی ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Agent Platform / Automation Layer&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= 5. Orca =&lt;br /&gt;
&lt;br /&gt;
== معرفی ==&lt;br /&gt;
&lt;br /&gt;
Orca یک Agent Development Environment برای مدیریت Fleetای از Coding Agentها است.&lt;br /&gt;
&lt;br /&gt;
تمرکز اصلی:&lt;br /&gt;
&lt;br /&gt;
* Desktop UI&lt;br /&gt;
* Multiple Agents&lt;br /&gt;
* Parallel Execution&lt;br /&gt;
* Git Worktrees&lt;br /&gt;
* Diff Review&lt;br /&gt;
* Local-first Development&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== منابع ==&lt;br /&gt;
&lt;br /&gt;
* Website:&lt;br /&gt;
https://www.onorca.dev/&lt;br /&gt;
&lt;br /&gt;
* GitHub:&lt;br /&gt;
https://github.com/stablyai/orca&lt;br /&gt;
&lt;br /&gt;
* Releases:&lt;br /&gt;
https://github.com/stablyai/orca/releases&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Agentهای مهم ==&lt;br /&gt;
&lt;br /&gt;
* Claude Code&lt;br /&gt;
* Codex&lt;br /&gt;
* Cursor&lt;br /&gt;
* OpenCode&lt;br /&gt;
* Antigravity&lt;br /&gt;
* Custom CLI Agents&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== نقش پیشنهادی ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Alternative Agent Control Plane&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= 6. Codbash =&lt;br /&gt;
&lt;br /&gt;
== معرفی ==&lt;br /&gt;
&lt;br /&gt;
Codbash بیشتر یک:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Coding Agent Session Control Room&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
است تا Agentic OS کامل.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== منابع ==&lt;br /&gt;
&lt;br /&gt;
* GitHub:&lt;br /&gt;
https://github.com/vakovalskii/codbash&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== نصب ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
npm install -g codbash-app&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== اجرا ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
codbash run&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== قابلیت‌های مهم ==&lt;br /&gt;
&lt;br /&gt;
* Session Management&lt;br /&gt;
* Session Search&lt;br /&gt;
* Replay&lt;br /&gt;
* Terminal&lt;br /&gt;
* Multi-pane&lt;br /&gt;
* Token Analytics&lt;br /&gt;
* Cost Analytics&lt;br /&gt;
* Project Management&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== محدودیت ==&lt;br /&gt;
&lt;br /&gt;
قابلیت‌های زیر هسته اصلی آن نیستند:&lt;br /&gt;
&lt;br /&gt;
* Advanced Orchestration&lt;br /&gt;
* Semantic Memory&lt;br /&gt;
* Advanced Skills&lt;br /&gt;
* Context Optimization&lt;br /&gt;
* LLM-as-a-Judge&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== نقش پیشنهادی ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Session / Analytics Tool&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= 7. Claw Orchestrator =&lt;br /&gt;
&lt;br /&gt;
== معرفی ==&lt;br /&gt;
&lt;br /&gt;
Claw Orchestrator یک Multi-Agent Runtime برای Persistent Coding Sessions است.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== منابع ==&lt;br /&gt;
&lt;br /&gt;
* GitHub:&lt;br /&gt;
https://github.com/Enderfga/claw-orchestrator&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== نصب ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
npm install -g @enderfga/claw-orchestrator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== اجرا ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo serve&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== قابلیت‌های مهم ==&lt;br /&gt;
&lt;br /&gt;
* Persistent Sessions&lt;br /&gt;
* Multiple Engines&lt;br /&gt;
* Claude&lt;br /&gt;
* Codex&lt;br /&gt;
* Cursor&lt;br /&gt;
* OpenCode&lt;br /&gt;
* Antigravity&lt;br /&gt;
* Council&lt;br /&gt;
* Agent Teams&lt;br /&gt;
* MCP&lt;br /&gt;
* API&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== نقش پیشنهادی ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Agent Runtime / API Orchestrator&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= 8. Agent Orchestrator (AO) =&lt;br /&gt;
&lt;br /&gt;
== معرفی ==&lt;br /&gt;
&lt;br /&gt;
Agent Orchestrator یک Agentic IDE برای Parallel Coding Agents است.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== منابع ==&lt;br /&gt;
&lt;br /&gt;
* Website:&lt;br /&gt;
https://aoagents.dev/&lt;br /&gt;
&lt;br /&gt;
* GitHub:&lt;br /&gt;
https://github.com/Untrivial-ai/agent-orchestrator&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== قابلیت‌ها ==&lt;br /&gt;
&lt;br /&gt;
* Desktop UI&lt;br /&gt;
* Parallel Agents&lt;br /&gt;
* Worktrees&lt;br /&gt;
* CI Feedback&lt;br /&gt;
* Review Feedback&lt;br /&gt;
* Pull Requests&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== مشکل مشاهده‌شده در Windows ==&lt;br /&gt;
&lt;br /&gt;
در تست انجام‌شده Daemon با خطای:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
seed scratch project: Failed to load projects&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
متوقف شد.&lt;br /&gt;
&lt;br /&gt;
Local Database:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\Users\karavi\.ao\data\ao.db&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
به همین دلیل فعلاً انتخاب اصلی نیست.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= مقایسه Agentic OSها =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! سیستم&lt;br /&gt;
! UI&lt;br /&gt;
! Windows&lt;br /&gt;
! Multi-Agent&lt;br /&gt;
! Worktree&lt;br /&gt;
! Orchestration&lt;br /&gt;
! Skills&lt;br /&gt;
! Memory&lt;br /&gt;
! Token&lt;br /&gt;
! Judge&lt;br /&gt;
! نقش&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Emdash&#039;&#039;&#039;&lt;br /&gt;
| عالی&lt;br /&gt;
| بله&lt;br /&gt;
| عالی&lt;br /&gt;
| عالی&lt;br /&gt;
| خوب&lt;br /&gt;
| خوب&lt;br /&gt;
| محدود&lt;br /&gt;
| محدود&lt;br /&gt;
| خیر&lt;br /&gt;
| &#039;&#039;&#039;Control Plane&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Kandev&#039;&#039;&#039;&lt;br /&gt;
| خوب&lt;br /&gt;
| بله&lt;br /&gt;
| عالی&lt;br /&gt;
| عالی&lt;br /&gt;
| &#039;&#039;&#039;عالی&#039;&#039;&#039;&lt;br /&gt;
| در حال توسعه&lt;br /&gt;
| در حال توسعه&lt;br /&gt;
| محدود&lt;br /&gt;
| قابل ساخت&lt;br /&gt;
| &#039;&#039;&#039;Orchestrator&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;OpenHands Canvas&#039;&#039;&#039;&lt;br /&gt;
| عالی&lt;br /&gt;
| بله&lt;br /&gt;
| خوب&lt;br /&gt;
| متوسط&lt;br /&gt;
| عالی&lt;br /&gt;
| خوب&lt;br /&gt;
| خوب&lt;br /&gt;
| متوسط&lt;br /&gt;
| قابل ساخت&lt;br /&gt;
| Agent Platform&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Orca&#039;&#039;&#039;&lt;br /&gt;
| عالی&lt;br /&gt;
| بله&lt;br /&gt;
| &#039;&#039;&#039;عالی&#039;&#039;&#039;&lt;br /&gt;
| عالی&lt;br /&gt;
| خوب&lt;br /&gt;
| متوسط&lt;br /&gt;
| محدود&lt;br /&gt;
| خوب&lt;br /&gt;
| قابل ساخت&lt;br /&gt;
| Control Plane&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Codbash&#039;&#039;&#039;&lt;br /&gt;
| خوب&lt;br /&gt;
| بله&lt;br /&gt;
| متوسط&lt;br /&gt;
| محدود&lt;br /&gt;
| محدود&lt;br /&gt;
| ضعیف&lt;br /&gt;
| Session&lt;br /&gt;
| &#039;&#039;&#039;خوب&#039;&#039;&#039;&lt;br /&gt;
| خیر&lt;br /&gt;
| Analytics&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Claw Orchestrator&#039;&#039;&#039;&lt;br /&gt;
| متوسط&lt;br /&gt;
| بله&lt;br /&gt;
| عالی&lt;br /&gt;
| خوب&lt;br /&gt;
| عالی&lt;br /&gt;
| خوب&lt;br /&gt;
| Session&lt;br /&gt;
| خوب&lt;br /&gt;
| Council&lt;br /&gt;
| Runtime&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Agent Orchestrator&#039;&#039;&#039;&lt;br /&gt;
| خوب&lt;br /&gt;
| دارای مشکل تست‌شده&lt;br /&gt;
| عالی&lt;br /&gt;
| عالی&lt;br /&gt;
| عالی&lt;br /&gt;
| متوسط&lt;br /&gt;
| Session&lt;br /&gt;
| متوسط&lt;br /&gt;
| Reviewer&lt;br /&gt;
| Orchestrator&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= مقایسه Agent Coverage =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Agent&lt;br /&gt;
! Emdash&lt;br /&gt;
! Kandev&lt;br /&gt;
! OpenHands&lt;br /&gt;
! Orca&lt;br /&gt;
! Codbash&lt;br /&gt;
! Claw&lt;br /&gt;
|-&lt;br /&gt;
| Claude Code&lt;br /&gt;
| بله&lt;br /&gt;
| بله&lt;br /&gt;
| بله&lt;br /&gt;
| بله&lt;br /&gt;
| بله&lt;br /&gt;
| بله&lt;br /&gt;
|-&lt;br /&gt;
| Codex&lt;br /&gt;
| بله&lt;br /&gt;
| بله&lt;br /&gt;
| بله&lt;br /&gt;
| بله&lt;br /&gt;
| بله&lt;br /&gt;
| بله&lt;br /&gt;
|-&lt;br /&gt;
| Cursor&lt;br /&gt;
| بله&lt;br /&gt;
| بله/ACP&lt;br /&gt;
| نیازمند Integration&lt;br /&gt;
| بله&lt;br /&gt;
| بله&lt;br /&gt;
| بله&lt;br /&gt;
|-&lt;br /&gt;
| OpenCode&lt;br /&gt;
| بله&lt;br /&gt;
| بله/ACP&lt;br /&gt;
| نیازمند Integration&lt;br /&gt;
| بله&lt;br /&gt;
| بله&lt;br /&gt;
| بله&lt;br /&gt;
|-&lt;br /&gt;
| Antigravity&lt;br /&gt;
| نیازمند بررسی&lt;br /&gt;
| نیازمند بررسی&lt;br /&gt;
| نیازمند Adapter&lt;br /&gt;
| بله&lt;br /&gt;
| محدود&lt;br /&gt;
| بله&lt;br /&gt;
|-&lt;br /&gt;
| Freebuff&lt;br /&gt;
| نیازمند بررسی&lt;br /&gt;
| نیازمند بررسی&lt;br /&gt;
| نیازمند Adapter&lt;br /&gt;
| Custom CLI احتمالی&lt;br /&gt;
| محدود&lt;br /&gt;
| Custom&lt;br /&gt;
|-&lt;br /&gt;
| Gemini&lt;br /&gt;
| بله&lt;br /&gt;
| بله&lt;br /&gt;
| بله&lt;br /&gt;
| بله&lt;br /&gt;
| بسته به نسخه&lt;br /&gt;
| بله&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= معماری پیشنهادی فعلی =&lt;br /&gt;
&lt;br /&gt;
پس از بررسی ابزارها، معماری موردنظر به سه Layer اصلی تقسیم می‌شود.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
             +-----------------------------+&lt;br /&gt;
             |          Emdash             |&lt;br /&gt;
             | Development Control Plane   |&lt;br /&gt;
             +--------------+--------------+&lt;br /&gt;
                            |&lt;br /&gt;
                       Projects/Tasks&lt;br /&gt;
                            |&lt;br /&gt;
             +--------------+--------------+&lt;br /&gt;
             |                             |&lt;br /&gt;
          Claude                         Codex&lt;br /&gt;
             |                             |&lt;br /&gt;
          Cursor                        OpenCode&lt;br /&gt;
             |                             |&lt;br /&gt;
             +--------------+--------------+&lt;br /&gt;
                            |&lt;br /&gt;
                      Git Worktrees&lt;br /&gt;
                            |&lt;br /&gt;
                 Candidate Solutions&lt;br /&gt;
                            |&lt;br /&gt;
             +--------------+--------------+&lt;br /&gt;
             |              |              |&lt;br /&gt;
           Build          Tests         Security&lt;br /&gt;
             |              |              |&lt;br /&gt;
             +--------------+--------------+&lt;br /&gt;
                            |&lt;br /&gt;
             +--------------v--------------+&lt;br /&gt;
             |          Promptfoo           |&lt;br /&gt;
             |      Evaluation / Judge      |&lt;br /&gt;
             +--------------+--------------+&lt;br /&gt;
                            |&lt;br /&gt;
                      Agent Rubric&lt;br /&gt;
                            |&lt;br /&gt;
                     Weighted Score&lt;br /&gt;
                            |&lt;br /&gt;
                    Candidate Ranking&lt;br /&gt;
                            |&lt;br /&gt;
                     Human Approval&lt;br /&gt;
                            |&lt;br /&gt;
                       Commit / PR&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= معماری پیشرفته با Kandev =&lt;br /&gt;
&lt;br /&gt;
اگر Workflow Orchestration اهمیت بیشتری داشته باشد:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                      Kandev&lt;br /&gt;
                        |&lt;br /&gt;
                  Workflow Engine&lt;br /&gt;
                        |&lt;br /&gt;
          +-------------+-------------+&lt;br /&gt;
          |             |             |&lt;br /&gt;
       Planner       Architect      Researcher&lt;br /&gt;
          |             |             |&lt;br /&gt;
          +-------------+-------------+&lt;br /&gt;
                        |&lt;br /&gt;
                Parallel Coders&lt;br /&gt;
                        |&lt;br /&gt;
        +---------------+---------------+&lt;br /&gt;
        |               |               |&lt;br /&gt;
      Claude          Codex          OpenCode&lt;br /&gt;
        |               |               |&lt;br /&gt;
        +---------------+---------------+&lt;br /&gt;
                        |&lt;br /&gt;
                  Git Worktrees&lt;br /&gt;
                        |&lt;br /&gt;
                     Tests&lt;br /&gt;
                        |&lt;br /&gt;
                 Security Review&lt;br /&gt;
                        |&lt;br /&gt;
                     Promptfoo&lt;br /&gt;
                        |&lt;br /&gt;
                  LLM-as-a-Judge&lt;br /&gt;
                        |&lt;br /&gt;
                 Human Approval&lt;br /&gt;
                        |&lt;br /&gt;
                        PR&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= نقش هر نرم‌افزار =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! نرم‌افزار&lt;br /&gt;
! نقش پیشنهادی&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Emdash&#039;&#039;&#039;&lt;br /&gt;
| Primary Development Control Plane&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Kandev&#039;&#039;&#039;&lt;br /&gt;
| Advanced Workflow Orchestrator&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Promptfoo&#039;&#039;&#039;&lt;br /&gt;
| LLM-as-a-Judge / Evaluation&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;OpenHands&#039;&#039;&#039;&lt;br /&gt;
| Agent Platform / Automation&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Orca&#039;&#039;&#039;&lt;br /&gt;
| Alternative Multi-Agent Control Plane&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Codbash&#039;&#039;&#039;&lt;br /&gt;
| Session / Token Analytics&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Claw Orchestrator&#039;&#039;&#039;&lt;br /&gt;
| Persistent Agent Runtime / API&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Agent Orchestrator&#039;&#039;&#039;&lt;br /&gt;
| فعلاً کنار گذاشته‌شده به دلیل مشکل Windows&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= تصمیم فعلی =&lt;br /&gt;
&lt;br /&gt;
سه ابزار جدید باید در یک پروژه واقعی مقایسه شوند:&lt;br /&gt;
&lt;br /&gt;
# Emdash&lt;br /&gt;
# Kandev&lt;br /&gt;
# Promptfoo&lt;br /&gt;
&lt;br /&gt;
اما Promptfoo رقیب Emdash و Kandev نیست.&lt;br /&gt;
&lt;br /&gt;
ساختار صحیح مقایسه:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
          Emdash&lt;br /&gt;
             VS&lt;br /&gt;
          Kandev&lt;br /&gt;
             |&lt;br /&gt;
             |&lt;br /&gt;
      انتخاب Control Plane&lt;br /&gt;
             |&lt;br /&gt;
             v&lt;br /&gt;
         Promptfoo&lt;br /&gt;
        Judge Layer&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= معیار انتخاب Emdash یا Kandev =&lt;br /&gt;
&lt;br /&gt;
اگر اولویت:&lt;br /&gt;
&lt;br /&gt;
* UI&lt;br /&gt;
* سادگی&lt;br /&gt;
* Windows Desktop&lt;br /&gt;
* Parallel Agents&lt;br /&gt;
* Worktrees&lt;br /&gt;
* Diff Review&lt;br /&gt;
* استفاده روزانه&lt;br /&gt;
&lt;br /&gt;
باشد:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Emdash&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
گزینه اول است.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
اگر اولویت:&lt;br /&gt;
&lt;br /&gt;
* Workflow&lt;br /&gt;
* Agent Roles&lt;br /&gt;
* Task Dependencies&lt;br /&gt;
* Multi-step Execution&lt;br /&gt;
* Human Gates&lt;br /&gt;
* Multi-repository&lt;br /&gt;
* Orchestration&lt;br /&gt;
&lt;br /&gt;
باشد:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Kandev&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
گزینه قوی‌تر است.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= معماری هدف نهایی =&lt;br /&gt;
&lt;br /&gt;
هدف این است که تعداد ابزارها کاهش پیدا کند.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                  ONE CONTROL PLANE&lt;br /&gt;
                        |&lt;br /&gt;
          Emdash OR Kandev&lt;br /&gt;
                        |&lt;br /&gt;
          +-------------+-------------+&lt;br /&gt;
          |             |             |&lt;br /&gt;
        Claude        Codex        OpenCode&lt;br /&gt;
          |             |             |&lt;br /&gt;
        Cursor         Agy          Others&lt;br /&gt;
          |             |             |&lt;br /&gt;
          +-------------+-------------+&lt;br /&gt;
                        |&lt;br /&gt;
                   Worktrees&lt;br /&gt;
                        |&lt;br /&gt;
               Build/Test/Security&lt;br /&gt;
                        |&lt;br /&gt;
                    Promptfoo&lt;br /&gt;
                        |&lt;br /&gt;
                 LLM-as-a-Judge&lt;br /&gt;
                        |&lt;br /&gt;
                  Human Approval&lt;br /&gt;
                        |&lt;br /&gt;
                    Commit/PR&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
در صورت موفقیت این معماری، ابزارهای دارای قابلیت تکراری باید حذف شوند.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= برنامه تست =&lt;br /&gt;
&lt;br /&gt;
== Phase 1 — Agent Detection ==&lt;br /&gt;
&lt;br /&gt;
بررسی:&lt;br /&gt;
&lt;br /&gt;
* Claude Code&lt;br /&gt;
* Codex&lt;br /&gt;
* Cursor&lt;br /&gt;
* OpenCode&lt;br /&gt;
* Antigravity&lt;br /&gt;
* Freebuff&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Phase 2 — Parallel Development ==&lt;br /&gt;
&lt;br /&gt;
یک Task یکسان به چند Agent داده شود.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Task&lt;br /&gt;
 |&lt;br /&gt;
 +-- Claude&lt;br /&gt;
 |&lt;br /&gt;
 +-- Codex&lt;br /&gt;
 |&lt;br /&gt;
 +-- Cursor&lt;br /&gt;
 |&lt;br /&gt;
 +-- OpenCode&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Phase 3 — Worktree ==&lt;br /&gt;
&lt;br /&gt;
بررسی شود که هر Agent Worktree مستقل داشته باشد.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Phase 4 — Validation ==&lt;br /&gt;
&lt;br /&gt;
برای هر Candidate:&lt;br /&gt;
&lt;br /&gt;
* Build&lt;br /&gt;
* Unit Tests&lt;br /&gt;
* Integration Tests&lt;br /&gt;
* Lint&lt;br /&gt;
* Security Scan&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Phase 5 — Judge ==&lt;br /&gt;
&lt;br /&gt;
Promptfoo:&lt;br /&gt;
&lt;br /&gt;
* agent-rubric&lt;br /&gt;
* llm-rubric&lt;br /&gt;
&lt;br /&gt;
برای Score کردن Candidateها استفاده شود.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Phase 6 — Human Approval ==&lt;br /&gt;
&lt;br /&gt;
قبل از:&lt;br /&gt;
&lt;br /&gt;
* Commit&lt;br /&gt;
* Push&lt;br /&gt;
* Pull Request&lt;br /&gt;
* Merge&lt;br /&gt;
&lt;br /&gt;
تأیید انسانی انجام شود.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Phase 7 — Cleanup ==&lt;br /&gt;
&lt;br /&gt;
بعد از انتخاب Control Plane اصلی:&lt;br /&gt;
&lt;br /&gt;
ابزارهایی که قابلیت تکراری دارند Uninstall شوند.&lt;br /&gt;
&lt;br /&gt;
هدف:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum Software + Maximum Capability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= نتیجه فعلی =&lt;br /&gt;
&lt;br /&gt;
در وضعیت فعلی معماری پیشنهادی:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Emdash + Promptfoo&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
ساده‌ترین گزینه برای شروع است.&lt;br /&gt;
&lt;br /&gt;
برای Orchestration پیشرفته‌تر:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Kandev + Promptfoo&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
جذاب‌تر است.&lt;br /&gt;
&lt;br /&gt;
انتخاب نهایی بین Emdash و Kandev باید بعد از تست عملی روی Repository واقعی انجام شود.&lt;br /&gt;
&lt;br /&gt;
هیچ‌کدام در حال حاضر تمام نیازهای Agentic Development OS را به تنهایی پوشش نمی‌دهند.&lt;br /&gt;
&lt;br /&gt;
مهم‌ترین Gapهای باقی‌مانده:&lt;br /&gt;
&lt;br /&gt;
* Persistent Semantic Memory&lt;br /&gt;
* Central Context Optimization&lt;br /&gt;
* Intelligent Token Budgeting&lt;br /&gt;
* Shared Skills بین تمام Agentها&lt;br /&gt;
* Native automated LLM-as-a-Judge در Control Plane&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= منابع رسمی =&lt;br /&gt;
&lt;br /&gt;
== Emdash ==&lt;br /&gt;
&lt;br /&gt;
* https://emdash.sh/&lt;br /&gt;
* https://github.com/generalaction/emdash&lt;br /&gt;
* https://github.com/generalaction/emdash/releases&lt;br /&gt;
&lt;br /&gt;
== Kandev ==&lt;br /&gt;
&lt;br /&gt;
* https://kandev.ai/&lt;br /&gt;
* https://github.com/kdlbs/kandev&lt;br /&gt;
* https://github.com/kdlbs/kandev/releases&lt;br /&gt;
&lt;br /&gt;
== Promptfoo ==&lt;br /&gt;
&lt;br /&gt;
* https://www.promptfoo.dev/&lt;br /&gt;
* https://www.promptfoo.dev/docs/&lt;br /&gt;
* https://www.promptfoo.dev/docs/installation/&lt;br /&gt;
* https://www.promptfoo.dev/docs/configuration/expected-outputs/model-graded/agent-rubric/&lt;br /&gt;
* https://github.com/promptfoo/promptfoo&lt;br /&gt;
&lt;br /&gt;
== OpenHands ==&lt;br /&gt;
&lt;br /&gt;
* https://openhands.dev/&lt;br /&gt;
* https://docs.openhands.dev/&lt;br /&gt;
* https://github.com/OpenHands/OpenHands&lt;br /&gt;
&lt;br /&gt;
== Orca ==&lt;br /&gt;
&lt;br /&gt;
* https://www.onorca.dev/&lt;br /&gt;
* https://github.com/stablyai/orca&lt;br /&gt;
&lt;br /&gt;
== Codbash ==&lt;br /&gt;
&lt;br /&gt;
* https://github.com/vakovalskii/codbash&lt;br /&gt;
&lt;br /&gt;
== Claw Orchestrator ==&lt;br /&gt;
&lt;br /&gt;
* https://github.com/Enderfga/claw-orchestrator&lt;br /&gt;
&lt;br /&gt;
== Agent Orchestrator ==&lt;br /&gt;
&lt;br /&gt;
* https://aoagents.dev/&lt;br /&gt;
* https://github.com/Untrivial-ai/agent-orchestrator&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Ai_Agentic_os&amp;diff=200</id>
		<title>Ai Agentic os</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Ai_Agentic_os&amp;diff=200"/>
		<updated>2026-08-20T21:56:42Z</updated>

		<summary type="html">&lt;p&gt;Karavi: Created page with &amp;quot;= Agentic Development OS Tools =  این صفحه مجموعه ابزارهای Agentic Development OS نصب‌شده و تست‌شده را برای مدیریت Coding Agentها مستند می‌کند.  هدف اصلی ایجاد یک محیط یکپارچه برای مدیریت Agentهایی مانند:  * Claude Code * OpenAI Codex * Cursor Agent * OpenCode * Google Antigravity * Freebuff * Gemini CLI * سایر CLI Agentها  است.  اهداف اصلی این...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Agentic Development OS Tools =&lt;br /&gt;
&lt;br /&gt;
این صفحه مجموعه ابزارهای Agentic Development OS نصب‌شده و تست‌شده را برای مدیریت Coding Agentها مستند می‌کند.&lt;br /&gt;
&lt;br /&gt;
هدف اصلی ایجاد یک محیط یکپارچه برای مدیریت Agentهایی مانند:&lt;br /&gt;
&lt;br /&gt;
* Claude Code&lt;br /&gt;
* OpenAI Codex&lt;br /&gt;
* Cursor Agent&lt;br /&gt;
* OpenCode&lt;br /&gt;
* Google Antigravity&lt;br /&gt;
* Freebuff&lt;br /&gt;
* Gemini CLI&lt;br /&gt;
* سایر CLI Agentها&lt;br /&gt;
&lt;br /&gt;
است.&lt;br /&gt;
&lt;br /&gt;
اهداف اصلی این محیط:&lt;br /&gt;
&lt;br /&gt;
* مدیریت چند Agent از یک UI&lt;br /&gt;
* اجرای Parallel Agentها&lt;br /&gt;
* مدیریت Sessionها&lt;br /&gt;
* Git Worktree Isolation&lt;br /&gt;
* Skills&lt;br /&gt;
* Memory&lt;br /&gt;
* Token / Cost Management&lt;br /&gt;
* Context Optimization&lt;br /&gt;
* Multi-Agent Orchestration&lt;br /&gt;
* LLM-as-a-Judge&lt;br /&gt;
* Automated Testing / Review&lt;br /&gt;
* کمترین تعداد نرم‌افزار ممکن&lt;br /&gt;
* پشتیبانی مناسب Windows&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== نرم‌افزارهای نصب‌شده ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! نرم‌افزار&lt;br /&gt;
! نوع&lt;br /&gt;
! UI&lt;br /&gt;
! Windows&lt;br /&gt;
! وضعیت&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;OpenHands Agent Canvas&#039;&#039;&#039;&lt;br /&gt;
| Agentic Platform / Control Center&lt;br /&gt;
| Web&lt;br /&gt;
| بله&lt;br /&gt;
| نصب و در حال ارزیابی&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Orca&#039;&#039;&#039;&lt;br /&gt;
| Agent Development Environment (ADE)&lt;br /&gt;
| Desktop&lt;br /&gt;
| بله&lt;br /&gt;
| نصب و در حال ارزیابی&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Codbash&#039;&#039;&#039;&lt;br /&gt;
| Coding Agent Control Room&lt;br /&gt;
| Web&lt;br /&gt;
| بله&lt;br /&gt;
| نصب و تست‌شده&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Claw Orchestrator&#039;&#039;&#039;&lt;br /&gt;
| Multi-Agent Runtime / Orchestrator&lt;br /&gt;
| Web Dashboard&lt;br /&gt;
| بله&lt;br /&gt;
| نصب و تست‌شده&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Agent Orchestrator (AO)&#039;&#039;&#039;&lt;br /&gt;
| Agentic IDE / Agent Orchestrator&lt;br /&gt;
| Desktop&lt;br /&gt;
| بله&lt;br /&gt;
| نصب؛ در Windows با مشکل Daemon مواجه شد&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= 1. OpenHands Agent Canvas =&lt;br /&gt;
&lt;br /&gt;
== معرفی ==&lt;br /&gt;
&lt;br /&gt;
OpenHands Agent Canvas یک Developer Control Center برای اجرای Coding Agentها و Automationها است.&lt;br /&gt;
&lt;br /&gt;
Agent Canvas می‌تواند به Agent Backendهای مختلف متصل شود و Agentها را به صورت Local، Remote، Docker، VM یا Cloud اجرا کند.&lt;br /&gt;
&lt;br /&gt;
پشتیبانی مهم:&lt;br /&gt;
&lt;br /&gt;
* OpenHands&lt;br /&gt;
* Claude Code&lt;br /&gt;
* OpenAI Codex&lt;br /&gt;
* Gemini&lt;br /&gt;
* ACP-compatible Agents&lt;br /&gt;
* Local/Remote Agent Backends&lt;br /&gt;
* Automations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== وب‌سایت و سورس ==&lt;br /&gt;
&lt;br /&gt;
* Documentation:&lt;br /&gt;
https://docs.openhands.dev/&lt;br /&gt;
&lt;br /&gt;
* GitHub:&lt;br /&gt;
https://github.com/OpenHands/OpenHands&lt;br /&gt;
&lt;br /&gt;
* npm:&lt;br /&gt;
https://www.npmjs.com/package/@openhands/agent-canvas&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== نصب روی Windows ==&lt;br /&gt;
&lt;br /&gt;
پیش‌نیاز اصلی:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
node --version&lt;br /&gt;
npm --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Node.js باید نسخه مناسب Agent Canvas باشد.&lt;br /&gt;
&lt;br /&gt;
نصب:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
npm install -g @openhands/agent-canvas&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
در صورت Block شدن install scriptها توسط npm:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
npm config set allow-scripts=@openhands/agent-canvas,@heroui/shared-utils,@openrouter/sdk,core-js --location=user&lt;br /&gt;
&lt;br /&gt;
npm rebuild -g @openhands/agent-canvas&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== اجرا ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
agent-canvas&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
در صورت مشکل PowerShell:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
agent-canvas.cmd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
سرویس Local به صورت پیش‌فرض روی:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://localhost:8000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
اجرا می‌شود.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== معماری ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Agent Canvas&lt;br /&gt;
     |&lt;br /&gt;
     +-- OpenHands Agent&lt;br /&gt;
     |&lt;br /&gt;
     +-- Claude Code&lt;br /&gt;
     |&lt;br /&gt;
     +-- Codex&lt;br /&gt;
     |&lt;br /&gt;
     +-- Gemini&lt;br /&gt;
     |&lt;br /&gt;
     +-- ACP Agents&lt;br /&gt;
     |&lt;br /&gt;
     +-- Agent Server&lt;br /&gt;
     |&lt;br /&gt;
     +-- Automation Server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== مزایا ==&lt;br /&gt;
&lt;br /&gt;
* پروژه Open Source بزرگ و شناخته‌شده&lt;br /&gt;
* UI تحت Web&lt;br /&gt;
* معماری Agent Server&lt;br /&gt;
* Automation&lt;br /&gt;
* امکان اتصال چند Backend&lt;br /&gt;
* امکان اجرای Local و Remote&lt;br /&gt;
* امکان استفاده از Docker Sandbox&lt;br /&gt;
* پشتیبانی ACP&lt;br /&gt;
* مناسب برای توسعه Agentic Platform&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== معایب برای نیاز من ==&lt;br /&gt;
&lt;br /&gt;
* بیشتر Agent Platform است تا Desktop IDE مخصوص Coding CLIها&lt;br /&gt;
* اتصال Cursor/OpenCode/Antigravity ممکن است به اندازه Orca مستقیم نباشد&lt;br /&gt;
* برای Sandbox کامل ممکن است Docker لازم شود&lt;br /&gt;
* معماری آن نسبت به Codbash پیچیده‌تر است&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= 2. Orca =&lt;br /&gt;
&lt;br /&gt;
== معرفی ==&lt;br /&gt;
&lt;br /&gt;
Orca یک:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Agent Development Environment (ADE)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
برای مدیریت Fleetای از Coding Agentها است.&lt;br /&gt;
&lt;br /&gt;
هدف اصلی آن اجرای چند Coding Agent به صورت Parallel و ایزوله کردن آنها با Git Worktree است.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== وب‌سایت و سورس ==&lt;br /&gt;
&lt;br /&gt;
* Website:&lt;br /&gt;
https://www.onorca.dev/&lt;br /&gt;
&lt;br /&gt;
* GitHub:&lt;br /&gt;
https://github.com/stablyai/orca&lt;br /&gt;
&lt;br /&gt;
* Releases:&lt;br /&gt;
https://github.com/stablyai/orca/releases&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== نصب روی Windows ==&lt;br /&gt;
&lt;br /&gt;
نسخه Windows به صورت Desktop Application ارائه می‌شود.&lt;br /&gt;
&lt;br /&gt;
دانلود:&lt;br /&gt;
&lt;br /&gt;
https://www.onorca.dev/&lt;br /&gt;
&lt;br /&gt;
یا:&lt;br /&gt;
&lt;br /&gt;
https://github.com/stablyai/orca/releases&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Agentهای مهم پشتیبانی‌شده ==&lt;br /&gt;
&lt;br /&gt;
Orca می‌تواند CLI Agentهای زیادی را اجرا کند.&lt;br /&gt;
&lt;br /&gt;
از جمله:&lt;br /&gt;
&lt;br /&gt;
* Claude Code&lt;br /&gt;
* Codex&lt;br /&gt;
* Cursor&lt;br /&gt;
* OpenCode&lt;br /&gt;
* Antigravity&lt;br /&gt;
* GitHub Copilot&lt;br /&gt;
* Pi&lt;br /&gt;
* Hermes Agent&lt;br /&gt;
* Kimi&lt;br /&gt;
* Kiro&lt;br /&gt;
* Qwen Code&lt;br /&gt;
* Cline&lt;br /&gt;
* Continue&lt;br /&gt;
* Droid&lt;br /&gt;
* Goose&lt;br /&gt;
* Devin&lt;br /&gt;
* سایر CLI Agentها&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== معماری ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                    ORCA&lt;br /&gt;
                     |&lt;br /&gt;
             Desktop Control Plane&lt;br /&gt;
                     |&lt;br /&gt;
        +------------+-------------+&lt;br /&gt;
        |            |             |&lt;br /&gt;
      Claude       Codex         Cursor&lt;br /&gt;
        |            |             |&lt;br /&gt;
     OpenCode       Agy          Other&lt;br /&gt;
        |            |             |&lt;br /&gt;
        +------------+-------------+&lt;br /&gt;
                     |&lt;br /&gt;
               Git Worktrees&lt;br /&gt;
                     |&lt;br /&gt;
              Parallel Agents&lt;br /&gt;
                     |&lt;br /&gt;
               Diff / Review&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Parallel Worktrees ==&lt;br /&gt;
&lt;br /&gt;
یکی از مهم‌ترین قابلیت‌های Orca اجرای یک Prompt روی چند Agent است.&lt;br /&gt;
&lt;br /&gt;
هر Agent می‌تواند Worktree مستقل داشته باشد:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Repository&lt;br /&gt;
 |&lt;br /&gt;
 +-- Worktree Claude&lt;br /&gt;
 |&lt;br /&gt;
 +-- Worktree Codex&lt;br /&gt;
 |&lt;br /&gt;
 +-- Worktree Cursor&lt;br /&gt;
 |&lt;br /&gt;
 +-- Worktree OpenCode&lt;br /&gt;
 |&lt;br /&gt;
 +-- Worktree Antigravity&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
در نتیجه Agentها فایل‌های یکدیگر را overwrite نمی‌کنند.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== مزایا ==&lt;br /&gt;
&lt;br /&gt;
* Windows Native&lt;br /&gt;
* Desktop UI&lt;br /&gt;
* تعداد بسیار زیاد Agent&lt;br /&gt;
* Claude Code&lt;br /&gt;
* Codex&lt;br /&gt;
* Cursor&lt;br /&gt;
* OpenCode&lt;br /&gt;
* Antigravity&lt;br /&gt;
* Custom CLI&lt;br /&gt;
* Parallel Agents&lt;br /&gt;
* Git Worktrees&lt;br /&gt;
* Diff Review&lt;br /&gt;
* Terminal Splits&lt;br /&gt;
* Usage Tracking&lt;br /&gt;
* Rate Limit Tracking&lt;br /&gt;
* Local-first&lt;br /&gt;
* Open Source&lt;br /&gt;
* MIT License&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== معایب برای نیاز من ==&lt;br /&gt;
&lt;br /&gt;
* Memory مرکزی در سطح Agentic OS هنوز نقطه اصلی محصول نیست&lt;br /&gt;
* Skills System به قدرت سیستم‌های Agent Platform نیست&lt;br /&gt;
* LLM-as-a-Judge کامل باید Workflow اختصاصی داشته باشد&lt;br /&gt;
* Context Optimization پیشرفته نیاز به بررسی بیشتر دارد&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= 3. Codbash =&lt;br /&gt;
&lt;br /&gt;
== معرفی ==&lt;br /&gt;
&lt;br /&gt;
Codbash یک Browser Dashboard برای مدیریت Coding Agent Sessionها است.&lt;br /&gt;
&lt;br /&gt;
بیشتر شبیه:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;AI Coding Agent Control Room&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
عمل می‌کند.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== GitHub ==&lt;br /&gt;
&lt;br /&gt;
https://github.com/vakovalskii/codbash&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== نصب روی Windows ==&lt;br /&gt;
&lt;br /&gt;
پیش‌نیاز:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
node --version&lt;br /&gt;
npm --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
نصب:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
npm install -g codbash-app&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== بررسی نسخه ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
codbash --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== اجرا ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
codbash run&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
UI در Browser اجرا می‌شود.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Agentهای پشتیبانی‌شده ==&lt;br /&gt;
&lt;br /&gt;
از جمله:&lt;br /&gt;
&lt;br /&gt;
* Claude Code&lt;br /&gt;
* Codex&lt;br /&gt;
* Cursor&lt;br /&gt;
* OpenCode&lt;br /&gt;
* Qwen&lt;br /&gt;
* Pi&lt;br /&gt;
* Oh My Pi&lt;br /&gt;
* Kiro&lt;br /&gt;
* Kilo&lt;br /&gt;
* Copilot Chat&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== امکانات ==&lt;br /&gt;
&lt;br /&gt;
* Browser Dashboard&lt;br /&gt;
* Session Management&lt;br /&gt;
* Session Search&lt;br /&gt;
* Session Replay&lt;br /&gt;
* Resume&lt;br /&gt;
* Live Status&lt;br /&gt;
* Terminal&lt;br /&gt;
* Split Terminal&lt;br /&gt;
* Project Management&lt;br /&gt;
* Cost Analytics&lt;br /&gt;
* Token Usage&lt;br /&gt;
* Handoff&lt;br /&gt;
* Cross-Agent Session Conversion&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Analytics ==&lt;br /&gt;
&lt;br /&gt;
Codbash می‌تواند اطلاعات مصرف را از Agentهایی که Usage ثبت می‌کنند استخراج کند.&lt;br /&gt;
&lt;br /&gt;
از جمله:&lt;br /&gt;
&lt;br /&gt;
* Input Tokens&lt;br /&gt;
* Output Tokens&lt;br /&gt;
* Cache Usage&lt;br /&gt;
* Cost&lt;br /&gt;
* Cost per Model&lt;br /&gt;
* Cost per Project&lt;br /&gt;
* Cost per Session&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== معماری ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                 Codbash&lt;br /&gt;
                    |&lt;br /&gt;
             Browser Dashboard&lt;br /&gt;
                    |&lt;br /&gt;
       +------------+------------+&lt;br /&gt;
       |            |            |&lt;br /&gt;
     Claude       Codex       OpenCode&lt;br /&gt;
       |            |            |&lt;br /&gt;
     Cursor        Kiro         Qwen&lt;br /&gt;
       |&lt;br /&gt;
       +---- Sessions / History&lt;br /&gt;
       |&lt;br /&gt;
       +---- Token / Cost Analytics&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== مزایا ==&lt;br /&gt;
&lt;br /&gt;
* نصب بسیار ساده&lt;br /&gt;
* Windows&lt;br /&gt;
* Web UI&lt;br /&gt;
* Session Management قوی&lt;br /&gt;
* Token/Cost Analytics&lt;br /&gt;
* Claude/Codex/Cursor/OpenCode&lt;br /&gt;
* Search&lt;br /&gt;
* Replay&lt;br /&gt;
* Handoff&lt;br /&gt;
* Terminal Splits&lt;br /&gt;
* سبک&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== مشکلات مشاهده‌شده ==&lt;br /&gt;
&lt;br /&gt;
در تست Windows مشکل PowerShell Execution Policy برای بعضی CLIهای npm مانند OpenCode مشاهده شد.&lt;br /&gt;
&lt;br /&gt;
راه‌حل:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
همچنین UI فعلی برای متن فارسی/RTL ایده‌آل نیست.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== معایب برای Agent OS ==&lt;br /&gt;
&lt;br /&gt;
Codbash بیشتر Session Manager / Control Room است.&lt;br /&gt;
&lt;br /&gt;
قابلیت‌های زیر هسته اصلی آن نیستند:&lt;br /&gt;
&lt;br /&gt;
* Skills پیشرفته&lt;br /&gt;
* Project Memory پیشرفته&lt;br /&gt;
* Context Optimization&lt;br /&gt;
* LLM-as-a-Judge&lt;br /&gt;
* Agent Planning&lt;br /&gt;
* Autonomous Multi-Agent Workflow&lt;br /&gt;
&lt;br /&gt;
بنابراین به تنهایی Agentic OS کامل موردنظر من نیست.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= 4. Claw Orchestrator =&lt;br /&gt;
&lt;br /&gt;
== معرفی ==&lt;br /&gt;
&lt;br /&gt;
Claw Orchestrator یک Multi-Engine Coding Agent Runtime است.&lt;br /&gt;
&lt;br /&gt;
Coding CLIها را به Persistent Programmable Agent تبدیل می‌کند.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== GitHub ==&lt;br /&gt;
&lt;br /&gt;
https://github.com/Enderfga/claw-orchestrator&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== نصب ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
npm install -g @enderfga/claw-orchestrator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== بررسی ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo --version&lt;br /&gt;
clawo --help&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== npm Allow Scripts ==&lt;br /&gt;
&lt;br /&gt;
در Windows ممکن است npm بعضی install scriptها را Block کند.&lt;br /&gt;
&lt;br /&gt;
نمونه:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
npm config set allow-scripts=openclaw,re2,@google/genai,tree-sitter-bash,protobufjs --location=user&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== مشکل RE2 در Windows ==&lt;br /&gt;
&lt;br /&gt;
خطای مشاهده‌شده:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Cannot find module &#039;./build/Release/re2.node&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
راه‌حل استفاده‌شده:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
cd &amp;quot;$env:APPDATA\npm\node_modules\@enderfga\claw-orchestrator&amp;quot;&lt;br /&gt;
&lt;br /&gt;
npm rebuild re2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== اجرا ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo serve&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Server معمولاً روی:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://127.0.0.1:18796&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
اجرا می‌شود.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Agentهای مهم ==&lt;br /&gt;
&lt;br /&gt;
* Claude Code&lt;br /&gt;
* Codex&lt;br /&gt;
* Antigravity&lt;br /&gt;
* Cursor Agent&lt;br /&gt;
* OpenCode&lt;br /&gt;
* Custom CLI&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Persistent Session ==&lt;br /&gt;
&lt;br /&gt;
نمونه:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo session-start claude-main `&lt;br /&gt;
    --engine claude `&lt;br /&gt;
    --cwd &amp;quot;D:\SourceKaravi\GitHub\MyProject&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ارسال Task:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo session-send claude-main &amp;quot;Analyze this repository.&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
لیست Sessionها:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo session-list&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
وضعیت:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo session-status claude-main&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Council ==&lt;br /&gt;
&lt;br /&gt;
Council برای اجرای چند Agent/Model روی یک مسئله و جمع‌آوری دیدگاه‌های مختلف طراحی شده است.&lt;br /&gt;
&lt;br /&gt;
می‌توان از آن برای:&lt;br /&gt;
&lt;br /&gt;
* Architecture Review&lt;br /&gt;
* Code Review&lt;br /&gt;
* Design Decision&lt;br /&gt;
* Multi-Agent Analysis&lt;br /&gt;
* Candidate Comparison&lt;br /&gt;
&lt;br /&gt;
استفاده کرد.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Forge ==&lt;br /&gt;
&lt;br /&gt;
Forge برای Workflowهای سطح بالاتر و ساخت Application/Artifact از طریق Agentها طراحی شده است.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== مزایا ==&lt;br /&gt;
&lt;br /&gt;
* Multi-Agent Runtime واقعی&lt;br /&gt;
* Persistent Sessions&lt;br /&gt;
* Claude&lt;br /&gt;
* Codex&lt;br /&gt;
* Cursor&lt;br /&gt;
* OpenCode&lt;br /&gt;
* Antigravity&lt;br /&gt;
* Custom CLI&lt;br /&gt;
* Council&lt;br /&gt;
* Autoloop&lt;br /&gt;
* Worktree control&lt;br /&gt;
* MCP&lt;br /&gt;
* OpenClaw integration&lt;br /&gt;
* API&lt;br /&gt;
* OpenAI-compatible Proxy&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== معایب ==&lt;br /&gt;
&lt;br /&gt;
* Dashboard برای استفاده روزانه من جذاب نبود&lt;br /&gt;
* UI نسبت به Orca ضعیف‌تر است&lt;br /&gt;
* بیشتر Runtime/API محور است&lt;br /&gt;
* Windows npm native dependencyها ممکن است نیاز به تعمیر داشته باشند&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= 5. Agent Orchestrator (AO) =&lt;br /&gt;
&lt;br /&gt;
== معرفی ==&lt;br /&gt;
&lt;br /&gt;
Agent Orchestrator یک Agentic IDE برای مدیریت Fleetای از Coding Agentها است.&lt;br /&gt;
&lt;br /&gt;
هدف آن اجرای Parallel Agentها در Workspaceهای جدا و مدیریت Feedback Loop است.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== وب‌سایت و سورس ==&lt;br /&gt;
&lt;br /&gt;
* Website:&lt;br /&gt;
https://aoagents.dev/&lt;br /&gt;
&lt;br /&gt;
* GitHub:&lt;br /&gt;
https://github.com/Untrivial-ai/agent-orchestrator&lt;br /&gt;
&lt;br /&gt;
* Releases:&lt;br /&gt;
https://github.com/Untrivial-ai/agent-orchestrator/releases&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== نصب ==&lt;br /&gt;
&lt;br /&gt;
روش پیشنهادی فعلی استفاده از Desktop Build است.&lt;br /&gt;
&lt;br /&gt;
نسخه‌های:&lt;br /&gt;
&lt;br /&gt;
* Windows&lt;br /&gt;
* macOS&lt;br /&gt;
* Linux&lt;br /&gt;
&lt;br /&gt;
وجود دارند.&lt;br /&gt;
&lt;br /&gt;
روش npm قدیمی است و برای نصب جدید توصیه نمی‌شود.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== معماری ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
             Agent Orchestrator&lt;br /&gt;
                     |&lt;br /&gt;
                 Desktop UI&lt;br /&gt;
                     |&lt;br /&gt;
               Orchestrator&lt;br /&gt;
                     |&lt;br /&gt;
       +-------------+-------------+&lt;br /&gt;
       |             |             |&lt;br /&gt;
     Claude        Codex        Cursor&lt;br /&gt;
       |             |             |&lt;br /&gt;
    OpenCode        Kimi          ...&lt;br /&gt;
       |&lt;br /&gt;
       +---- Git Worktrees&lt;br /&gt;
       |&lt;br /&gt;
       +---- Pull Requests&lt;br /&gt;
       |&lt;br /&gt;
       +---- CI Feedback&lt;br /&gt;
       |&lt;br /&gt;
       +---- Review Feedback&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== قابلیت‌های مهم ==&lt;br /&gt;
&lt;br /&gt;
* Parallel Agents&lt;br /&gt;
* Git Worktree Isolation&lt;br /&gt;
* Live Terminals&lt;br /&gt;
* Session State&lt;br /&gt;
* Pull Request Awareness&lt;br /&gt;
* CI Feedback&lt;br /&gt;
* Review Feedback&lt;br /&gt;
* Merge Conflict Feedback&lt;br /&gt;
* Reviewer Agents&lt;br /&gt;
* Desktop UI&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== مشکل مشاهده‌شده روی Windows ==&lt;br /&gt;
&lt;br /&gt;
در تست انجام‌شده Daemon با خطای:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
seed scratch project: Failed to load projects&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
متوقف شد.&lt;br /&gt;
&lt;br /&gt;
دیتابیس محلی:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\Users\karavi\.ao\data\ao.db&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
حتی بعد از Reset State نیز مشکل ادامه داشت.&lt;br /&gt;
&lt;br /&gt;
بنابراین فعلاً برای استفاده اصلی کنار گذاشته شده است.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= مقایسه کلی =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! قابلیت&lt;br /&gt;
! OpenHands Canvas&lt;br /&gt;
! Orca&lt;br /&gt;
! Codbash&lt;br /&gt;
! Claw Orchestrator&lt;br /&gt;
! Agent Orchestrator&lt;br /&gt;
|-&lt;br /&gt;
| Windows&lt;br /&gt;
| خوب&lt;br /&gt;
| &#039;&#039;&#039;عالی&#039;&#039;&#039;&lt;br /&gt;
| خوب&lt;br /&gt;
| خوب&lt;br /&gt;
| مشکل در تست&lt;br /&gt;
|-&lt;br /&gt;
| UI&lt;br /&gt;
| &#039;&#039;&#039;قوی&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;عالی&#039;&#039;&#039;&lt;br /&gt;
| خوب&lt;br /&gt;
| متوسط&lt;br /&gt;
| خوب&lt;br /&gt;
|-&lt;br /&gt;
| Claude Code&lt;br /&gt;
| بله&lt;br /&gt;
| بله&lt;br /&gt;
| بله&lt;br /&gt;
| بله&lt;br /&gt;
| بله&lt;br /&gt;
|-&lt;br /&gt;
| Codex&lt;br /&gt;
| بله&lt;br /&gt;
| بله&lt;br /&gt;
| بله&lt;br /&gt;
| بله&lt;br /&gt;
| بله&lt;br /&gt;
|-&lt;br /&gt;
| Cursor&lt;br /&gt;
| از طریق معماری Agent/ACP نیازمند بررسی&lt;br /&gt;
| &#039;&#039;&#039;بله&#039;&#039;&#039;&lt;br /&gt;
| بله&lt;br /&gt;
| بله&lt;br /&gt;
| بله&lt;br /&gt;
|-&lt;br /&gt;
| OpenCode&lt;br /&gt;
| نیازمند بررسی Integration&lt;br /&gt;
| &#039;&#039;&#039;بله&#039;&#039;&#039;&lt;br /&gt;
| بله&lt;br /&gt;
| بله&lt;br /&gt;
| بله&lt;br /&gt;
|-&lt;br /&gt;
| Antigravity&lt;br /&gt;
| نیازمند Adapter&lt;br /&gt;
| &#039;&#039;&#039;بله&#039;&#039;&#039;&lt;br /&gt;
| خیر&lt;br /&gt;
| &#039;&#039;&#039;بله&#039;&#039;&#039;&lt;br /&gt;
| قابل استفاده به عنوان CLI&lt;br /&gt;
|-&lt;br /&gt;
| Custom CLI&lt;br /&gt;
| ACP&lt;br /&gt;
| &#039;&#039;&#039;بله&#039;&#039;&#039;&lt;br /&gt;
| محدود&lt;br /&gt;
| &#039;&#039;&#039;بله&#039;&#039;&#039;&lt;br /&gt;
| بله&lt;br /&gt;
|-&lt;br /&gt;
| Parallel Agents&lt;br /&gt;
| بله&lt;br /&gt;
| &#039;&#039;&#039;عالی&#039;&#039;&#039;&lt;br /&gt;
| بیشتر Parallel Terminal&lt;br /&gt;
| &#039;&#039;&#039;عالی&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;عالی&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| Worktree&lt;br /&gt;
| قابل پیاده‌سازی&lt;br /&gt;
| &#039;&#039;&#039;عالی&#039;&#039;&#039;&lt;br /&gt;
| محدود&lt;br /&gt;
| بله&lt;br /&gt;
| &#039;&#039;&#039;عالی&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| Session Management&lt;br /&gt;
| خوب&lt;br /&gt;
| عالی&lt;br /&gt;
| &#039;&#039;&#039;عالی&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;عالی&#039;&#039;&#039;&lt;br /&gt;
| عالی&lt;br /&gt;
|-&lt;br /&gt;
| Token Analytics&lt;br /&gt;
| متوسط&lt;br /&gt;
| خوب&lt;br /&gt;
| &#039;&#039;&#039;عالی برای مشاهده Cost&#039;&#039;&#039;&lt;br /&gt;
| خوب&lt;br /&gt;
| متوسط&lt;br /&gt;
|-&lt;br /&gt;
| Skills&lt;br /&gt;
| &#039;&#039;&#039;قوی‌تر&#039;&#039;&#039;&lt;br /&gt;
| متوسط&lt;br /&gt;
| ضعیف&lt;br /&gt;
| خوب&lt;br /&gt;
| متوسط&lt;br /&gt;
|-&lt;br /&gt;
| Memory&lt;br /&gt;
| &#039;&#039;&#039;قوی‌تر&#039;&#039;&#039;&lt;br /&gt;
| محدودتر&lt;br /&gt;
| Session History&lt;br /&gt;
| Session Context&lt;br /&gt;
| Session State&lt;br /&gt;
|-&lt;br /&gt;
| Automation&lt;br /&gt;
| &#039;&#039;&#039;عالی&#039;&#039;&#039;&lt;br /&gt;
| متوسط&lt;br /&gt;
| محدود&lt;br /&gt;
| &#039;&#039;&#039;عالی&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;عالی&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| MCP/API&lt;br /&gt;
| &#039;&#039;&#039;عالی&#039;&#039;&#039;&lt;br /&gt;
| قابل توسعه&lt;br /&gt;
| محدود&lt;br /&gt;
| &#039;&#039;&#039;عالی&#039;&#039;&#039;&lt;br /&gt;
| خوب&lt;br /&gt;
|-&lt;br /&gt;
| LLM-as-a-Judge&lt;br /&gt;
| قابل ساخت&lt;br /&gt;
| قابل ساخت&lt;br /&gt;
| ضعیف&lt;br /&gt;
| &#039;&#039;&#039;Council مناسب&#039;&#039;&#039;&lt;br /&gt;
| Reviewer Workflow&lt;br /&gt;
|-&lt;br /&gt;
| نصب ساده&lt;br /&gt;
| متوسط&lt;br /&gt;
| &#039;&#039;&#039;عالی&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;عالی&#039;&#039;&#039;&lt;br /&gt;
| متوسط&lt;br /&gt;
| عالی در حالت Desktop&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= مقایسه با Agentic OS موردنظر من =&lt;br /&gt;
&lt;br /&gt;
Agentic OS ایده‌آل باید معماری زیر را داشته باشد:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                     AGENTIC DEV OS&lt;br /&gt;
                           |&lt;br /&gt;
                     Unified UI&lt;br /&gt;
                           |&lt;br /&gt;
          +----------------+----------------+&lt;br /&gt;
          |                |                |&lt;br /&gt;
        Skills           Memory          Projects&lt;br /&gt;
          |                |                |&lt;br /&gt;
          +----------------+----------------+&lt;br /&gt;
                           |&lt;br /&gt;
                   Context Manager&lt;br /&gt;
                           |&lt;br /&gt;
                  Token Optimization&lt;br /&gt;
                           |&lt;br /&gt;
                     Orchestrator&lt;br /&gt;
                           |&lt;br /&gt;
       +---------+---------+---------+---------+&lt;br /&gt;
       |         |         |         |         |&lt;br /&gt;
     Claude    Codex     Cursor   OpenCode    Agy&lt;br /&gt;
       |         |         |         |         |&lt;br /&gt;
       +---------+---------+---------+---------+&lt;br /&gt;
                           |&lt;br /&gt;
                    Git Worktrees&lt;br /&gt;
                           |&lt;br /&gt;
                Parallel Candidates&lt;br /&gt;
                           |&lt;br /&gt;
        +------------------+------------------+&lt;br /&gt;
        |                  |                  |&lt;br /&gt;
      Build              Tests            Security&lt;br /&gt;
        |                  |                  |&lt;br /&gt;
        +------------------+------------------+&lt;br /&gt;
                           |&lt;br /&gt;
                      LLM Judge&lt;br /&gt;
                           |&lt;br /&gt;
                    Ranked Results&lt;br /&gt;
                           |&lt;br /&gt;
                    Human Approval&lt;br /&gt;
                           |&lt;br /&gt;
                     Commit / PR&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== نیازهای Critical ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! نیاز&lt;br /&gt;
! اهمیت&lt;br /&gt;
|-&lt;br /&gt;
| UI مناسب&lt;br /&gt;
| Critical&lt;br /&gt;
|-&lt;br /&gt;
| Windows Native&lt;br /&gt;
| Critical&lt;br /&gt;
|-&lt;br /&gt;
| Claude Code&lt;br /&gt;
| Critical&lt;br /&gt;
|-&lt;br /&gt;
| Codex&lt;br /&gt;
| Critical&lt;br /&gt;
|-&lt;br /&gt;
| Cursor&lt;br /&gt;
| Critical&lt;br /&gt;
|-&lt;br /&gt;
| OpenCode&lt;br /&gt;
| Critical&lt;br /&gt;
|-&lt;br /&gt;
| Antigravity&lt;br /&gt;
| Critical&lt;br /&gt;
|-&lt;br /&gt;
| Multi-Agent&lt;br /&gt;
| Critical&lt;br /&gt;
|-&lt;br /&gt;
| Parallel Execution&lt;br /&gt;
| Critical&lt;br /&gt;
|-&lt;br /&gt;
| Git Worktrees&lt;br /&gt;
| Critical&lt;br /&gt;
|-&lt;br /&gt;
| Skills&lt;br /&gt;
| Critical&lt;br /&gt;
|-&lt;br /&gt;
| Memory&lt;br /&gt;
| Critical&lt;br /&gt;
|-&lt;br /&gt;
| Token Management&lt;br /&gt;
| Critical&lt;br /&gt;
|-&lt;br /&gt;
| Context Optimization&lt;br /&gt;
| Critical&lt;br /&gt;
|-&lt;br /&gt;
| LLM-as-a-Judge&lt;br /&gt;
| Critical&lt;br /&gt;
|-&lt;br /&gt;
| Automated Tests&lt;br /&gt;
| Critical&lt;br /&gt;
|-&lt;br /&gt;
| Security Review&lt;br /&gt;
| Critical&lt;br /&gt;
|-&lt;br /&gt;
| Human Approval&lt;br /&gt;
| Critical&lt;br /&gt;
|-&lt;br /&gt;
| کمترین تعداد نرم‌افزار&lt;br /&gt;
| Critical&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= ارزیابی نهایی =&lt;br /&gt;
&lt;br /&gt;
== Orca ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;بهترین گزینه فعلی برای Control Plane&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
دلایل:&lt;br /&gt;
&lt;br /&gt;
* UI بسیار مناسب&lt;br /&gt;
* Windows Native&lt;br /&gt;
* Claude&lt;br /&gt;
* Codex&lt;br /&gt;
* Cursor&lt;br /&gt;
* OpenCode&lt;br /&gt;
* Antigravity&lt;br /&gt;
* Custom CLI&lt;br /&gt;
* Worktrees&lt;br /&gt;
* Parallel Agents&lt;br /&gt;
* Diff Review&lt;br /&gt;
* Usage Tracking&lt;br /&gt;
&lt;br /&gt;
ضعف اصلی:&lt;br /&gt;
&lt;br /&gt;
* Skills / Memory / Judge / Context Intelligence هنوز نیازمند لایه مکمل هستند.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== OpenHands Agent Canvas ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;بهترین گزینه فعلی برای Agentic Platform&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
دلایل:&lt;br /&gt;
&lt;br /&gt;
* Agent Server&lt;br /&gt;
* Automation&lt;br /&gt;
* Skills/Agent architecture&lt;br /&gt;
* Backend abstraction&lt;br /&gt;
* Remote execution&lt;br /&gt;
* ACP&lt;br /&gt;
* Local/Cloud architecture&lt;br /&gt;
&lt;br /&gt;
ضعف:&lt;br /&gt;
&lt;br /&gt;
برای مدیریت مستقیم تمام CLI Agentهای موجود به سادگی Orca نیست.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Codbash ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;بهترین گزینه برای Session History و Cost Analytics سبک&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
مزایا:&lt;br /&gt;
&lt;br /&gt;
* بسیار ساده&lt;br /&gt;
* Browser UI&lt;br /&gt;
* Session Search&lt;br /&gt;
* Replay&lt;br /&gt;
* Token/Cost Analytics&lt;br /&gt;
* Multi-terminal&lt;br /&gt;
&lt;br /&gt;
اما Agentic OS کامل نیست.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Claw Orchestrator ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;بهترین گزینه Runtime/API محور&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
مزایا:&lt;br /&gt;
&lt;br /&gt;
* Multi-Agent&lt;br /&gt;
* Council&lt;br /&gt;
* Autoloop&lt;br /&gt;
* Persistent Sessions&lt;br /&gt;
* MCP&lt;br /&gt;
* API&lt;br /&gt;
* OpenClaw&lt;br /&gt;
* Antigravity&lt;br /&gt;
* Custom CLI&lt;br /&gt;
&lt;br /&gt;
ضعف:&lt;br /&gt;
&lt;br /&gt;
UI برای استفاده روزانه مطلوب نبود.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Agent Orchestrator ==&lt;br /&gt;
&lt;br /&gt;
از نظر معماری بسیار نزدیک به هدف است:&lt;br /&gt;
&lt;br /&gt;
* Desktop&lt;br /&gt;
* Parallel Agents&lt;br /&gt;
* Worktrees&lt;br /&gt;
* CI Feedback&lt;br /&gt;
* Review Feedback&lt;br /&gt;
* PR Workflow&lt;br /&gt;
&lt;br /&gt;
اما مشکل Daemon مشاهده‌شده در Windows باعث شده فعلاً انتخاب اصلی نباشد.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= پیشنهاد معماری فعلی =&lt;br /&gt;
&lt;br /&gt;
اگر فقط یک نرم‌افزار انتخاب شود:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Orca&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
انتخاب فعلی مناسب‌تری است.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                 Orca&lt;br /&gt;
                  |&lt;br /&gt;
      +-----------+-----------+&lt;br /&gt;
      |           |           |&lt;br /&gt;
   Claude       Codex       Cursor&lt;br /&gt;
      |           |           |&lt;br /&gt;
   OpenCode      Agy       Custom&lt;br /&gt;
      |           |           |&lt;br /&gt;
      +-----------+-----------+&lt;br /&gt;
                  |&lt;br /&gt;
             Worktrees&lt;br /&gt;
                  |&lt;br /&gt;
           Diff / Review&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
اگر دو لایه قابل قبول باشد:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            OpenHands Agent Canvas&lt;br /&gt;
             Agentic Brain Layer&lt;br /&gt;
                     |&lt;br /&gt;
       Automation / Agent Server&lt;br /&gt;
       Memory / Skills / Backends&lt;br /&gt;
                     |&lt;br /&gt;
                     v&lt;br /&gt;
                   Orca&lt;br /&gt;
              Development UI&lt;br /&gt;
                     |&lt;br /&gt;
     +-------+-------+-------+-------+&lt;br /&gt;
     |       |       |       |       |&lt;br /&gt;
  Claude   Codex   Cursor OpenCode  Agy&lt;br /&gt;
     |       |       |       |       |&lt;br /&gt;
     +-------+-------+-------+-------+&lt;br /&gt;
                     |&lt;br /&gt;
               Git Worktrees&lt;br /&gt;
                     |&lt;br /&gt;
              Build / Test&lt;br /&gt;
                     |&lt;br /&gt;
                  Review&lt;br /&gt;
                     |&lt;br /&gt;
                LLM Judge&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
این معماری باید در تست عملی اعتبارسنجی شود؛ مخصوصاً اتصال بین OpenHands و Orca نباید فرض شود که به صورت Native وجود دارد.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Workflow پیشنهادی Agentic Development =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Task&lt;br /&gt;
 |&lt;br /&gt;
 +--&amp;gt; Architect Agent&lt;br /&gt;
 |&lt;br /&gt;
 +--&amp;gt; Claude Implementation -----+&lt;br /&gt;
 |                                |&lt;br /&gt;
 +--&amp;gt; Codex Implementation -------+--&amp;gt; Build&lt;br /&gt;
 |                                |      |&lt;br /&gt;
 +--&amp;gt; OpenCode Implementation ----+     Tests&lt;br /&gt;
                                        |&lt;br /&gt;
                                     Security&lt;br /&gt;
                                        |&lt;br /&gt;
                                      Review&lt;br /&gt;
                                        |&lt;br /&gt;
                                    LLM Judge&lt;br /&gt;
                                        |&lt;br /&gt;
                                  Human Approval&lt;br /&gt;
                                        |&lt;br /&gt;
                                   Commit / PR&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Rubric پیشنهادی LLM-as-a-Judge =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! معیار&lt;br /&gt;
! وزن&lt;br /&gt;
|-&lt;br /&gt;
| Correctness&lt;br /&gt;
| 30%&lt;br /&gt;
|-&lt;br /&gt;
| Tests&lt;br /&gt;
| 20%&lt;br /&gt;
|-&lt;br /&gt;
| Architecture&lt;br /&gt;
| 15%&lt;br /&gt;
|-&lt;br /&gt;
| Security&lt;br /&gt;
| 15%&lt;br /&gt;
|-&lt;br /&gt;
| Code Quality&lt;br /&gt;
| 10%&lt;br /&gt;
|-&lt;br /&gt;
| Performance&lt;br /&gt;
| 5%&lt;br /&gt;
|-&lt;br /&gt;
| Token / Cost Efficiency&lt;br /&gt;
| 5%&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= نتیجه فعلی =&lt;br /&gt;
&lt;br /&gt;
ترتیب فعلی برای ادامه تست:&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Orca&#039;&#039;&#039; — Control Plane اصلی&lt;br /&gt;
# &#039;&#039;&#039;OpenHands Agent Canvas&#039;&#039;&#039; — Agentic Platform&lt;br /&gt;
# &#039;&#039;&#039;Codbash&#039;&#039;&#039; — Session / Analytics Tool&lt;br /&gt;
# &#039;&#039;&#039;Claw Orchestrator&#039;&#039;&#039; — Runtime / Council / API&lt;br /&gt;
# &#039;&#039;&#039;Agent Orchestrator&#039;&#039;&#039; — فعلاً به علت مشکل Windows کنار گذاشته شده&lt;br /&gt;
&lt;br /&gt;
هدف نهایی این است که پس از تست عملی، ابزارهای اضافی حذف شوند و در صورت امکان فقط یک یا حداکثر دو لایه باقی بمانند.&lt;br /&gt;
&lt;br /&gt;
= منابع =&lt;br /&gt;
&lt;br /&gt;
== OpenHands ==&lt;br /&gt;
&lt;br /&gt;
* https://github.com/OpenHands/OpenHands&lt;br /&gt;
* https://docs.openhands.dev/&lt;br /&gt;
* https://www.npmjs.com/package/@openhands/agent-canvas&lt;br /&gt;
&lt;br /&gt;
== Orca ==&lt;br /&gt;
&lt;br /&gt;
* https://www.onorca.dev/&lt;br /&gt;
* https://github.com/stablyai/orca&lt;br /&gt;
* https://github.com/stablyai/orca/releases&lt;br /&gt;
&lt;br /&gt;
== Codbash ==&lt;br /&gt;
&lt;br /&gt;
* https://github.com/vakovalskii/codbash&lt;br /&gt;
* https://github.com/vakovalskii/codbash/releases&lt;br /&gt;
&lt;br /&gt;
== Claw Orchestrator ==&lt;br /&gt;
&lt;br /&gt;
* https://github.com/Enderfga/claw-orchestrator&lt;br /&gt;
* https://github.com/Enderfga/claw-orchestrator/releases&lt;br /&gt;
&lt;br /&gt;
== Agent Orchestrator ==&lt;br /&gt;
&lt;br /&gt;
* https://aoagents.dev/&lt;br /&gt;
* https://github.com/Untrivial-ai/agent-orchestrator&lt;br /&gt;
* https://github.com/Untrivial-ai/agent-orchestrator/releases&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Ai_Claw_Orchestrator&amp;diff=199</id>
		<title>Ai Claw Orchestrator</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Ai_Claw_Orchestrator&amp;diff=199"/>
		<updated>2026-08-20T18:53:13Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= راه‌اندازی Agentic Development Environment در Windows با Claw Orchestrator =&lt;br /&gt;
&lt;br /&gt;
این راهنما برای ساخت یک محیط &#039;&#039;&#039;Agentic Development&#039;&#039;&#039; روی Windows است که چند Coding Agent مختلف را توسط &#039;&#039;&#039;Claw Orchestrator&#039;&#039;&#039; مدیریت می‌کند.&lt;br /&gt;
&lt;br /&gt;
هدف اصلی این معماری:&lt;br /&gt;
&lt;br /&gt;
* استفاده همزمان از چند Coding Agent&lt;br /&gt;
* مدیریت Sessionهای Agentها&lt;br /&gt;
* اجرای چند Agent روی یک پروژه&lt;br /&gt;
* استفاده از Agentهای مختلف به عنوان Coder و Reviewer&lt;br /&gt;
* ایجاد Multi-Agent Council&lt;br /&gt;
* استفاده از LLM-as-a-Judge&lt;br /&gt;
* جداسازی تغییرات Agentها با Git Worktree&lt;br /&gt;
* انجام Build، Test، Lint و Security Check قبل از داوری LLM&lt;br /&gt;
* نگهداری Run History&lt;br /&gt;
* استفاده از Dashboard برای مدیریت سیستم&lt;br /&gt;
&lt;br /&gt;
معماری کلی:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Windows&lt;br /&gt;
│&lt;br /&gt;
├── Git&lt;br /&gt;
├── Node.js / npm&lt;br /&gt;
│&lt;br /&gt;
├── Claude Code&lt;br /&gt;
├── OpenAI Codex&lt;br /&gt;
├── Cursor Agent&lt;br /&gt;
├── OpenCode&lt;br /&gt;
├── Google Antigravity&lt;br /&gt;
├── Freebuff&lt;br /&gt;
│&lt;br /&gt;
└── Claw Orchestrator&lt;br /&gt;
        │&lt;br /&gt;
        ├── Dashboard&lt;br /&gt;
        ├── Persistent Sessions&lt;br /&gt;
        ├── Multi-Agent&lt;br /&gt;
        ├── Skills&lt;br /&gt;
        ├── Rules&lt;br /&gt;
        ├── Teams&lt;br /&gt;
        ├── Council&lt;br /&gt;
        ├── Run Ledger&lt;br /&gt;
        └── LLM-as-a-Judge&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= پیش‌نیازها =&lt;br /&gt;
&lt;br /&gt;
قبل از نصب Agentها بهتر است ابزارهای زیر نصب شده باشند:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! ابزار&lt;br /&gt;
! کاربرد&lt;br /&gt;
! پیشنهاد&lt;br /&gt;
|-&lt;br /&gt;
| Windows&lt;br /&gt;
| سیستم‌عامل&lt;br /&gt;
| Windows 10/11 x64&lt;br /&gt;
|-&lt;br /&gt;
| PowerShell&lt;br /&gt;
| Terminal و Automation&lt;br /&gt;
| PowerShell 7&lt;br /&gt;
|-&lt;br /&gt;
| Git&lt;br /&gt;
| Version Control&lt;br /&gt;
| آخرین نسخه پایدار&lt;br /&gt;
|-&lt;br /&gt;
| Node.js&lt;br /&gt;
| JavaScript Runtime&lt;br /&gt;
| Node.js 22+&lt;br /&gt;
|-&lt;br /&gt;
| npm&lt;br /&gt;
| Package Manager&lt;br /&gt;
| همراه Node.js&lt;br /&gt;
|-&lt;br /&gt;
| Python&lt;br /&gt;
| SDKهای Python&lt;br /&gt;
| اختیاری&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== بررسی پیش‌نیازها ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
$PSVersionTable.PSVersion&lt;br /&gt;
&lt;br /&gt;
node --version&lt;br /&gt;
npm --version&lt;br /&gt;
git --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
بررسی مسیر executableها:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
where.exe node&lt;br /&gt;
where.exe npm&lt;br /&gt;
where.exe git&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= نصب Coding Agentها =&lt;br /&gt;
&lt;br /&gt;
== Claude Code ==&lt;br /&gt;
&lt;br /&gt;
وب‌سایت رسمی:&lt;br /&gt;
&lt;br /&gt;
[https://claude.ai/ Claude]&lt;br /&gt;
&lt;br /&gt;
=== نصب با PowerShell ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
irm https://claude.ai/install.ps1 | iex&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== نصب با CMD / curl ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bat&amp;quot;&amp;gt;&lt;br /&gt;
curl -fsSL https://claude.ai/install.cmd -o install.cmd &amp;amp;&amp;amp; install.cmd &amp;amp;&amp;amp; del install.cmd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== نصب با Winget ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
winget install Anthropic.ClaudeCode&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== بررسی نصب ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
claude --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== اجرا ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
claude&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== بررسی سلامت ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
claude doctor&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== بررسی PATH ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
where.exe claude&lt;br /&gt;
Get-Command claude&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== OpenAI Codex ==&lt;br /&gt;
&lt;br /&gt;
صفحه Codex:&lt;br /&gt;
&lt;br /&gt;
[https://chatgpt.com/codex/cloud OpenAI Codex]&lt;br /&gt;
&lt;br /&gt;
=== نصب ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
npm install -g @openai/codex&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
یا:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
npm i -g @openai/codex&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== بررسی ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
codex --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== اجرا ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
codex&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Login ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
codex login&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== بررسی PATH ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
where.exe codex&lt;br /&gt;
Get-Command codex&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Cursor Agent ==&lt;br /&gt;
&lt;br /&gt;
وب‌سایت رسمی:&lt;br /&gt;
&lt;br /&gt;
[https://cursor.com/ Cursor]&lt;br /&gt;
&lt;br /&gt;
=== نصب CLI ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
irm &#039;https://cursor.com/install?win32=true&#039; | iex&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== بررسی ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
cursor-agent --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cursor ممکن است command کوتاه زیر را نیز ارائه کند:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
agent&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== بررسی PATH ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
where.exe cursor-agent&lt;br /&gt;
where.exe agent&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Google Antigravity ==&lt;br /&gt;
&lt;br /&gt;
وب‌سایت رسمی:&lt;br /&gt;
&lt;br /&gt;
[https://antigravity.google/ Google Antigravity]&lt;br /&gt;
&lt;br /&gt;
=== نصب CLI با PowerShell ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
irm https://antigravity.google/cli/install.ps1 | iex&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== نصب با curl ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bat&amp;quot;&amp;gt;&lt;br /&gt;
curl -fsSL https://antigravity.google/cli/install.cmd -o install.cmd &amp;amp;&amp;amp; install.cmd &amp;amp;&amp;amp; del install.cmd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== بررسی ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
agy --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== اجرا ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
agy&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== بررسی PATH ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
where.exe agy&lt;br /&gt;
Get-Command agy&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Google Antigravity SDK ==&lt;br /&gt;
&lt;br /&gt;
در صورت نیاز به SDK پایتون:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
pip install google-antigravity&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
بررسی:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
pip show google-antigravity&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;نکته:&#039;&#039;&#039; اگر فقط قصد استفاده از Coding Agent و Claw Orchestrator را دارید، معمولاً نیازی به نصب SDK پایتون نیست.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== OpenCode ==&lt;br /&gt;
&lt;br /&gt;
وب‌سایت رسمی:&lt;br /&gt;
&lt;br /&gt;
[https://opencode.ai/ OpenCode]&lt;br /&gt;
&lt;br /&gt;
=== تنظیم npm ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
npm config set allow-scripts=opencode-ai --location=user&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== نصب ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
npm install -g opencode-ai&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
یا:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
npm i -g opencode-ai&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== بررسی ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
opencode --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== اجرا ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
opencode&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== بررسی PATH ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
where.exe opencode&lt;br /&gt;
Get-Command opencode&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Freebuff ==&lt;br /&gt;
&lt;br /&gt;
وب‌سایت:&lt;br /&gt;
&lt;br /&gt;
[https://freebuff.com/ Freebuff]&lt;br /&gt;
&lt;br /&gt;
=== ثبت‌نام ===&lt;br /&gt;
&lt;br /&gt;
برای ثبت‌نام می‌توانید از Referral Link زیر استفاده کنید:&lt;br /&gt;
&lt;br /&gt;
[https://freebuff.com/?ref=ref-eead1f77-4518-43aa-a4fa-51a49acab0e1 ثبت‌نام در Freebuff]&lt;br /&gt;
&lt;br /&gt;
=== نصب CLI ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
npm install -g freebuff&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== بررسی ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
freebuff --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== اجرا ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
freebuff&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== بررسی PATH ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
where.exe freebuff&lt;br /&gt;
Get-Command freebuff&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;نکته:&#039;&#039;&#039; اگر Freebuff integration مستقیم نداشته باشد، می‌توان اتصال آن به Orchestrator را از طریق Custom Engine بررسی کرد.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= نصب Claw Orchestrator =&lt;br /&gt;
&lt;br /&gt;
Claw Orchestrator لایه مرکزی Orchestration این معماری است.&lt;br /&gt;
&lt;br /&gt;
== نصب ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
npm install -g @enderfga/claw-orchestrator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== بررسی نسخه ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Help ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo --help&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
نمونه دستورات:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
clawo acp&lt;br /&gt;
clawo serve&lt;br /&gt;
&lt;br /&gt;
clawo session-start&lt;br /&gt;
clawo session-send&lt;br /&gt;
clawo session-stop&lt;br /&gt;
clawo session-list&lt;br /&gt;
clawo session-status&lt;br /&gt;
clawo session-grep&lt;br /&gt;
clawo session-compact&lt;br /&gt;
&lt;br /&gt;
clawo runs&lt;br /&gt;
&lt;br /&gt;
clawo agents-list&lt;br /&gt;
clawo agents-create&lt;br /&gt;
&lt;br /&gt;
clawo skills-list&lt;br /&gt;
clawo skills-create&lt;br /&gt;
&lt;br /&gt;
clawo rules-list&lt;br /&gt;
clawo rules-create&lt;br /&gt;
&lt;br /&gt;
clawo session-team-list&lt;br /&gt;
clawo session-team-send&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Engineهای Claw Orchestrator =&lt;br /&gt;
&lt;br /&gt;
برای مشاهده Engineهای نسخه نصب‌شده:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo session-start --help&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
در نسخه 5.0.0 Engineهای زیر در CLI ارائه می‌شوند:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
claude&lt;br /&gt;
codex&lt;br /&gt;
codex-app&lt;br /&gt;
gemini&lt;br /&gt;
agy&lt;br /&gt;
cursor&lt;br /&gt;
opencode&lt;br /&gt;
custom&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
نمونه:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo session-start my-agent --engine claude&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= مشکل npm Install Scripts =&lt;br /&gt;
&lt;br /&gt;
در نسخه‌های جدید npm ممکن است Install Script بعضی dependencyهای Claw Orchestrator به دلایل امنیتی Block شود.&lt;br /&gt;
&lt;br /&gt;
نمونه:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
npm warn install-scripts&lt;br /&gt;
&lt;br /&gt;
openclaw&lt;br /&gt;
re2&lt;br /&gt;
@google/genai&lt;br /&gt;
tree-sitter-bash&lt;br /&gt;
protobufjs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
در این شرایط ممکن است CLI کار کند ولی Server با خطایی مشابه زیر اجرا نشود:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Error: Cannot find module &#039;./build/Release/re2.node&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== رفع مشکل RE2 ==&lt;br /&gt;
&lt;br /&gt;
اجازه اجرای Scriptهای موردنیاز:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
npm config set allow-scripts=openclaw,re2,@google/genai,tree-sitter-bash,protobufjs --location=user&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
بررسی:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
npm config get allow-scripts&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
سپس:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
cd &amp;quot;$env:APPDATA\npm\node_modules\@enderfga\claw-orchestrator&amp;quot;&lt;br /&gt;
npm rebuild re2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
در صورت موفقیت:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rebuilt dependencies successfully&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
سپس Server را مجدداً اجرا کنید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo serve&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= اجرای Standalone Server =&lt;br /&gt;
&lt;br /&gt;
برای اجرای Claw Orchestrator:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo serve&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
نمونه خروجی:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ultraapp] runtime mode: host&lt;br /&gt;
[ultraapp] router on http://127.0.0.1:19000/forge/&amp;amp;lt;slug&amp;amp;gt;/&lt;br /&gt;
&lt;br /&gt;
[embedded-server] Listening on http://127.0.0.1:18796&lt;br /&gt;
[embedded-server] Token file: C:\Users\USER\.openclaw\server-token&lt;br /&gt;
&lt;br /&gt;
Standalone server running on http://127.0.0.1:18796&lt;br /&gt;
&lt;br /&gt;
Press Ctrl+C to stop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Dashboard =&lt;br /&gt;
&lt;br /&gt;
پس از اجرای:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo serve&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Claw Orchestrator آدرس Dashboard دارای Authentication Token را در Terminal نمایش می‌دهد.&lt;br /&gt;
&lt;br /&gt;
ساختار URL:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://127.0.0.1:18796/dashboard?token=YOUR_TOKEN&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;هشدار امنیتی:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Token واقعی را:&lt;br /&gt;
&lt;br /&gt;
* داخل Wiki قرار ندهید.&lt;br /&gt;
* داخل Git Commit نکنید.&lt;br /&gt;
* در Screenshot عمومی منتشر نکنید.&lt;br /&gt;
* برای دیگران ارسال نکنید.&lt;br /&gt;
&lt;br /&gt;
Token در فایل محلی زیر نگهداری می‌شود:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\Users\USERNAME\.openclaw\server-token&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
بعد از Authentication، آدرس پایه Dashboard:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://127.0.0.1:18796/dashboard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Forge Router =&lt;br /&gt;
&lt;br /&gt;
هنگام اجرای Server ممکن است Router دیگری نیز اجرا شود:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://127.0.0.1:19000/forge/&amp;amp;lt;slug&amp;amp;gt;/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
این Router توسط بخش Forge مورد استفاده قرار می‌گیرد.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= معماری Standalone =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Claude Code ───────┐&lt;br /&gt;
Codex ─────────────┤&lt;br /&gt;
Cursor Agent ──────┤&lt;br /&gt;
OpenCode ──────────┤&lt;br /&gt;
Antigravity ───────┤&lt;br /&gt;
Custom Engine ─────┤&lt;br /&gt;
                   ↓&lt;br /&gt;
           Claw Orchestrator&lt;br /&gt;
                   │&lt;br /&gt;
        ┌──────────┼──────────┐&lt;br /&gt;
        ↓          ↓          ↓&lt;br /&gt;
     Sessions    Agents     Skills&lt;br /&gt;
        │          │          │&lt;br /&gt;
        └──────────┼──────────┘&lt;br /&gt;
                   ↓&lt;br /&gt;
                 Rules&lt;br /&gt;
                   │&lt;br /&gt;
                   ↓&lt;br /&gt;
              Dashboard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Health Check کامل =&lt;br /&gt;
&lt;br /&gt;
برای بررسی محیط، فایل زیر را ایجاد کنید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AgenticDevOS-Check.ps1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
و محتوای زیر را در آن قرار دهید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
$tools = @(&lt;br /&gt;
    @{ Name = &amp;quot;Node.js&amp;quot;;           Command = &amp;quot;node&amp;quot;;         Args = @(&amp;quot;--version&amp;quot;) }&lt;br /&gt;
    @{ Name = &amp;quot;npm&amp;quot;;               Command = &amp;quot;npm&amp;quot;;          Args = @(&amp;quot;--version&amp;quot;) }&lt;br /&gt;
    @{ Name = &amp;quot;Git&amp;quot;;               Command = &amp;quot;git&amp;quot;;          Args = @(&amp;quot;--version&amp;quot;) }&lt;br /&gt;
&lt;br /&gt;
    @{ Name = &amp;quot;Claude Code&amp;quot;;       Command = &amp;quot;claude&amp;quot;;       Args = @(&amp;quot;--version&amp;quot;) }&lt;br /&gt;
    @{ Name = &amp;quot;Codex&amp;quot;;             Command = &amp;quot;codex&amp;quot;;        Args = @(&amp;quot;--version&amp;quot;) }&lt;br /&gt;
    @{ Name = &amp;quot;OpenCode&amp;quot;;          Command = &amp;quot;opencode&amp;quot;;     Args = @(&amp;quot;--version&amp;quot;) }&lt;br /&gt;
    @{ Name = &amp;quot;Cursor Agent&amp;quot;;      Command = &amp;quot;cursor-agent&amp;quot;; Args = @(&amp;quot;--version&amp;quot;) }&lt;br /&gt;
    @{ Name = &amp;quot;Antigravity&amp;quot;;       Command = &amp;quot;agy&amp;quot;;          Args = @(&amp;quot;--version&amp;quot;) }&lt;br /&gt;
    @{ Name = &amp;quot;Freebuff&amp;quot;;          Command = &amp;quot;freebuff&amp;quot;;     Args = @(&amp;quot;--version&amp;quot;) }&lt;br /&gt;
&lt;br /&gt;
    @{ Name = &amp;quot;Claw Orchestrator&amp;quot;; Command = &amp;quot;clawo&amp;quot;;        Args = @(&amp;quot;--version&amp;quot;) }&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
$results = @()&lt;br /&gt;
&lt;br /&gt;
function Write-Section {&lt;br /&gt;
    param([string]$Title)&lt;br /&gt;
&lt;br /&gt;
    Write-Host &amp;quot;&amp;quot;&lt;br /&gt;
    Write-Host &amp;quot;============================================================&amp;quot; -ForegroundColor Cyan&lt;br /&gt;
    Write-Host &amp;quot; $Title&amp;quot; -ForegroundColor Cyan&lt;br /&gt;
    Write-Host &amp;quot;============================================================&amp;quot; -ForegroundColor Cyan&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function Add-Result {&lt;br /&gt;
    param(&lt;br /&gt;
        [string]$Name,&lt;br /&gt;
        [string]$Status,&lt;br /&gt;
        [string]$Version = &amp;quot;&amp;quot;,&lt;br /&gt;
        [string]$Path = &amp;quot;&amp;quot;&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
    $script:results += [PSCustomObject]@{&lt;br /&gt;
        Name    = $Name&lt;br /&gt;
        Status  = $Status&lt;br /&gt;
        Version = $Version&lt;br /&gt;
        Path    = $Path&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Clear-Host&lt;br /&gt;
&lt;br /&gt;
Write-Host &amp;quot;&amp;quot;&lt;br /&gt;
Write-Host &amp;quot;============================================================&amp;quot; -ForegroundColor Cyan&lt;br /&gt;
Write-Host &amp;quot;             AGENTIC DEV OS HEALTH CHECK&amp;quot; -ForegroundColor Cyan&lt;br /&gt;
Write-Host &amp;quot;============================================================&amp;quot; -ForegroundColor Cyan&lt;br /&gt;
&lt;br /&gt;
Write-Section &amp;quot;CLI TOOLS&amp;quot;&lt;br /&gt;
&lt;br /&gt;
foreach ($tool in $tools) {&lt;br /&gt;
&lt;br /&gt;
    $command = Get-Command $tool.Command -ErrorAction SilentlyContinue&lt;br /&gt;
&lt;br /&gt;
    if (-not $command) {&lt;br /&gt;
&lt;br /&gt;
        Write-Host &amp;quot;[MISSING] &amp;quot; -ForegroundColor Red -NoNewline&lt;br /&gt;
        Write-Host $tool.Name&lt;br /&gt;
&lt;br /&gt;
        Add-Result -Name $tool.Name -Status &amp;quot;MISSING&amp;quot;&lt;br /&gt;
&lt;br /&gt;
        continue&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    try {&lt;br /&gt;
&lt;br /&gt;
        $output = &amp;amp; $tool.Command @($tool.Args) 2&amp;gt;&amp;amp;1&lt;br /&gt;
&lt;br /&gt;
        $version = (&lt;br /&gt;
            $output |&lt;br /&gt;
            Where-Object { $_ -ne $null } |&lt;br /&gt;
            Select-Object -First 1&lt;br /&gt;
        ).ToString().Trim()&lt;br /&gt;
&lt;br /&gt;
        Write-Host &amp;quot;[OK]      &amp;quot; -ForegroundColor Green -NoNewline&lt;br /&gt;
        Write-Host &amp;quot;$($tool.Name) -&amp;gt; $version&amp;quot;&lt;br /&gt;
&lt;br /&gt;
        Write-Host &amp;quot;          Path: &amp;quot; -ForegroundColor DarkGray -NoNewline&lt;br /&gt;
        Write-Host $command.Source -ForegroundColor DarkGray&lt;br /&gt;
&lt;br /&gt;
        Add-Result `&lt;br /&gt;
            -Name $tool.Name `&lt;br /&gt;
            -Status &amp;quot;OK&amp;quot; `&lt;br /&gt;
            -Version $version `&lt;br /&gt;
            -Path $command.Source&lt;br /&gt;
    }&lt;br /&gt;
    catch {&lt;br /&gt;
&lt;br /&gt;
        Write-Host &amp;quot;[WARNING] &amp;quot; -ForegroundColor Yellow -NoNewline&lt;br /&gt;
        Write-Host &amp;quot;$($tool.Name) -&amp;gt; command exists but version check failed&amp;quot;&lt;br /&gt;
&lt;br /&gt;
        Add-Result `&lt;br /&gt;
            -Name $tool.Name `&lt;br /&gt;
            -Status &amp;quot;WARNING&amp;quot; `&lt;br /&gt;
            -Path $command.Source&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    Write-Host &amp;quot;&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Write-Section &amp;quot;PATH CHECK&amp;quot;&lt;br /&gt;
&lt;br /&gt;
$pathEntries = @(&lt;br /&gt;
    $env:Path -split &amp;quot;;&amp;quot; |&lt;br /&gt;
    ForEach-Object {&lt;br /&gt;
        $_.Trim().TrimEnd(&amp;quot;\&amp;quot;)&lt;br /&gt;
    } |&lt;br /&gt;
    Where-Object {&lt;br /&gt;
        $_&lt;br /&gt;
    }&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
$duplicatePaths = @(&lt;br /&gt;
    $pathEntries |&lt;br /&gt;
    Group-Object |&lt;br /&gt;
    Where-Object {&lt;br /&gt;
        $_.Count -gt 1&lt;br /&gt;
    }&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
if ($duplicatePaths.Count -eq 0) {&lt;br /&gt;
&lt;br /&gt;
    Write-Host &amp;quot;[OK]      No duplicate PATH entries found.&amp;quot; -ForegroundColor Green&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
else {&lt;br /&gt;
&lt;br /&gt;
    Write-Host &amp;quot;[WARNING] Duplicate PATH entries found:&amp;quot; -ForegroundColor Yellow&lt;br /&gt;
&lt;br /&gt;
    foreach ($duplicate in $duplicatePaths) {&lt;br /&gt;
&lt;br /&gt;
        Write-Host &amp;quot;          [$($duplicate.Count)x] $($duplicate.Name)&amp;quot; `&lt;br /&gt;
            -ForegroundColor Yellow&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Write-Section &amp;quot;NPM CONFIGURATION&amp;quot;&lt;br /&gt;
&lt;br /&gt;
try {&lt;br /&gt;
&lt;br /&gt;
    $allowScripts = npm config get allow-scripts 2&amp;gt;$null&lt;br /&gt;
&lt;br /&gt;
    Write-Host &amp;quot;allow-scripts:&amp;quot;&lt;br /&gt;
    Write-Host &amp;quot;  $allowScripts&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    $requiredScripts = @(&lt;br /&gt;
        &amp;quot;openclaw&amp;quot;,&lt;br /&gt;
        &amp;quot;re2&amp;quot;,&lt;br /&gt;
        &amp;quot;@google/genai&amp;quot;,&lt;br /&gt;
        &amp;quot;tree-sitter-bash&amp;quot;,&lt;br /&gt;
        &amp;quot;protobufjs&amp;quot;&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
    $configuredScripts = @(&lt;br /&gt;
        $allowScripts -split &amp;quot;,&amp;quot; |&lt;br /&gt;
        ForEach-Object {&lt;br /&gt;
            $_.Trim()&lt;br /&gt;
        }&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
    foreach ($package in $requiredScripts) {&lt;br /&gt;
&lt;br /&gt;
        if ($configuredScripts -contains $package) {&lt;br /&gt;
&lt;br /&gt;
            Write-Host &amp;quot;[OK]      &amp;quot; -ForegroundColor Green -NoNewline&lt;br /&gt;
            Write-Host &amp;quot;$package install scripts allowed&amp;quot;&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
        else {&lt;br /&gt;
&lt;br /&gt;
            Write-Host &amp;quot;[WARNING] &amp;quot; -ForegroundColor Yellow -NoNewline&lt;br /&gt;
            Write-Host &amp;quot;$package is not in npm allow-scripts&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
catch {&lt;br /&gt;
&lt;br /&gt;
    Write-Host &amp;quot;[WARNING] Could not read npm configuration.&amp;quot; `&lt;br /&gt;
        -ForegroundColor Yellow&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Write-Section &amp;quot;CLAW ORCHESTRATOR&amp;quot;&lt;br /&gt;
&lt;br /&gt;
$clawoCommand = Get-Command clawo -ErrorAction SilentlyContinue&lt;br /&gt;
&lt;br /&gt;
if (-not $clawoCommand) {&lt;br /&gt;
&lt;br /&gt;
    Write-Host &amp;quot;[MISSING] Claw Orchestrator is not installed.&amp;quot; `&lt;br /&gt;
        -ForegroundColor Red&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
else {&lt;br /&gt;
&lt;br /&gt;
    Write-Host &amp;quot;[OK]      Claw Orchestrator CLI found.&amp;quot; `&lt;br /&gt;
        -ForegroundColor Green&lt;br /&gt;
&lt;br /&gt;
    try {&lt;br /&gt;
&lt;br /&gt;
        $npmRoot = (npm root -g).Trim()&lt;br /&gt;
&lt;br /&gt;
        $clawoRoot = Join-Path `&lt;br /&gt;
            $npmRoot `&lt;br /&gt;
            &amp;quot;@enderfga\claw-orchestrator&amp;quot;&lt;br /&gt;
&lt;br /&gt;
        Write-Host &amp;quot;&amp;quot;&lt;br /&gt;
        Write-Host &amp;quot;Package:&amp;quot;&lt;br /&gt;
        Write-Host &amp;quot;  $clawoRoot&amp;quot;&lt;br /&gt;
&lt;br /&gt;
        if (Test-Path $clawoRoot) {&lt;br /&gt;
&lt;br /&gt;
            Write-Host &amp;quot;[OK]      Claw Orchestrator package directory found.&amp;quot; `&lt;br /&gt;
                -ForegroundColor Green&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        $re2File = Join-Path `&lt;br /&gt;
            $clawoRoot `&lt;br /&gt;
            &amp;quot;node_modules\re2\build\Release\re2.node&amp;quot;&lt;br /&gt;
&lt;br /&gt;
        Write-Host &amp;quot;&amp;quot;&lt;br /&gt;
        Write-Host &amp;quot;RE2 Native Module:&amp;quot;&lt;br /&gt;
&lt;br /&gt;
        if (Test-Path $re2File) {&lt;br /&gt;
&lt;br /&gt;
            Write-Host &amp;quot;[OK]      re2.node found.&amp;quot; `&lt;br /&gt;
                -ForegroundColor Green&lt;br /&gt;
&lt;br /&gt;
            Write-Host &amp;quot;          $re2File&amp;quot; `&lt;br /&gt;
                -ForegroundColor DarkGray&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
        else {&lt;br /&gt;
&lt;br /&gt;
            Write-Host &amp;quot;[ERROR]   re2.node NOT FOUND.&amp;quot; `&lt;br /&gt;
                -ForegroundColor Red&lt;br /&gt;
&lt;br /&gt;
            Write-Host &amp;quot;&amp;quot;&lt;br /&gt;
            Write-Host &amp;quot;Fix:&amp;quot;&lt;br /&gt;
            Write-Host &#039;npm config set allow-scripts=openclaw,re2,@google/genai,tree-sitter-bash,protobufjs --location=user&#039;&lt;br /&gt;
            Write-Host &amp;quot;cd `&amp;quot;$clawoRoot`&amp;quot;&amp;quot;&lt;br /&gt;
            Write-Host &amp;quot;npm rebuild re2&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
    catch {&lt;br /&gt;
&lt;br /&gt;
        Write-Host &amp;quot;[WARNING] Could not inspect Claw Orchestrator package.&amp;quot; `&lt;br /&gt;
            -ForegroundColor Yellow&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Write-Section &amp;quot;CLAW SERVER&amp;quot;&lt;br /&gt;
&lt;br /&gt;
$serverPort = 18796&lt;br /&gt;
$serverRunning = $false&lt;br /&gt;
&lt;br /&gt;
try {&lt;br /&gt;
&lt;br /&gt;
    $connection = Get-NetTCPConnection `&lt;br /&gt;
        -LocalPort $serverPort `&lt;br /&gt;
        -State Listen `&lt;br /&gt;
        -ErrorAction SilentlyContinue&lt;br /&gt;
&lt;br /&gt;
    if ($connection) {&lt;br /&gt;
&lt;br /&gt;
        $serverRunning = $true&lt;br /&gt;
&lt;br /&gt;
        Write-Host &amp;quot;[OK]      &amp;quot; -ForegroundColor Green -NoNewline&lt;br /&gt;
        Write-Host &amp;quot;Claw server is listening on port $serverPort&amp;quot;&lt;br /&gt;
&lt;br /&gt;
        Write-Host &amp;quot;&amp;quot;&lt;br /&gt;
        Write-Host &amp;quot;Server:&amp;quot;&lt;br /&gt;
        Write-Host &amp;quot;  http://127.0.0.1:$serverPort&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
    else {&lt;br /&gt;
&lt;br /&gt;
        Write-Host &amp;quot;[INFO]    Claw server is not currently running.&amp;quot; `&lt;br /&gt;
            -ForegroundColor Cyan&lt;br /&gt;
&lt;br /&gt;
        Write-Host &amp;quot;&amp;quot;&lt;br /&gt;
        Write-Host &amp;quot;Start with:&amp;quot;&lt;br /&gt;
        Write-Host &amp;quot;  clawo serve&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
catch {&lt;br /&gt;
&lt;br /&gt;
    Write-Host &amp;quot;[WARNING] Could not check server port.&amp;quot; `&lt;br /&gt;
        -ForegroundColor Yellow&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
$tokenFile = Join-Path `&lt;br /&gt;
    $HOME `&lt;br /&gt;
    &amp;quot;.openclaw\server-token&amp;quot;&lt;br /&gt;
&lt;br /&gt;
if (Test-Path $tokenFile) {&lt;br /&gt;
&lt;br /&gt;
    Write-Host &amp;quot;&amp;quot;&lt;br /&gt;
    Write-Host &amp;quot;[OK]      Server token file exists.&amp;quot; `&lt;br /&gt;
        -ForegroundColor Green&lt;br /&gt;
&lt;br /&gt;
    Write-Host &amp;quot;          $tokenFile&amp;quot; `&lt;br /&gt;
        -ForegroundColor DarkGray&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if ($serverRunning) {&lt;br /&gt;
&lt;br /&gt;
    Write-Host &amp;quot;&amp;quot;&lt;br /&gt;
    Write-Host &amp;quot;Dashboard base URL:&amp;quot;&lt;br /&gt;
    Write-Host &amp;quot;  http://127.0.0.1:$serverPort/dashboard&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    Write-Host &amp;quot;&amp;quot;&lt;br /&gt;
    Write-Host &amp;quot;NOTE: Authentication token is intentionally not displayed.&amp;quot; `&lt;br /&gt;
        -ForegroundColor DarkGray&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Write-Section &amp;quot;SUMMARY&amp;quot;&lt;br /&gt;
&lt;br /&gt;
$installed = @(&lt;br /&gt;
    $results |&lt;br /&gt;
    Where-Object {&lt;br /&gt;
        $_.Status -eq &amp;quot;OK&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
).Count&lt;br /&gt;
&lt;br /&gt;
$warnings = @(&lt;br /&gt;
    $results |&lt;br /&gt;
    Where-Object {&lt;br /&gt;
        $_.Status -eq &amp;quot;WARNING&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
).Count&lt;br /&gt;
&lt;br /&gt;
$missing = @(&lt;br /&gt;
    $results |&lt;br /&gt;
    Where-Object {&lt;br /&gt;
        $_.Status -eq &amp;quot;MISSING&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
).Count&lt;br /&gt;
&lt;br /&gt;
Write-Host &amp;quot;CLI Tools OK : $installed&amp;quot;&lt;br /&gt;
Write-Host &amp;quot;Warnings     : $warnings&amp;quot;&lt;br /&gt;
Write-Host &amp;quot;Missing      : $missing&amp;quot;&lt;br /&gt;
Write-Host &amp;quot;Total        : $($tools.Count)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Write-Host &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
if (($missing -eq 0) -and ($warnings -eq 0)) {&lt;br /&gt;
&lt;br /&gt;
    Write-Host &amp;quot;[READY] Agentic Development environment is ready.&amp;quot; `&lt;br /&gt;
        -ForegroundColor Green&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
elseif ($missing -eq 0) {&lt;br /&gt;
&lt;br /&gt;
    Write-Host &amp;quot;[READY WITH WARNINGS] All CLI tools are installed.&amp;quot; `&lt;br /&gt;
        -ForegroundColor Yellow&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
else {&lt;br /&gt;
&lt;br /&gt;
    Write-Host &amp;quot;[NOT READY] Some required tools are missing.&amp;quot; `&lt;br /&gt;
        -ForegroundColor Red&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Write-Host &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
if ($serverRunning) {&lt;br /&gt;
&lt;br /&gt;
    Write-Host &amp;quot;Claw Server : RUNNING&amp;quot; `&lt;br /&gt;
        -ForegroundColor Green&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
else {&lt;br /&gt;
&lt;br /&gt;
    Write-Host &amp;quot;Claw Server : STOPPED&amp;quot; `&lt;br /&gt;
        -ForegroundColor Cyan&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Write-Host &amp;quot;&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= اجرای Health Check =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
.\AgenticDevOS-Check.ps1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
اگر Execution Policy مانع اجرا شد:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
سپس:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
.\AgenticDevOS-Check.ps1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= موارد بررسی‌شده توسط Health Check =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! بررسی&lt;br /&gt;
! توضیح&lt;br /&gt;
|-&lt;br /&gt;
| Node.js&lt;br /&gt;
| نسخه و PATH&lt;br /&gt;
|-&lt;br /&gt;
| npm&lt;br /&gt;
| نسخه و PATH&lt;br /&gt;
|-&lt;br /&gt;
| Git&lt;br /&gt;
| نسخه و PATH&lt;br /&gt;
|-&lt;br /&gt;
| Claude Code&lt;br /&gt;
| نسخه و PATH&lt;br /&gt;
|-&lt;br /&gt;
| Codex&lt;br /&gt;
| نسخه و PATH&lt;br /&gt;
|-&lt;br /&gt;
| OpenCode&lt;br /&gt;
| نسخه و PATH&lt;br /&gt;
|-&lt;br /&gt;
| Cursor Agent&lt;br /&gt;
| نسخه و PATH&lt;br /&gt;
|-&lt;br /&gt;
| Antigravity&lt;br /&gt;
| نسخه و PATH&lt;br /&gt;
|-&lt;br /&gt;
| Freebuff&lt;br /&gt;
| نسخه و PATH&lt;br /&gt;
|-&lt;br /&gt;
| Claw Orchestrator&lt;br /&gt;
| نسخه و PATH&lt;br /&gt;
|-&lt;br /&gt;
| Duplicate PATH&lt;br /&gt;
| پیدا کردن مسیرهای تکراری&lt;br /&gt;
|-&lt;br /&gt;
| npm allow-scripts&lt;br /&gt;
| بررسی مجوز Native Install Scripts&lt;br /&gt;
|-&lt;br /&gt;
| RE2&lt;br /&gt;
| بررسی وجود re2.node&lt;br /&gt;
|-&lt;br /&gt;
| Claw Server&lt;br /&gt;
| بررسی Port 18796&lt;br /&gt;
|-&lt;br /&gt;
| Server Token&lt;br /&gt;
| بررسی وجود Token File بدون نمایش Token&lt;br /&gt;
|-&lt;br /&gt;
| Dashboard&lt;br /&gt;
| نمایش URL پایه Dashboard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= مدیریت Sessionها =&lt;br /&gt;
&lt;br /&gt;
== مشاهده Sessionها ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo session-list&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ساخت Session با Claude ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo session-start claude-main `&lt;br /&gt;
    --engine claude `&lt;br /&gt;
    --cwd &amp;quot;D:\Source\MyProject&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Codex ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo session-start codex-main `&lt;br /&gt;
    --engine codex `&lt;br /&gt;
    --cwd &amp;quot;D:\Source\MyProject&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cursor ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo session-start cursor-main `&lt;br /&gt;
    --engine cursor `&lt;br /&gt;
    --cwd &amp;quot;D:\Source\MyProject&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== OpenCode ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo session-start opencode-main `&lt;br /&gt;
    --engine opencode `&lt;br /&gt;
    --cwd &amp;quot;D:\Source\MyProject&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Antigravity ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo session-start agy-main `&lt;br /&gt;
    --engine agy `&lt;br /&gt;
    --cwd &amp;quot;D:\Source\MyProject&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= ارسال Task =&lt;br /&gt;
&lt;br /&gt;
مثال:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo session-send claude-main &amp;quot;Analyze this repository. Do not modify files. Explain the architecture and potential problems.&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= وضعیت Session =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo session-status claude-main&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= جستجو در History =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo session-grep claude-main &amp;quot;error&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Compact کردن Session =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo session-compact claude-main&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= توقف Session =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo session-stop claude-main&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Run Ledger =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo runs&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Run Ledger تاریخچه اجراهای Agentها را نگهداری می‌کند.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Agents =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo agents-list&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
برای ساخت Agent:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo agents-create --help&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Skills =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo skills-list&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
برای ساخت Skill:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo skills-create --help&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Rules =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo rules-list&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
برای ساخت Rule:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo rules-create --help&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Agent Teams =&lt;br /&gt;
&lt;br /&gt;
مشاهده اعضای Team:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo session-team-list SESSION_NAME&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ارسال پیام:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo session-team-send SESSION_NAME TEAMMATE &amp;quot;Review this implementation.&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Git Worktree و Isolation =&lt;br /&gt;
&lt;br /&gt;
برای اجرای همزمان چند Agent بهتر است هر Agent در Worktree مستقل کار کند.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Repository&lt;br /&gt;
│&lt;br /&gt;
├── main&lt;br /&gt;
│&lt;br /&gt;
├── worktree-claude&lt;br /&gt;
│&lt;br /&gt;
├── worktree-codex&lt;br /&gt;
│&lt;br /&gt;
├── worktree-cursor&lt;br /&gt;
│&lt;br /&gt;
├── worktree-antigravity&lt;br /&gt;
│&lt;br /&gt;
└── worktree-review&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Claw Orchestrator نیز Option مربوط به Worktree دارد:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo session-start --help&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Option:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-w, --worktree [name]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= LLM-as-a-Judge =&lt;br /&gt;
&lt;br /&gt;
یکی از اهداف اصلی این معماری استفاده از Agentهای مختلف برای تولید چند Solution و سپس ارزیابی آن‌ها است.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                       TASK&lt;br /&gt;
                         │&lt;br /&gt;
                         ↓&lt;br /&gt;
                 Claw Orchestrator&lt;br /&gt;
                         │&lt;br /&gt;
        ┌────────────────┼────────────────┐&lt;br /&gt;
        ↓                ↓                ↓&lt;br /&gt;
  Claude Code          Codex         Antigravity&lt;br /&gt;
        │                │                │&lt;br /&gt;
        ↓                ↓                ↓&lt;br /&gt;
   Solution A       Solution B       Solution C&lt;br /&gt;
        │                │                │&lt;br /&gt;
        └────────────────┼────────────────┘&lt;br /&gt;
                         ↓&lt;br /&gt;
                  Automated Checks&lt;br /&gt;
                         │&lt;br /&gt;
          ┌──────────────┼──────────────┐&lt;br /&gt;
          ↓              ↓              ↓&lt;br /&gt;
        Build           Tests          Lint&lt;br /&gt;
          │              │              │&lt;br /&gt;
          └──────────────┼──────────────┘&lt;br /&gt;
                         ↓&lt;br /&gt;
                  Security Check&lt;br /&gt;
                         ↓&lt;br /&gt;
                     Benchmark&lt;br /&gt;
                         ↓&lt;br /&gt;
                  Multi-Agent Review&lt;br /&gt;
                         ↓&lt;br /&gt;
                    LLM Judge&lt;br /&gt;
                         ↓&lt;br /&gt;
                  Score / Consensus&lt;br /&gt;
                         ↓&lt;br /&gt;
                    Best Result&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= ترتیب پیشنهادی ارزیابی =&lt;br /&gt;
&lt;br /&gt;
LLM نباید تنها معیار انتخاب بهترین Implementation باشد.&lt;br /&gt;
&lt;br /&gt;
ترتیب پیشنهادی:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Candidate&lt;br /&gt;
   │&lt;br /&gt;
   ↓&lt;br /&gt;
Build&lt;br /&gt;
   │&lt;br /&gt;
   ↓&lt;br /&gt;
Unit Tests&lt;br /&gt;
   │&lt;br /&gt;
   ↓&lt;br /&gt;
Integration Tests&lt;br /&gt;
   │&lt;br /&gt;
   ↓&lt;br /&gt;
Lint&lt;br /&gt;
   │&lt;br /&gt;
   ↓&lt;br /&gt;
Type Check&lt;br /&gt;
   │&lt;br /&gt;
   ↓&lt;br /&gt;
Security Check&lt;br /&gt;
   │&lt;br /&gt;
   ↓&lt;br /&gt;
Benchmark&lt;br /&gt;
   │&lt;br /&gt;
   ↓&lt;br /&gt;
LLM Review&lt;br /&gt;
   │&lt;br /&gt;
   ↓&lt;br /&gt;
Final Score&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= نقش Agentها =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Role&lt;br /&gt;
! Agent پیشنهادی&lt;br /&gt;
! وظیفه&lt;br /&gt;
|-&lt;br /&gt;
| Planner&lt;br /&gt;
| Claude / Codex&lt;br /&gt;
| تحلیل Task&lt;br /&gt;
|-&lt;br /&gt;
| Primary Coder&lt;br /&gt;
| Claude / Codex&lt;br /&gt;
| Implementation اصلی&lt;br /&gt;
|-&lt;br /&gt;
| Alternative Coder&lt;br /&gt;
| Cursor / OpenCode / Antigravity&lt;br /&gt;
| Implementation جایگزین&lt;br /&gt;
|-&lt;br /&gt;
| Reviewer&lt;br /&gt;
| Agent متفاوت از Coder&lt;br /&gt;
| Code Review&lt;br /&gt;
|-&lt;br /&gt;
| Security Reviewer&lt;br /&gt;
| Claude / Codex&lt;br /&gt;
| بررسی Security&lt;br /&gt;
|-&lt;br /&gt;
| Judge&lt;br /&gt;
| مدل متفاوت از تولیدکننده&lt;br /&gt;
| امتیازدهی&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
بهتر است مدلی که Solution را تولید کرده است تنها Judge همان Solution نباشد.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Multi-Agent Council =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                    Problem&lt;br /&gt;
                       │&lt;br /&gt;
                       ↓&lt;br /&gt;
                Orchestrator&lt;br /&gt;
                       │&lt;br /&gt;
          ┌────────────┼────────────┐&lt;br /&gt;
          ↓            ↓            ↓&lt;br /&gt;
       Claude        Codex       Agent C&lt;br /&gt;
          │            │            │&lt;br /&gt;
          ↓            ↓            ↓&lt;br /&gt;
       Plan A         Plan B       Plan C&lt;br /&gt;
          │            │            │&lt;br /&gt;
          └────────────┼────────────┘&lt;br /&gt;
                       ↓&lt;br /&gt;
                  Cross Review&lt;br /&gt;
                       ↓&lt;br /&gt;
                     Vote&lt;br /&gt;
                       ↓&lt;br /&gt;
                  Consensus&lt;br /&gt;
                       ↓&lt;br /&gt;
                 Final Decision&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
کاربردها:&lt;br /&gt;
&lt;br /&gt;
* Architecture Design&lt;br /&gt;
* Code Review&lt;br /&gt;
* Refactoring&lt;br /&gt;
* Debugging&lt;br /&gt;
* Security Review&lt;br /&gt;
* Performance Optimization&lt;br /&gt;
* مقایسه Implementationها&lt;br /&gt;
* Pull Request Review&lt;br /&gt;
* انتخاب Framework&lt;br /&gt;
* انتخاب Design Pattern&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Command Not Found ==&lt;br /&gt;
&lt;br /&gt;
اگر:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
The term &#039;xxxx&#039; is not recognized&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
بررسی کنید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
Get-Command xxxx&lt;br /&gt;
where.exe xxxx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== بررسی PATH ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
$env:Path -split &#039;;&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== پیدا کردن PATHهای تکراری ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
$env:Path -split &#039;;&#039; |&lt;br /&gt;
    ForEach-Object { $_.Trim().TrimEnd(&#039;\&#039;) } |&lt;br /&gt;
    Group-Object |&lt;br /&gt;
    Where-Object Count -gt 1 |&lt;br /&gt;
    Select-Object Count, Name&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= بروزرسانی =&lt;br /&gt;
&lt;br /&gt;
== Codex ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
npm install -g @openai/codex@latest&lt;br /&gt;
codex --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== OpenCode ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
npm install -g opencode-ai@latest&lt;br /&gt;
opencode --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Freebuff ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
npm install -g freebuff@latest&lt;br /&gt;
freebuff --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Claw Orchestrator ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
npm install -g @enderfga/claw-orchestrator@latest&lt;br /&gt;
clawo --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= نصب سریع روی سیستم جدید =&lt;br /&gt;
&lt;br /&gt;
== Claude Code ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
irm https://claude.ai/install.ps1 | iex&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cursor Agent ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
irm &#039;https://cursor.com/install?win32=true&#039; | iex&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Antigravity ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
irm https://antigravity.google/cli/install.ps1 | iex&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== OpenCode ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
npm config set allow-scripts=opencode-ai --location=user&lt;br /&gt;
npm i -g opencode-ai&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Codex ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
npm i -g @openai/codex&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Freebuff ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
npm i -g freebuff&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Claw Orchestrator ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
npm i -g @enderfga/claw-orchestrator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== مجوز Install Scriptهای Claw Orchestrator ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
npm config set allow-scripts=openclaw,re2,@google/genai,tree-sitter-bash,protobufjs --location=user&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
در صورت نیاز:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
cd &amp;quot;$env:APPDATA\npm\node_modules\@enderfga\claw-orchestrator&amp;quot;&lt;br /&gt;
npm rebuild re2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= بررسی نهایی =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
node --version&lt;br /&gt;
npm --version&lt;br /&gt;
git --version&lt;br /&gt;
&lt;br /&gt;
claude --version&lt;br /&gt;
codex --version&lt;br /&gt;
opencode --version&lt;br /&gt;
cursor-agent --version&lt;br /&gt;
agy --version&lt;br /&gt;
freebuff --version&lt;br /&gt;
&lt;br /&gt;
clawo --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
سپس Health Check:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
.\AgenticDevOS-Check.ps1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
و در نهایت Server:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo serve&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= معماری نهایی Agentic Development OS =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
┌─────────────────────────────────────────────────┐&lt;br /&gt;
│              Windows Development OS             │&lt;br /&gt;
│                                                 │&lt;br /&gt;
│                 Developer / User                │&lt;br /&gt;
│                        │                        │&lt;br /&gt;
│                        ↓                        │&lt;br /&gt;
│                Claw Orchestrator                │&lt;br /&gt;
│                        │                        │&lt;br /&gt;
│                 Web Dashboard                   │&lt;br /&gt;
│                        │                        │&lt;br /&gt;
│                Planner / Router                 │&lt;br /&gt;
│                        │                        │&lt;br /&gt;
│     ┌──────────────────┼──────────────────┐     │&lt;br /&gt;
│     │                  │                  │     │&lt;br /&gt;
│     ↓                  ↓                  ↓     │&lt;br /&gt;
│ Claude Code          Codex          Cursor Agent│&lt;br /&gt;
│     │                  │                  │     │&lt;br /&gt;
│     ├────────────── OpenCode ─────────────┤     │&lt;br /&gt;
│     │                  │                  │     │&lt;br /&gt;
│     ├─────────── Antigravity ─────────────┤     │&lt;br /&gt;
│     │                  │                  │     │&lt;br /&gt;
│     └──────────── Custom Engines ─────────┘     │&lt;br /&gt;
│                        │                        │&lt;br /&gt;
│                        ↓                        │&lt;br /&gt;
│                Git Worktree Isolation           │&lt;br /&gt;
│                        │                        │&lt;br /&gt;
│                        ↓                        │&lt;br /&gt;
│               Automated Validation              │&lt;br /&gt;
│                        │                        │&lt;br /&gt;
│          Build / Test / Lint / Security         │&lt;br /&gt;
│                        │                        │&lt;br /&gt;
│                        ↓                        │&lt;br /&gt;
│                Multi-Agent Review               │&lt;br /&gt;
│                        │                        │&lt;br /&gt;
│                        ↓                        │&lt;br /&gt;
│                  LLM-as-a-Judge                 │&lt;br /&gt;
│                        │                        │&lt;br /&gt;
│                        ↓                        │&lt;br /&gt;
│                    Best Result                  │&lt;br /&gt;
└─────────────────────────────────────────────────┘&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= خلاصه دستورات مهم =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! کار&lt;br /&gt;
! دستور&lt;br /&gt;
|-&lt;br /&gt;
| Version&lt;br /&gt;
| &amp;lt;code&amp;gt;clawo --version&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Help&lt;br /&gt;
| &amp;lt;code&amp;gt;clawo --help&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Server&lt;br /&gt;
| &amp;lt;code&amp;gt;clawo serve&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Dashboard&lt;br /&gt;
| &amp;lt;code&amp;gt;http://127.0.0.1:18796/dashboard&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Sessions&lt;br /&gt;
| &amp;lt;code&amp;gt;clawo session-list&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| ساخت Session&lt;br /&gt;
| &amp;lt;code&amp;gt;clawo session-start&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| ارسال Task&lt;br /&gt;
| &amp;lt;code&amp;gt;clawo session-send&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| وضعیت Session&lt;br /&gt;
| &amp;lt;code&amp;gt;clawo session-status&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| توقف Session&lt;br /&gt;
| &amp;lt;code&amp;gt;clawo session-stop&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| History&lt;br /&gt;
| &amp;lt;code&amp;gt;clawo runs&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Agents&lt;br /&gt;
| &amp;lt;code&amp;gt;clawo agents-list&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Skills&lt;br /&gt;
| &amp;lt;code&amp;gt;clawo skills-list&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Rules&lt;br /&gt;
| &amp;lt;code&amp;gt;clawo rules-list&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= نتیجه‌گیری =&lt;br /&gt;
&lt;br /&gt;
هدف این معماری ساخت یک &#039;&#039;&#039;Agentic Development Environment&#039;&#039;&#039; با کمترین تعداد لایه‌های اضافی و بیشترین استفاده از Coding Agentهای موجود است.&lt;br /&gt;
&lt;br /&gt;
Coding Agentهای مورد استفاده:&lt;br /&gt;
&lt;br /&gt;
* Claude Code&lt;br /&gt;
* OpenAI Codex&lt;br /&gt;
* Cursor Agent&lt;br /&gt;
* OpenCode&lt;br /&gt;
* Google Antigravity&lt;br /&gt;
* Freebuff / Custom Agents&lt;br /&gt;
&lt;br /&gt;
لایه مرکزی:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Claw Orchestrator&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
جریان کاری نهایی:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Task&lt;br /&gt;
 ↓&lt;br /&gt;
Claw Orchestrator&lt;br /&gt;
 ↓&lt;br /&gt;
Planner / Router&lt;br /&gt;
 ↓&lt;br /&gt;
Multiple Coding Agents&lt;br /&gt;
 ↓&lt;br /&gt;
Git Worktree Isolation&lt;br /&gt;
 ↓&lt;br /&gt;
Build + Tests + Lint + Security&lt;br /&gt;
 ↓&lt;br /&gt;
Multi-Agent Review&lt;br /&gt;
 ↓&lt;br /&gt;
LLM-as-a-Judge&lt;br /&gt;
 ↓&lt;br /&gt;
Best Result&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
این معماری در آینده می‌تواند با موارد زیر توسعه داده شود:&lt;br /&gt;
&lt;br /&gt;
* MCP&lt;br /&gt;
* Local LLM&lt;br /&gt;
* CI/CD&lt;br /&gt;
* Security Agents&lt;br /&gt;
* Automated Code Review&lt;br /&gt;
* Pull Request Review&lt;br /&gt;
* Custom Agents&lt;br /&gt;
* Custom Skills&lt;br /&gt;
* Custom Rules&lt;br /&gt;
* Multi-Agent Council&lt;br /&gt;
* Benchmarking&lt;br /&gt;
* Automated Testing&lt;br /&gt;
* Model Routing&lt;br /&gt;
* Agent Teams&lt;br /&gt;
* Forge&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;نکته مهم:&#039;&#039;&#039; Coding Agentها و Claw Orchestrator با سرعت زیادی توسعه پیدا می‌کنند. قبل از Upgrade، خروجی &amp;lt;code&amp;gt;--help&amp;lt;/code&amp;gt; نسخه نصب‌شده و مستندات رسمی پروژه بررسی شود.&lt;br /&gt;
&lt;br /&gt;
[[Category:Artificial Intelligence]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Windows]]&lt;br /&gt;
[[Category:Agentic AI]]&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Ai_Claw_Orchestrator&amp;diff=198</id>
		<title>Ai Claw Orchestrator</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Ai_Claw_Orchestrator&amp;diff=198"/>
		<updated>2026-08-20T18:41:17Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= راه‌اندازی Agentic Development Environment در Windows با Claw Orchestrator =&lt;br /&gt;
&lt;br /&gt;
این راهنما برای ساخت یک محیط &#039;&#039;&#039;Agentic Development&#039;&#039;&#039; روی Windows است که چند Coding Agent مختلف را در کنار یکدیگر مدیریت می‌کند.&lt;br /&gt;
&lt;br /&gt;
هدف این معماری استفاده از چند Coding Agent به عنوان Worker، Reviewer و Judge و مدیریت آن‌ها توسط &#039;&#039;&#039;Claw Orchestrator&#039;&#039;&#039; است.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Windows&lt;br /&gt;
│&lt;br /&gt;
├── Git&lt;br /&gt;
├── Node.js / npm&lt;br /&gt;
│&lt;br /&gt;
├── Claude Code&lt;br /&gt;
├── OpenAI Codex&lt;br /&gt;
├── Cursor Agent&lt;br /&gt;
├── OpenCode&lt;br /&gt;
├── Google Antigravity&lt;br /&gt;
├── Freebuff&lt;br /&gt;
│&lt;br /&gt;
└── Claw Orchestrator&lt;br /&gt;
        │&lt;br /&gt;
        ├── Persistent Sessions&lt;br /&gt;
        ├── Multi-Agent&lt;br /&gt;
        ├── Skills&lt;br /&gt;
        ├── Rules&lt;br /&gt;
        ├── Teams&lt;br /&gt;
        ├── Council&lt;br /&gt;
        ├── Run Ledger&lt;br /&gt;
        └── LLM-as-a-Judge&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= پیش‌نیازها =&lt;br /&gt;
&lt;br /&gt;
قبل از نصب Agentها بهتر است ابزارهای زیر روی Windows نصب شده باشند:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! ابزار&lt;br /&gt;
! کاربرد&lt;br /&gt;
! پیشنهاد&lt;br /&gt;
|-&lt;br /&gt;
| Windows&lt;br /&gt;
| سیستم‌عامل&lt;br /&gt;
| Windows 10/11 x64&lt;br /&gt;
|-&lt;br /&gt;
| PowerShell&lt;br /&gt;
| Terminal و Automation&lt;br /&gt;
| PowerShell 7&lt;br /&gt;
|-&lt;br /&gt;
| Git&lt;br /&gt;
| Version Control&lt;br /&gt;
| آخرین نسخه پایدار&lt;br /&gt;
|-&lt;br /&gt;
| Node.js&lt;br /&gt;
| JavaScript Runtime&lt;br /&gt;
| Node.js 22+&lt;br /&gt;
|-&lt;br /&gt;
| npm&lt;br /&gt;
| Package Manager&lt;br /&gt;
| همراه Node.js&lt;br /&gt;
|-&lt;br /&gt;
| Python&lt;br /&gt;
| SDKها و ابزارهای Python&lt;br /&gt;
| اختیاری&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== بررسی پیش‌نیازها ==&lt;br /&gt;
&lt;br /&gt;
PowerShell را باز کنید و اجرا کنید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
$PSVersionTable.PSVersion&lt;br /&gt;
&lt;br /&gt;
node --version&lt;br /&gt;
npm --version&lt;br /&gt;
git --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
برای پیدا کردن executableها:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
where.exe node&lt;br /&gt;
where.exe npm&lt;br /&gt;
where.exe git&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= نصب Coding Agentها =&lt;br /&gt;
&lt;br /&gt;
== Claude Code ==&lt;br /&gt;
&lt;br /&gt;
وب‌سایت رسمی:&lt;br /&gt;
&lt;br /&gt;
[https://claude.ai/ Claude]&lt;br /&gt;
&lt;br /&gt;
=== روش اول: PowerShell ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
irm https://claude.ai/install.ps1 | iex&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== روش دوم: CMD / curl ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bat&amp;quot;&amp;gt;&lt;br /&gt;
curl -fsSL https://claude.ai/install.cmd -o install.cmd &amp;amp;&amp;amp; install.cmd &amp;amp;&amp;amp; del install.cmd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== روش سوم: Winget ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
winget install Anthropic.ClaudeCode&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== بررسی نصب ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
claude --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== اجرا ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
claude&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== بررسی سلامت ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
claude doctor&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== بررسی PATH ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
where.exe claude&lt;br /&gt;
Get-Command claude&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== OpenAI Codex ==&lt;br /&gt;
&lt;br /&gt;
صفحه Codex:&lt;br /&gt;
&lt;br /&gt;
[https://chatgpt.com/codex/cloud OpenAI Codex]&lt;br /&gt;
&lt;br /&gt;
=== نصب ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
npm install -g @openai/codex&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
یا:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
npm i -g @openai/codex&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== بررسی نصب ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
codex --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== اجرا ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
codex&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Login ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
codex login&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== بررسی PATH ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
where.exe codex&lt;br /&gt;
Get-Command codex&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Cursor Agent ==&lt;br /&gt;
&lt;br /&gt;
وب‌سایت رسمی:&lt;br /&gt;
&lt;br /&gt;
[https://cursor.com/ Cursor]&lt;br /&gt;
&lt;br /&gt;
=== نصب CLI در Windows ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
irm &#039;https://cursor.com/install?win32=true&#039; | iex&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== بررسی نصب ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
cursor-agent --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cursor CLI ممکن است با دستور کوتاه زیر نیز در دسترس باشد:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
agent&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== بررسی PATH ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
where.exe cursor-agent&lt;br /&gt;
where.exe agent&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Google Antigravity ==&lt;br /&gt;
&lt;br /&gt;
وب‌سایت رسمی:&lt;br /&gt;
&lt;br /&gt;
[https://antigravity.google/ Google Antigravity]&lt;br /&gt;
&lt;br /&gt;
=== نصب CLI با PowerShell ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
irm https://antigravity.google/cli/install.ps1 | iex&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== نصب با curl ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bat&amp;quot;&amp;gt;&lt;br /&gt;
curl -fsSL https://antigravity.google/cli/install.cmd -o install.cmd &amp;amp;&amp;amp; install.cmd &amp;amp;&amp;amp; del install.cmd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== بررسی نصب ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
agy --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== اجرا ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
agy&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== بررسی PATH ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
where.exe agy&lt;br /&gt;
Get-Command agy&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Google Antigravity SDK ==&lt;br /&gt;
&lt;br /&gt;
در صورت نیاز به SDK پایتون:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
pip install google-antigravity&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
بررسی:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
pip show google-antigravity&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;نکته:&#039;&#039;&#039; برای استفاده معمول از Claw Orchestrator، CLI اهمیت بیشتری دارد. SDK را فقط زمانی نصب کنید که مستقیماً از Python به آن نیاز دارید.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== OpenCode ==&lt;br /&gt;
&lt;br /&gt;
وب‌سایت رسمی:&lt;br /&gt;
&lt;br /&gt;
[https://opencode.ai/ OpenCode]&lt;br /&gt;
&lt;br /&gt;
=== اجازه اجرای Install Script ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
npm config set allow-scripts=opencode-ai --location=user&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== نصب ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
npm install -g opencode-ai&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
یا:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
npm i -g opencode-ai&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== بررسی نصب ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
opencode --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== اجرا ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
opencode&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== بررسی PATH ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
where.exe opencode&lt;br /&gt;
Get-Command opencode&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Freebuff ==&lt;br /&gt;
&lt;br /&gt;
وب‌سایت:&lt;br /&gt;
&lt;br /&gt;
[https://freebuff.com/ Freebuff]&lt;br /&gt;
&lt;br /&gt;
=== ثبت‌نام ===&lt;br /&gt;
&lt;br /&gt;
برای ثبت‌نام می‌توانید از Referral Link زیر استفاده کنید:&lt;br /&gt;
&lt;br /&gt;
[https://freebuff.com/?ref=ref-eead1f77-4518-43aa-a4fa-51a49acab0e1 ثبت‌نام در Freebuff]&lt;br /&gt;
&lt;br /&gt;
=== نصب CLI ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
npm install -g freebuff&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
یا:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
npm i -g freebuff&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== بررسی نصب ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
freebuff --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== اجرا ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
freebuff&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== بررسی PATH ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
where.exe freebuff&lt;br /&gt;
Get-Command freebuff&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;نکته:&#039;&#039;&#039; در صورت نبود integration مستقیم، Freebuff می‌تواند به عنوان Custom CLI / Custom Engine در معماری مورد استفاده قرار گیرد.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= نصب Claw Orchestrator =&lt;br /&gt;
&lt;br /&gt;
Claw Orchestrator لایه مرکزی Orchestration در این محیط است.&lt;br /&gt;
&lt;br /&gt;
هدف این است که به جای اضافه کردن تعداد زیادی framework و service، Coding Agentهای موجود از طریق یک لایه مرکزی مدیریت شوند.&lt;br /&gt;
&lt;br /&gt;
== نصب ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
npm install -g @enderfga/claw-orchestrator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
یا:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
npm i -g @enderfga/claw-orchestrator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== بررسی نسخه ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== مشاهده Help ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo --help&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
نمونه دستورات اصلی:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
clawo acp&lt;br /&gt;
clawo serve&lt;br /&gt;
clawo session-start&lt;br /&gt;
clawo session-send&lt;br /&gt;
clawo session-stop&lt;br /&gt;
clawo session-list&lt;br /&gt;
clawo session-status&lt;br /&gt;
clawo runs&lt;br /&gt;
clawo session-grep&lt;br /&gt;
clawo session-compact&lt;br /&gt;
clawo agents-list&lt;br /&gt;
clawo agents-create&lt;br /&gt;
clawo skills-list&lt;br /&gt;
clawo skills-create&lt;br /&gt;
clawo rules-list&lt;br /&gt;
clawo rules-create&lt;br /&gt;
clawo session-team-list&lt;br /&gt;
clawo session-team-send&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= اجرای Standalone Claw Orchestrator =&lt;br /&gt;
&lt;br /&gt;
برای این معماری الزامی به نصب OpenClaw وجود ندارد.&lt;br /&gt;
&lt;br /&gt;
Claw Orchestrator می‌تواند Standalone اجرا شود.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo serve&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
معماری:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Claude Code ───────┐&lt;br /&gt;
Codex ─────────────┤&lt;br /&gt;
Cursor Agent ──────┤&lt;br /&gt;
OpenCode ──────────┤&lt;br /&gt;
Antigravity ───────┤&lt;br /&gt;
Freebuff / Custom ─┤&lt;br /&gt;
                   ↓&lt;br /&gt;
           Claw Orchestrator&lt;br /&gt;
                   │&lt;br /&gt;
          ┌────────┼────────┐&lt;br /&gt;
          ↓        ↓        ↓&lt;br /&gt;
       Agents    Skills    Rules&lt;br /&gt;
          │        │        │&lt;br /&gt;
          └────────┼────────┘&lt;br /&gt;
                   ↓&lt;br /&gt;
             Orchestration&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= بررسی تمام CLIها =&lt;br /&gt;
&lt;br /&gt;
پس از نصب تمام ابزارها:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
node --version&lt;br /&gt;
npm --version&lt;br /&gt;
git --version&lt;br /&gt;
&lt;br /&gt;
claude --version&lt;br /&gt;
codex --version&lt;br /&gt;
opencode --version&lt;br /&gt;
cursor-agent --version&lt;br /&gt;
agy --version&lt;br /&gt;
freebuff --version&lt;br /&gt;
&lt;br /&gt;
clawo --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= بررسی مسیر CLIها =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
where.exe node&lt;br /&gt;
where.exe npm&lt;br /&gt;
where.exe git&lt;br /&gt;
&lt;br /&gt;
where.exe claude&lt;br /&gt;
where.exe codex&lt;br /&gt;
where.exe opencode&lt;br /&gt;
where.exe cursor-agent&lt;br /&gt;
where.exe agy&lt;br /&gt;
where.exe freebuff&lt;br /&gt;
&lt;br /&gt;
where.exe clawo&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Health Check کامل =&lt;br /&gt;
&lt;br /&gt;
برای بررسی سریع کل محیط، یک فایل با نام زیر ایجاد کنید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AgenticDevOS-Check.ps1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
محتوای فایل:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
$tools = @(&lt;br /&gt;
    @{ Name = &amp;quot;Node.js&amp;quot;;           Command = &amp;quot;node&amp;quot;;         Args = &amp;quot;--version&amp;quot; }&lt;br /&gt;
    @{ Name = &amp;quot;npm&amp;quot;;               Command = &amp;quot;npm&amp;quot;;          Args = &amp;quot;--version&amp;quot; }&lt;br /&gt;
    @{ Name = &amp;quot;Git&amp;quot;;               Command = &amp;quot;git&amp;quot;;          Args = &amp;quot;--version&amp;quot; }&lt;br /&gt;
&lt;br /&gt;
    @{ Name = &amp;quot;Claude Code&amp;quot;;       Command = &amp;quot;claude&amp;quot;;       Args = &amp;quot;--version&amp;quot; }&lt;br /&gt;
    @{ Name = &amp;quot;Codex&amp;quot;;             Command = &amp;quot;codex&amp;quot;;        Args = &amp;quot;--version&amp;quot; }&lt;br /&gt;
    @{ Name = &amp;quot;OpenCode&amp;quot;;          Command = &amp;quot;opencode&amp;quot;;     Args = &amp;quot;--version&amp;quot; }&lt;br /&gt;
    @{ Name = &amp;quot;Cursor Agent&amp;quot;;      Command = &amp;quot;cursor-agent&amp;quot;; Args = &amp;quot;--version&amp;quot; }&lt;br /&gt;
    @{ Name = &amp;quot;Antigravity&amp;quot;;       Command = &amp;quot;agy&amp;quot;;          Args = &amp;quot;--version&amp;quot; }&lt;br /&gt;
    @{ Name = &amp;quot;Freebuff&amp;quot;;          Command = &amp;quot;freebuff&amp;quot;;     Args = &amp;quot;--version&amp;quot; }&lt;br /&gt;
&lt;br /&gt;
    @{ Name = &amp;quot;Claw Orchestrator&amp;quot;; Command = &amp;quot;clawo&amp;quot;;        Args = &amp;quot;--version&amp;quot; }&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
Write-Host &amp;quot;&amp;quot;&lt;br /&gt;
Write-Host &amp;quot;========================================&amp;quot; -ForegroundColor Cyan&lt;br /&gt;
Write-Host &amp;quot;       AGENTIC DEV OS HEALTH CHECK&amp;quot; -ForegroundColor Cyan&lt;br /&gt;
Write-Host &amp;quot;========================================&amp;quot; -ForegroundColor Cyan&lt;br /&gt;
Write-Host &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
foreach ($tool in $tools) {&lt;br /&gt;
&lt;br /&gt;
    $command = Get-Command $tool.Command -ErrorAction SilentlyContinue&lt;br /&gt;
&lt;br /&gt;
    if ($command) {&lt;br /&gt;
&lt;br /&gt;
        try {&lt;br /&gt;
&lt;br /&gt;
            $output = &amp;amp; $tool.Command $tool.Args 2&amp;gt;&amp;amp;1&lt;br /&gt;
            $version = $output | Select-Object -First 1&lt;br /&gt;
&lt;br /&gt;
            Write-Host &amp;quot;[OK]      &amp;quot; -ForegroundColor Green -NoNewline&lt;br /&gt;
            Write-Host &amp;quot;$($tool.Name) -&amp;gt; $version&amp;quot;&lt;br /&gt;
&lt;br /&gt;
            Write-Host &amp;quot;          Path: &amp;quot; -NoNewline -ForegroundColor DarkGray&lt;br /&gt;
            Write-Host $command.Source -ForegroundColor DarkGray&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
        catch {&lt;br /&gt;
&lt;br /&gt;
            Write-Host &amp;quot;[WARNING] &amp;quot; -ForegroundColor Yellow -NoNewline&lt;br /&gt;
            Write-Host &amp;quot;$($tool.Name) -&amp;gt; Installed, but version check failed&amp;quot;&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
    else {&lt;br /&gt;
&lt;br /&gt;
        Write-Host &amp;quot;[MISSING] &amp;quot; -ForegroundColor Red -NoNewline&lt;br /&gt;
        Write-Host $tool.Name&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Write-Host &amp;quot;&amp;quot;&lt;br /&gt;
Write-Host &amp;quot;========================================&amp;quot; -ForegroundColor Cyan&lt;br /&gt;
Write-Host &amp;quot;              SUMMARY&amp;quot; -ForegroundColor Cyan&lt;br /&gt;
Write-Host &amp;quot;========================================&amp;quot; -ForegroundColor Cyan&lt;br /&gt;
&lt;br /&gt;
$installed = 0&lt;br /&gt;
$missing = 0&lt;br /&gt;
&lt;br /&gt;
foreach ($tool in $tools) {&lt;br /&gt;
&lt;br /&gt;
    if (Get-Command $tool.Command -ErrorAction SilentlyContinue) {&lt;br /&gt;
        $installed++&lt;br /&gt;
    }&lt;br /&gt;
    else {&lt;br /&gt;
        $missing++&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Write-Host &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Write-Host &amp;quot;Installed : &amp;quot; -NoNewline&lt;br /&gt;
Write-Host $installed -ForegroundColor Green&lt;br /&gt;
&lt;br /&gt;
Write-Host &amp;quot;Missing   : &amp;quot; -NoNewline&lt;br /&gt;
&lt;br /&gt;
if ($missing -eq 0) {&lt;br /&gt;
    Write-Host $missing -ForegroundColor Green&lt;br /&gt;
}&lt;br /&gt;
else {&lt;br /&gt;
    Write-Host $missing -ForegroundColor Red&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Write-Host &amp;quot;Total     : $($tools.Count)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Write-Host &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
if ($missing -eq 0) {&lt;br /&gt;
&lt;br /&gt;
    Write-Host &amp;quot;All Agentic Development tools are available.&amp;quot; -ForegroundColor Green&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
else {&lt;br /&gt;
&lt;br /&gt;
    Write-Host &amp;quot;Some tools are missing. Check the results above.&amp;quot; -ForegroundColor Yellow&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Write-Host &amp;quot;&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== اجرای Health Check ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
.\AgenticDevOS-Check.ps1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
اگر Execution Policy مانع اجرای اسکریپت شد:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
Get-ExecutionPolicy&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
برای اجازه موقت فقط در Process جاری:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
سپس:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
.\AgenticDevOS-Check.ps1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= ابزارهای بررسی‌شده توسط Health Check =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! ابزار&lt;br /&gt;
! Command&lt;br /&gt;
! کاربرد&lt;br /&gt;
|-&lt;br /&gt;
| Node.js&lt;br /&gt;
| &amp;lt;code&amp;gt;node&amp;lt;/code&amp;gt;&lt;br /&gt;
| JavaScript Runtime&lt;br /&gt;
|-&lt;br /&gt;
| npm&lt;br /&gt;
| &amp;lt;code&amp;gt;npm&amp;lt;/code&amp;gt;&lt;br /&gt;
| Node Package Manager&lt;br /&gt;
|-&lt;br /&gt;
| Git&lt;br /&gt;
| &amp;lt;code&amp;gt;git&amp;lt;/code&amp;gt;&lt;br /&gt;
| Version Control&lt;br /&gt;
|-&lt;br /&gt;
| Claude Code&lt;br /&gt;
| &amp;lt;code&amp;gt;claude&amp;lt;/code&amp;gt;&lt;br /&gt;
| Coding Agent&lt;br /&gt;
|-&lt;br /&gt;
| OpenAI Codex&lt;br /&gt;
| &amp;lt;code&amp;gt;codex&amp;lt;/code&amp;gt;&lt;br /&gt;
| Coding Agent&lt;br /&gt;
|-&lt;br /&gt;
| OpenCode&lt;br /&gt;
| &amp;lt;code&amp;gt;opencode&amp;lt;/code&amp;gt;&lt;br /&gt;
| Coding Agent&lt;br /&gt;
|-&lt;br /&gt;
| Cursor Agent&lt;br /&gt;
| &amp;lt;code&amp;gt;cursor-agent&amp;lt;/code&amp;gt;&lt;br /&gt;
| Coding Agent&lt;br /&gt;
|-&lt;br /&gt;
| Google Antigravity&lt;br /&gt;
| &amp;lt;code&amp;gt;agy&amp;lt;/code&amp;gt;&lt;br /&gt;
| Coding Agent&lt;br /&gt;
|-&lt;br /&gt;
| Freebuff&lt;br /&gt;
| &amp;lt;code&amp;gt;freebuff&amp;lt;/code&amp;gt;&lt;br /&gt;
| Coding Agent&lt;br /&gt;
|-&lt;br /&gt;
| Claw Orchestrator&lt;br /&gt;
| &amp;lt;code&amp;gt;clawo&amp;lt;/code&amp;gt;&lt;br /&gt;
| Multi-Agent Orchestrator&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= معنی وضعیت‌های Health Check =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! وضعیت&lt;br /&gt;
! معنی&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[OK]&amp;lt;/code&amp;gt;&lt;br /&gt;
| ابزار نصب شده و Command از طریق PATH قابل دسترسی است.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[WARNING]&amp;lt;/code&amp;gt;&lt;br /&gt;
| ابزار پیدا شده ولی Version Check با مشکل مواجه شده است.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[MISSING]&amp;lt;/code&amp;gt;&lt;br /&gt;
| ابزار نصب نیست یا Command آن در PATH قرار ندارد.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;نکته:&#039;&#039;&#039; وضعیت &amp;lt;code&amp;gt;[OK]&amp;lt;/code&amp;gt; به معنی موجود بودن CLI است و الزاماً به معنی معتبر بودن Login یا Authentication نیست.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= نمونه خروجی Health Check =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
========================================&lt;br /&gt;
       AGENTIC DEV OS HEALTH CHECK&lt;br /&gt;
========================================&lt;br /&gt;
&lt;br /&gt;
[OK]      Node.js -&amp;gt; v24.19.0&lt;br /&gt;
          Path: C:\Program Files\nodejs\node.exe&lt;br /&gt;
&lt;br /&gt;
[OK]      npm -&amp;gt; 12.0.2&lt;br /&gt;
          Path: C:\Program Files\nodejs\npm.ps1&lt;br /&gt;
&lt;br /&gt;
[OK]      Git -&amp;gt; git version 2.55.0.windows.4&lt;br /&gt;
          Path: C:\Program Files\Git\cmd\git.exe&lt;br /&gt;
&lt;br /&gt;
[OK]      Claude Code -&amp;gt; 2.1.148 (Claude Code)&lt;br /&gt;
          Path: C:\...\claude.exe&lt;br /&gt;
&lt;br /&gt;
[OK]      Codex -&amp;gt; codex-cli 0.148.0&lt;br /&gt;
          Path: C:\...\codex.ps1&lt;br /&gt;
&lt;br /&gt;
[OK]      OpenCode -&amp;gt; 1.18.19&lt;br /&gt;
          Path: C:\...\opencode.exe&lt;br /&gt;
&lt;br /&gt;
[OK]      Cursor Agent -&amp;gt; 2026.08.11-e8db854&lt;br /&gt;
          Path: C:\...\cursor-agent.exe&lt;br /&gt;
&lt;br /&gt;
[OK]      Antigravity -&amp;gt; 1.1.16&lt;br /&gt;
          Path: C:\...\agy.exe&lt;br /&gt;
&lt;br /&gt;
[OK]      Freebuff -&amp;gt; ...&lt;br /&gt;
          Path: C:\...\freebuff.ps1&lt;br /&gt;
&lt;br /&gt;
[OK]      Claw Orchestrator -&amp;gt; 5.0.0&lt;br /&gt;
          Path: C:\...\clawo.ps1&lt;br /&gt;
&lt;br /&gt;
========================================&lt;br /&gt;
              SUMMARY&lt;br /&gt;
========================================&lt;br /&gt;
&lt;br /&gt;
Installed : 10&lt;br /&gt;
Missing   : 0&lt;br /&gt;
Total     : 10&lt;br /&gt;
&lt;br /&gt;
All Agentic Development tools are available.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= مدیریت Sessionها =&lt;br /&gt;
&lt;br /&gt;
یکی از قابلیت‌های اصلی Claw Orchestrator مدیریت Persistent Sessionهای Coding Agentها است.&lt;br /&gt;
&lt;br /&gt;
== مشاهده Sessionها ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo session-list&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== مشاهده Help ==&lt;br /&gt;
&lt;br /&gt;
قبل از ایجاد Session بهتر است Optionهای نسخه نصب‌شده را بررسی کنید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo session-start --help&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ورود به پروژه ==&lt;br /&gt;
&lt;br /&gt;
مثال:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
cd D:\Source\MyProject&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ایجاد Session ==&lt;br /&gt;
&lt;br /&gt;
نمونه:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo session-start myproject --engine claude --cwd .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;نکته:&#039;&#039;&#039; Optionها و Engineهای پشتیبانی‌شده ممکن است بین نسخه‌های Claw Orchestrator تغییر کنند. همیشه خروجی &amp;lt;code&amp;gt;--help&amp;lt;/code&amp;gt; نسخه نصب‌شده را بررسی کنید.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= ارسال Task به Session =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo session-send myproject &amp;quot;Analyze this project and identify the most important problems.&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= مشاهده وضعیت Session =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo session-status myproject&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= جستجو در History =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo session-grep myproject &amp;quot;error&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Compact کردن Session =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo session-compact myproject&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= توقف Session =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo session-stop myproject&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Run Ledger =&lt;br /&gt;
&lt;br /&gt;
Claw Orchestrator دارای Durable Run Ledger است.&lt;br /&gt;
&lt;br /&gt;
برای مشاهده Runها:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo runs&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
این بخش برای بررسی تاریخچه Turnها و اجراهای Agentها کاربرد دارد.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= مدیریت Agents =&lt;br /&gt;
&lt;br /&gt;
== مشاهده Agentها ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo agents-list&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== مشاهده Help ساخت Agent ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo agents-create --help&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= مدیریت Skills =&lt;br /&gt;
&lt;br /&gt;
== مشاهده Skills ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo skills-list&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ساخت Skill ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo skills-create --help&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= مدیریت Rules =&lt;br /&gt;
&lt;br /&gt;
== مشاهده Rules ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo rules-list&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ساخت Rule ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo rules-create --help&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= مدیریت Agent Team =&lt;br /&gt;
&lt;br /&gt;
== مشاهده اعضای Team ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo session-team-list myproject&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ارسال پیام به Teammate ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo session-team-send myproject &amp;lt;teammate&amp;gt; &amp;quot;Review this implementation.&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= استفاده به عنوان Agentic Development OS =&lt;br /&gt;
&lt;br /&gt;
هدف نهایی این معماری ایجاد یک لایه بالاتر از Coding Agentها است.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                      Developer&lt;br /&gt;
                          │&lt;br /&gt;
                          ↓&lt;br /&gt;
                 Claw Orchestrator&lt;br /&gt;
                          │&lt;br /&gt;
                  Planner / Router&lt;br /&gt;
                          │&lt;br /&gt;
       ┌──────────────────┼──────────────────┐&lt;br /&gt;
       │                  │                  │&lt;br /&gt;
       ↓                  ↓                  ↓&lt;br /&gt;
 Claude Code            Codex           Cursor Agent&lt;br /&gt;
       │                  │                  │&lt;br /&gt;
       ├────────────── OpenCode ─────────────┤&lt;br /&gt;
       │                  │                  │&lt;br /&gt;
       ├─────────── Antigravity ─────────────┤&lt;br /&gt;
       │                  │                  │&lt;br /&gt;
       └────────────── Freebuff ─────────────┘&lt;br /&gt;
                          │&lt;br /&gt;
                          ↓&lt;br /&gt;
                  Automated Validation&lt;br /&gt;
                          │&lt;br /&gt;
                          ↓&lt;br /&gt;
                  Multi-Agent Review&lt;br /&gt;
                          │&lt;br /&gt;
                          ↓&lt;br /&gt;
                    LLM-as-a-Judge&lt;br /&gt;
                          │&lt;br /&gt;
                          ↓&lt;br /&gt;
                     Final Result&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= LLM-as-a-Judge =&lt;br /&gt;
&lt;br /&gt;
یکی از کاربردهای مهم این معماری استفاده از چند مدل برای حل یا بررسی یک Task واحد است.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                       TASK&lt;br /&gt;
                         │&lt;br /&gt;
                         ↓&lt;br /&gt;
                 Claw Orchestrator&lt;br /&gt;
                         │&lt;br /&gt;
        ┌────────────────┼────────────────┐&lt;br /&gt;
        ↓                ↓                ↓&lt;br /&gt;
  Claude Code          Codex         Antigravity&lt;br /&gt;
        │                │                │&lt;br /&gt;
        ↓                ↓                ↓&lt;br /&gt;
   Solution A       Solution B       Solution C&lt;br /&gt;
        │                │                │&lt;br /&gt;
        └────────────────┼────────────────┘&lt;br /&gt;
                         ↓&lt;br /&gt;
                  Automated Checks&lt;br /&gt;
                         │&lt;br /&gt;
          ┌──────────────┼──────────────┐&lt;br /&gt;
          ↓              ↓              ↓&lt;br /&gt;
        Build           Tests          Lint&lt;br /&gt;
          │              │              │&lt;br /&gt;
          └──────────────┼──────────────┘&lt;br /&gt;
                         ↓&lt;br /&gt;
                     Security&lt;br /&gt;
                         ↓&lt;br /&gt;
                     Benchmark&lt;br /&gt;
                         ↓&lt;br /&gt;
                     LLM Judge&lt;br /&gt;
                         ↓&lt;br /&gt;
                  Score / Consensus&lt;br /&gt;
                         ↓&lt;br /&gt;
                    Best Result&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Automated Validation قبل از LLM Judge =&lt;br /&gt;
&lt;br /&gt;
بهتر است انتخاب بهترین Implementation فقط به نظر LLM وابسته نباشد.&lt;br /&gt;
&lt;br /&gt;
ترتیب پیشنهادی:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Candidate Code&lt;br /&gt;
      │&lt;br /&gt;
      ↓&lt;br /&gt;
    Build&lt;br /&gt;
      │&lt;br /&gt;
      ↓&lt;br /&gt;
 Unit Tests&lt;br /&gt;
      │&lt;br /&gt;
      ↓&lt;br /&gt;
Integration Tests&lt;br /&gt;
      │&lt;br /&gt;
      ↓&lt;br /&gt;
    Lint&lt;br /&gt;
      │&lt;br /&gt;
      ↓&lt;br /&gt;
 Type Check&lt;br /&gt;
      │&lt;br /&gt;
      ↓&lt;br /&gt;
Security Check&lt;br /&gt;
      │&lt;br /&gt;
      ↓&lt;br /&gt;
 Benchmark&lt;br /&gt;
      │&lt;br /&gt;
      ↓&lt;br /&gt;
 LLM Review&lt;br /&gt;
      │&lt;br /&gt;
      ↓&lt;br /&gt;
 Final Score&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
مزیت این روش این است که معیارهای قابل اندازه‌گیری قبل از قضاوت LLM بررسی می‌شوند.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Multi-Agent Council =&lt;br /&gt;
&lt;br /&gt;
برای مسائل پیچیده می‌توان چند Agent را روی یک Task اجرا کرد.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                    Problem&lt;br /&gt;
                       │&lt;br /&gt;
                       ↓&lt;br /&gt;
                Orchestrator&lt;br /&gt;
                       │&lt;br /&gt;
          ┌────────────┼────────────┐&lt;br /&gt;
          ↓            ↓            ↓&lt;br /&gt;
       Claude        Codex        Gemini&lt;br /&gt;
          │            │            │&lt;br /&gt;
          ↓            ↓            ↓&lt;br /&gt;
       Plan A         Plan B       Plan C&lt;br /&gt;
          │            │            │&lt;br /&gt;
          └────────────┼────────────┘&lt;br /&gt;
                       ↓&lt;br /&gt;
                  Cross Review&lt;br /&gt;
                       ↓&lt;br /&gt;
                     Vote&lt;br /&gt;
                       ↓&lt;br /&gt;
                  Consensus&lt;br /&gt;
                       ↓&lt;br /&gt;
                 Final Decision&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
کاربردهای مناسب:&lt;br /&gt;
&lt;br /&gt;
* Architecture Design&lt;br /&gt;
* Code Review&lt;br /&gt;
* Refactoring&lt;br /&gt;
* Debugging&lt;br /&gt;
* Security Review&lt;br /&gt;
* Performance Optimization&lt;br /&gt;
* انتخاب Library یا Framework&lt;br /&gt;
* مقایسه چند Implementation&lt;br /&gt;
* بررسی Pull Request&lt;br /&gt;
* تصمیم‌گیری درباره Design Pattern&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Git Worktree و Agent Isolation =&lt;br /&gt;
&lt;br /&gt;
اگر چند Agent همزمان روی یک Repository کار کنند، بهتر است تغییرات آن‌ها از یکدیگر جدا باشند.&lt;br /&gt;
&lt;br /&gt;
ساختار پیشنهادی:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Repository&lt;br /&gt;
│&lt;br /&gt;
├── main&lt;br /&gt;
│&lt;br /&gt;
├── worktree-claude&lt;br /&gt;
│&lt;br /&gt;
├── worktree-codex&lt;br /&gt;
│&lt;br /&gt;
├── worktree-cursor&lt;br /&gt;
│&lt;br /&gt;
├── worktree-antigravity&lt;br /&gt;
│&lt;br /&gt;
└── worktree-review&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
این معماری اجازه می‌دهد چند Agent بدون overwrite کردن فایل‌های یکدیگر روی یک Repository کار کنند.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= نقش پیشنهادی Agentها =&lt;br /&gt;
&lt;br /&gt;
یک نمونه معماری:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Role&lt;br /&gt;
! Agent پیشنهادی&lt;br /&gt;
! وظیفه&lt;br /&gt;
|-&lt;br /&gt;
| Planner&lt;br /&gt;
| Claude Code / Codex&lt;br /&gt;
| تحلیل Task و طراحی Plan&lt;br /&gt;
|-&lt;br /&gt;
| Primary Coder&lt;br /&gt;
| Claude Code / Codex&lt;br /&gt;
| Implementation اصلی&lt;br /&gt;
|-&lt;br /&gt;
| Alternative Coder&lt;br /&gt;
| Cursor / OpenCode / Antigravity&lt;br /&gt;
| تولید Implementation جایگزین&lt;br /&gt;
|-&lt;br /&gt;
| Reviewer&lt;br /&gt;
| Agent متفاوت از Coder&lt;br /&gt;
| Code Review&lt;br /&gt;
|-&lt;br /&gt;
| Security Reviewer&lt;br /&gt;
| Codex / Claude&lt;br /&gt;
| بررسی Security&lt;br /&gt;
|-&lt;br /&gt;
| Judge&lt;br /&gt;
| مدل متفاوت از Coder&lt;br /&gt;
| امتیازدهی و انتخاب نتیجه&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;پیشنهاد:&#039;&#039;&#039; تا حد امکان Agent یا مدلی که کد را تولید کرده است تنها Judge همان کد نباشد.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= معماری پیشنهادی Judge =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                    Candidate&lt;br /&gt;
                        │&lt;br /&gt;
                        ↓&lt;br /&gt;
              Deterministic Checks&lt;br /&gt;
                        │&lt;br /&gt;
        ┌───────────────┼───────────────┐&lt;br /&gt;
        ↓               ↓               ↓&lt;br /&gt;
      Tests           Build          Security&lt;br /&gt;
        │               │               │&lt;br /&gt;
        └───────────────┼───────────────┘&lt;br /&gt;
                        ↓&lt;br /&gt;
                    LLM Review&lt;br /&gt;
                        │&lt;br /&gt;
            ┌───────────┼───────────┐&lt;br /&gt;
            ↓           ↓           ↓&lt;br /&gt;
         Judge A     Judge B     Judge C&lt;br /&gt;
            │           │           │&lt;br /&gt;
            └───────────┼───────────┘&lt;br /&gt;
                        ↓&lt;br /&gt;
                  Weighted Score&lt;br /&gt;
                        │&lt;br /&gt;
                        ↓&lt;br /&gt;
                  Final Decision&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Command Not Found ==&lt;br /&gt;
&lt;br /&gt;
اگر خطایی مشابه زیر دریافت شد:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
The term &#039;xxxx&#039; is not recognized as a name of a cmdlet,&lt;br /&gt;
function, script file, or executable program.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ابتدا:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
Get-Command xxxx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
سپس:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
where.exe xxxx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= بررسی PATH =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
$env:Path -split &#039;;&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= پیدا کردن PATHهای تکراری =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
$env:Path -split &#039;;&#039; |&lt;br /&gt;
    ForEach-Object { $_.Trim().TrimEnd(&#039;\&#039;) } |&lt;br /&gt;
    Group-Object |&lt;br /&gt;
    Where-Object Count -gt 1 |&lt;br /&gt;
    Select-Object Count, Name&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
اگر خروجی خالی باشد، Duplicate مشخصی توسط این بررسی پیدا نشده است.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= نمونه رفع مشکل PATH در Windows =&lt;br /&gt;
&lt;br /&gt;
اگر یک CLI نصب شده ولی PowerShell آن را پیدا نمی‌کند، ابتدا محل فایل را پیدا کنید.&lt;br /&gt;
&lt;br /&gt;
مثال برای VS Code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
Get-ChildItem &amp;quot;C:\Program Files&amp;quot;,&amp;quot;$env:LOCALAPPDATA\Programs&amp;quot; `&lt;br /&gt;
    -Filter code.cmd `&lt;br /&gt;
    -Recurse `&lt;br /&gt;
    -ErrorAction SilentlyContinue |&lt;br /&gt;
    Select-Object FullName&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
اگر مسیر پیدا شد می‌توان آن را به PATH اضافه کرد.&lt;br /&gt;
&lt;br /&gt;
مثال:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
$vsCodePath = &amp;quot;$env:LOCALAPPDATA\Programs\Microsoft VS Code\bin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
$userPath = [Environment]::GetEnvironmentVariable(&amp;quot;Path&amp;quot;, &amp;quot;User&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
$paths = @(&lt;br /&gt;
    $userPath -split &#039;;&#039; |&lt;br /&gt;
    Where-Object { $_ -and $_.Trim() }&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
if ($paths -notcontains $vsCodePath) {&lt;br /&gt;
&lt;br /&gt;
    $newPath = ($paths + $vsCodePath) -join &#039;;&#039;&lt;br /&gt;
&lt;br /&gt;
    [Environment]::SetEnvironmentVariable(&lt;br /&gt;
        &amp;quot;Path&amp;quot;,&lt;br /&gt;
        $newPath,&lt;br /&gt;
        &amp;quot;User&amp;quot;&lt;br /&gt;
    )&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if (($env:Path -split &#039;;&#039;) -notcontains $vsCodePath) {&lt;br /&gt;
    $env:Path += &amp;quot;;$vsCodePath&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
سپس:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
code --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= بروزرسانی ابزارها =&lt;br /&gt;
&lt;br /&gt;
== Claude Code ==&lt;br /&gt;
&lt;br /&gt;
اگر از installer رسمی Claude استفاده شده است، روش update رسمی همان installer را ترجیح دهید.&lt;br /&gt;
&lt;br /&gt;
در صورت نصب npm:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
npm install -g @anthropic-ai/claude-code@latest&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
بررسی:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
claude --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== OpenAI Codex ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
npm install -g @openai/codex@latest&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
بررسی:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
codex --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== OpenCode ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
npm install -g opencode-ai@latest&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
بررسی:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
opencode --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Freebuff ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
npm install -g freebuff@latest&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
بررسی:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
freebuff --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Claw Orchestrator ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
npm install -g @enderfga/claw-orchestrator@latest&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
بررسی:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= نصب سریع روی سیستم جدید =&lt;br /&gt;
&lt;br /&gt;
پس از نصب Git، Node.js و npm می‌توان CLIها را به ترتیب نصب کرد.&lt;br /&gt;
&lt;br /&gt;
== Claude Code ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
irm https://claude.ai/install.ps1 | iex&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cursor Agent ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
irm &#039;https://cursor.com/install?win32=true&#039; | iex&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Google Antigravity ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
irm https://antigravity.google/cli/install.ps1 | iex&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== OpenCode ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
npm config set allow-scripts=opencode-ai --location=user&lt;br /&gt;
npm i -g opencode-ai&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== OpenAI Codex ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
npm i -g @openai/codex&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Freebuff ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
npm i -g freebuff&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Claw Orchestrator ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
npm i -g @enderfga/claw-orchestrator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= بررسی نهایی بعد از نصب =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
node --version&lt;br /&gt;
npm --version&lt;br /&gt;
git --version&lt;br /&gt;
&lt;br /&gt;
claude --version&lt;br /&gt;
codex --version&lt;br /&gt;
opencode --version&lt;br /&gt;
cursor-agent --version&lt;br /&gt;
agy --version&lt;br /&gt;
freebuff --version&lt;br /&gt;
&lt;br /&gt;
clawo --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= بررسی Authentication =&lt;br /&gt;
&lt;br /&gt;
بعد از اینکه Health Check بدون مشکل اجرا شد، باید Authentication هر Agent نیز بررسی شود.&lt;br /&gt;
&lt;br /&gt;
CLIها را حداقل یک بار اجرا کنید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
claude&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
codex&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
opencode&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
cursor-agent&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
agy&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
freebuff&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
هر Agent باید Login یا Authentication مربوط به Provider خود را با موفقیت انجام دهد.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= معماری نهایی Agentic Development OS =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
┌─────────────────────────────────────────────────┐&lt;br /&gt;
│              Windows Development OS             │&lt;br /&gt;
│                                                 │&lt;br /&gt;
│                 Developer / User                │&lt;br /&gt;
│                        │                        │&lt;br /&gt;
│                        ↓                        │&lt;br /&gt;
│                Claw Orchestrator                │&lt;br /&gt;
│                        │                        │&lt;br /&gt;
│                Planner / Router                 │&lt;br /&gt;
│                        │                        │&lt;br /&gt;
│     ┌──────────────────┼──────────────────┐     │&lt;br /&gt;
│     │                  │                  │     │&lt;br /&gt;
│     ↓                  ↓                  ↓     │&lt;br /&gt;
│ Claude Code          Codex          Cursor Agent│&lt;br /&gt;
│     │                  │                  │     │&lt;br /&gt;
│     ├────────────── OpenCode ─────────────┤     │&lt;br /&gt;
│     │                  │                  │     │&lt;br /&gt;
│     ├─────────── Antigravity ─────────────┤     │&lt;br /&gt;
│     │                  │                  │     │&lt;br /&gt;
│     └────────────── Freebuff ─────────────┘     │&lt;br /&gt;
│                        │                        │&lt;br /&gt;
│                        ↓                        │&lt;br /&gt;
│                Git Worktree Isolation           │&lt;br /&gt;
│                        │                        │&lt;br /&gt;
│                        ↓                        │&lt;br /&gt;
│               Automated Validation              │&lt;br /&gt;
│                        │                        │&lt;br /&gt;
│          Build / Test / Lint / Security         │&lt;br /&gt;
│                        │                        │&lt;br /&gt;
│                        ↓                        │&lt;br /&gt;
│                Multi-Agent Review               │&lt;br /&gt;
│                        │                        │&lt;br /&gt;
│                        ↓                        │&lt;br /&gt;
│                  LLM-as-a-Judge                 │&lt;br /&gt;
│                        │                        │&lt;br /&gt;
│                        ↓                        │&lt;br /&gt;
│                    Best Result                  │&lt;br /&gt;
└─────────────────────────────────────────────────┘&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= خلاصه دستورات مهم =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! کار&lt;br /&gt;
! دستور&lt;br /&gt;
|-&lt;br /&gt;
| نسخه Claw Orchestrator&lt;br /&gt;
| &amp;lt;code&amp;gt;clawo --version&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Help&lt;br /&gt;
| &amp;lt;code&amp;gt;clawo --help&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| اجرای Server&lt;br /&gt;
| &amp;lt;code&amp;gt;clawo serve&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| مشاهده Sessionها&lt;br /&gt;
| &amp;lt;code&amp;gt;clawo session-list&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| وضعیت Session&lt;br /&gt;
| &amp;lt;code&amp;gt;clawo session-status NAME&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| ارسال Task&lt;br /&gt;
| &amp;lt;code&amp;gt;clawo session-send NAME &amp;quot;TASK&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| توقف Session&lt;br /&gt;
| &amp;lt;code&amp;gt;clawo session-stop NAME&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| مشاهده Runها&lt;br /&gt;
| &amp;lt;code&amp;gt;clawo runs&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| مشاهده Agentها&lt;br /&gt;
| &amp;lt;code&amp;gt;clawo agents-list&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| مشاهده Skills&lt;br /&gt;
| &amp;lt;code&amp;gt;clawo skills-list&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| مشاهده Rules&lt;br /&gt;
| &amp;lt;code&amp;gt;clawo rules-list&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= نتیجه‌گیری =&lt;br /&gt;
&lt;br /&gt;
هدف این معماری ساخت یک &#039;&#039;&#039;Agentic Development Environment&#039;&#039;&#039; با حداقل تعداد نرم‌افزارها و لایه‌های اضافی است.&lt;br /&gt;
&lt;br /&gt;
Coding Agentهای اصلی:&lt;br /&gt;
&lt;br /&gt;
* Claude Code&lt;br /&gt;
* OpenAI Codex&lt;br /&gt;
* Cursor Agent&lt;br /&gt;
* OpenCode&lt;br /&gt;
* Google Antigravity&lt;br /&gt;
* Freebuff&lt;br /&gt;
&lt;br /&gt;
و لایه مرکزی:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Claw Orchestrator&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
معماری کلی:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Task&lt;br /&gt;
 ↓&lt;br /&gt;
Claw Orchestrator&lt;br /&gt;
 ↓&lt;br /&gt;
Planner / Router&lt;br /&gt;
 ↓&lt;br /&gt;
Multiple Coding Agents&lt;br /&gt;
 ↓&lt;br /&gt;
Git Isolation&lt;br /&gt;
 ↓&lt;br /&gt;
Build + Tests + Lint + Security&lt;br /&gt;
 ↓&lt;br /&gt;
Multi-Agent Review&lt;br /&gt;
 ↓&lt;br /&gt;
LLM-as-a-Judge&lt;br /&gt;
 ↓&lt;br /&gt;
Best Result&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
این ساختار می‌تواند در آینده با موارد زیر توسعه داده شود:&lt;br /&gt;
&lt;br /&gt;
* MCP&lt;br /&gt;
* Local LLM&lt;br /&gt;
* CI/CD&lt;br /&gt;
* Security Agents&lt;br /&gt;
* Automated Code Review&lt;br /&gt;
* Pull Request Review&lt;br /&gt;
* Custom Agents&lt;br /&gt;
* Custom Skills&lt;br /&gt;
* Custom Rules&lt;br /&gt;
* Multi-Agent Council&lt;br /&gt;
* Benchmarking&lt;br /&gt;
* Automated Testing&lt;br /&gt;
* Model Routing&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;نکته مهم:&#039;&#039;&#039; Coding Agentها، CLIها و Claw Orchestrator پروژه‌هایی با توسعه سریع هستند. قبل از نصب یا Upgrade نسخه‌های آینده، مستندات رسمی و خروجی &amp;lt;code&amp;gt;--help&amp;lt;/code&amp;gt; نسخه نصب‌شده را بررسی کنید.&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Ai_Claw_Orchestrator&amp;diff=197</id>
		<title>Ai Claw Orchestrator</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Ai_Claw_Orchestrator&amp;diff=197"/>
		<updated>2026-08-20T18:34:58Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= راه‌اندازی Agentic Development Environment در Windows با Claw Orchestrator =&lt;br /&gt;
&lt;br /&gt;
این راهنما برای ساخت یک محیط &#039;&#039;&#039;Agentic Development&#039;&#039;&#039; روی Windows است که چند Coding Agent مختلف را در کنار یکدیگر مدیریت می‌کند.&lt;br /&gt;
&lt;br /&gt;
هدف این معماری:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Windows&lt;br /&gt;
│&lt;br /&gt;
├── Git&lt;br /&gt;
├── Node.js / npm&lt;br /&gt;
│&lt;br /&gt;
├── Claude Code&lt;br /&gt;
├── OpenAI Codex&lt;br /&gt;
├── Cursor Agent&lt;br /&gt;
├── OpenCode&lt;br /&gt;
├── Google Antigravity&lt;br /&gt;
├── Freebuff&lt;br /&gt;
│&lt;br /&gt;
└── Claw Orchestrator&lt;br /&gt;
        │&lt;br /&gt;
        ├── Persistent Sessions&lt;br /&gt;
        ├── Multi-Agent&lt;br /&gt;
        ├── Skills&lt;br /&gt;
        ├── Rules&lt;br /&gt;
        ├── Teams&lt;br /&gt;
        ├── Council&lt;br /&gt;
        ├── Run Ledger&lt;br /&gt;
        └── LLM-as-a-Judge&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== پیش‌نیازها ==&lt;br /&gt;
&lt;br /&gt;
قبل از نصب Agentها، ابزارهای زیر پیشنهاد می‌شوند:&lt;br /&gt;
&lt;br /&gt;
* Windows 10 یا Windows 11&lt;br /&gt;
* PowerShell 7&lt;br /&gt;
* Git&lt;br /&gt;
* Node.js نسخه 22 یا جدیدتر&lt;br /&gt;
* npm&lt;br /&gt;
* Python در صورت نیاز به SDKهای Python&lt;br /&gt;
&lt;br /&gt;
بررسی نسخه‌ها:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
$PSVersionTable.PSVersion&lt;br /&gt;
&lt;br /&gt;
node --version&lt;br /&gt;
npm --version&lt;br /&gt;
git --version &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
= نصب Coding Agentها =&lt;br /&gt;
&lt;br /&gt;
== Claude Code ==&lt;br /&gt;
&lt;br /&gt;
وب‌سایت رسمی:&lt;br /&gt;
&lt;br /&gt;
[https://claude.ai/ Claude]&lt;br /&gt;
&lt;br /&gt;
=== روش اول: PowerShell ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
irm https://claude.ai/install.ps1 | iex&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== روش دوم: CMD / curl ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bat&amp;quot;&amp;gt;&lt;br /&gt;
curl -fsSL https://claude.ai/install.cmd -o install.cmd &amp;amp;&amp;amp; install.cmd &amp;amp;&amp;amp; del install.cmd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== روش سوم: Winget ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
winget install Anthropic.ClaudeCode&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== بررسی نصب ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
claude --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== اجرای Claude Code ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
claude&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== بررسی سلامت نصب ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
claude doctor&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
== Cursor Agent ==&lt;br /&gt;
&lt;br /&gt;
وب‌سایت رسمی:&lt;br /&gt;
&lt;br /&gt;
[https://cursor.com/ Cursor]&lt;br /&gt;
&lt;br /&gt;
=== نصب در Windows ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
irm &#039;https://cursor.com/install?win32=true&#039; | iex&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== بررسی نصب ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
cursor-agent --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cursor Agent ممکن است با دستور کوتاه زیر نیز قابل اجرا باشد:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
agent&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== بررسی PATH ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
where.exe cursor-agent&lt;br /&gt;
where.exe agent&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
== Google Antigravity ==&lt;br /&gt;
&lt;br /&gt;
وب‌سایت رسمی:&lt;br /&gt;
&lt;br /&gt;
[https://antigravity.google/ Google Antigravity]&lt;br /&gt;
&lt;br /&gt;
=== نصب CLI با PowerShell ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
irm https://antigravity.google/cli/install.ps1 | iex&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== روش دوم با curl ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bat&amp;quot;&amp;gt;&lt;br /&gt;
curl -fsSL https://antigravity.google/cli/install.cmd -o install.cmd &amp;amp;&amp;amp; install.cmd &amp;amp;&amp;amp; del install.cmd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== بررسی نصب ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
agy --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== اجرای Antigravity ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
agy&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== بررسی PATH ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
where.exe agy&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
== Google Antigravity SDK ==&lt;br /&gt;
&lt;br /&gt;
در صورتی که به SDK پایتون نیاز دارید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
pip install google-antigravity&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
بررسی:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
pip show google-antigravity&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;نکته:&#039;&#039;&#039; برای استفاده از Claw Orchestrator معمولاً CLI اهمیت بیشتری دارد. نصب SDK فقط زمانی لازم است که مستقیماً در Python از Antigravity استفاده شود.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
== OpenCode ==&lt;br /&gt;
&lt;br /&gt;
وب‌سایت رسمی:&lt;br /&gt;
&lt;br /&gt;
[https://opencode.ai/ OpenCode]&lt;br /&gt;
&lt;br /&gt;
ابتدا اجازه اجرای install script را تنظیم کنید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
npm config set allow-scripts=opencode-ai --location=user&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
سپس نصب:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
npm install -g opencode-ai&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
یا:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
npm i -g opencode-ai&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== بررسی نصب ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
opencode --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== اجرا ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
opencode&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== بررسی PATH ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
where.exe opencode&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
== OpenAI Codex ==&lt;br /&gt;
&lt;br /&gt;
صفحه Codex:&lt;br /&gt;
&lt;br /&gt;
[https://chatgpt.com/codex/cloud OpenAI Codex]&lt;br /&gt;
&lt;br /&gt;
=== نصب با npm ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
npm install -g @openai/codex&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
یا:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
npm i -g @openai/codex&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== بررسی نصب ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
codex --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== اجرا ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
codex&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Login ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
codex login&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== بررسی PATH ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
where.exe codex&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
== Freebuff ==&lt;br /&gt;
&lt;br /&gt;
وب‌سایت رسمی:&lt;br /&gt;
&lt;br /&gt;
[https://freebuff.com/ Freebuff]&lt;br /&gt;
&lt;br /&gt;
=== ثبت‌نام با Referral ===&lt;br /&gt;
&lt;br /&gt;
برای ثبت‌نام می‌توان از لینک زیر استفاده کرد:&lt;br /&gt;
&lt;br /&gt;
[https://freebuff.com/?ref=ref-eead1f77-4518-43aa-a4fa-51a49acab0e1 ثبت‌نام در Freebuff]&lt;br /&gt;
&lt;br /&gt;
=== نصب Freebuff CLI ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
npm install -g freebuff&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
یا:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
npm i -g freebuff&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== بررسی نصب ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
freebuff --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== اجرا ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
freebuff&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== بررسی PATH ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
where.exe freebuff&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;نکته:&#039;&#039;&#039; در صورتی که Freebuff به‌صورت مستقیم توسط Claw Orchestrator پشتیبانی نشود، می‌توان آن را از طریق Custom CLI / Custom Engine به معماری اضافه کرد.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
= نصب Claw Orchestrator =&lt;br /&gt;
&lt;br /&gt;
Claw Orchestrator نقش لایه مرکزی Orchestration را در این معماری دارد.&lt;br /&gt;
&lt;br /&gt;
== نصب ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
npm install -g @enderfga/claw-orchestrator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== بررسی نسخه ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== نمایش Help ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo --help&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
نمونه:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Usage: clawo [options] [command]&lt;br /&gt;
&lt;br /&gt;
Claw Orchestrator CLI&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== اجرای Standalone Server ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo serve&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
در این حالت نیازی به نصب OpenClaw وجود ندارد.&lt;br /&gt;
&lt;br /&gt;
معماری:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Claude Code ─────┐&lt;br /&gt;
Codex ───────────┤&lt;br /&gt;
Cursor Agent ────┤&lt;br /&gt;
OpenCode ────────┤&lt;br /&gt;
Antigravity ─────┤&lt;br /&gt;
Freebuff ─────────┤&lt;br /&gt;
                 ↓&lt;br /&gt;
         Claw Orchestrator&lt;br /&gt;
                 │&lt;br /&gt;
                 ↓&lt;br /&gt;
        Agentic Development&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
= بررسی تمام CLIها =&lt;br /&gt;
&lt;br /&gt;
بعد از نصب:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
node --version&lt;br /&gt;
npm --version&lt;br /&gt;
git --version&lt;br /&gt;
&lt;br /&gt;
claude --version&lt;br /&gt;
cursor-agent --version&lt;br /&gt;
agy --version&lt;br /&gt;
opencode --version&lt;br /&gt;
codex --version&lt;br /&gt;
freebuff --version&lt;br /&gt;
&lt;br /&gt;
clawo --version &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
= بررسی مسیر executableها =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
where.exe node&lt;br /&gt;
where.exe npm&lt;br /&gt;
where.exe git&lt;br /&gt;
&lt;br /&gt;
where.exe claude&lt;br /&gt;
where.exe cursor-agent&lt;br /&gt;
where.exe agent&lt;br /&gt;
where.exe agy&lt;br /&gt;
where.exe opencode&lt;br /&gt;
where.exe codex&lt;br /&gt;
where.exe freebuff&lt;br /&gt;
&lt;br /&gt;
where.exe clawo &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
= Health Check کامل =&lt;br /&gt;
&lt;br /&gt;
می‌توان اسکریپت زیر را با نام:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AgenticDevOS-Check.ps1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ذخیره کرد.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
$tools = @(&lt;br /&gt;
    @{ Name = &amp;quot;Node.js&amp;quot;;            Command = &amp;quot;node&amp;quot;;         Args = &amp;quot;--version&amp;quot; },&lt;br /&gt;
    @{ Name = &amp;quot;npm&amp;quot;;                Command = &amp;quot;npm&amp;quot;;          Args = &amp;quot;--version&amp;quot; },&lt;br /&gt;
    @{ Name = &amp;quot;Git&amp;quot;;                Command = &amp;quot;git&amp;quot;;          Args = &amp;quot;--version&amp;quot; },&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
@{ Name = &amp;quot;Claude Code&amp;quot;;        Command = &amp;quot;claude&amp;quot;;       Args = &amp;quot;--version&amp;quot; },&lt;br /&gt;
@{ Name = &amp;quot;Cursor Agent&amp;quot;;       Command = &amp;quot;cursor-agent&amp;quot;; Args = &amp;quot;--version&amp;quot; },&lt;br /&gt;
@{ Name = &amp;quot;Antigravity&amp;quot;;        Command = &amp;quot;agy&amp;quot;;          Args = &amp;quot;--version&amp;quot; },&lt;br /&gt;
@{ Name = &amp;quot;OpenCode&amp;quot;;           Command = &amp;quot;opencode&amp;quot;;     Args = &amp;quot;--version&amp;quot; },&lt;br /&gt;
@{ Name = &amp;quot;Codex&amp;quot;;              Command = &amp;quot;codex&amp;quot;;        Args = &amp;quot;--version&amp;quot; },&lt;br /&gt;
@{ Name = &amp;quot;Freebuff&amp;quot;;           Command = &amp;quot;freebuff&amp;quot;;     Args = &amp;quot;--version&amp;quot; },&lt;br /&gt;
&lt;br /&gt;
@{ Name = &amp;quot;Claw Orchestrator&amp;quot;;  Command = &amp;quot;clawo&amp;quot;;        Args = &amp;quot;--version&amp;quot; }&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
Write-Host &amp;quot;&amp;quot;&lt;br /&gt;
Write-Host &amp;quot;========================================&amp;quot;&lt;br /&gt;
Write-Host &amp;quot;       AGENTIC DEV OS HEALTH CHECK&amp;quot;&lt;br /&gt;
Write-Host &amp;quot;========================================&amp;quot;&lt;br /&gt;
Write-Host &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
foreach ($tool in $tools) {&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
$exists = Get-Command $tool.Command -ErrorAction SilentlyContinue&lt;br /&gt;
&lt;br /&gt;
if ($exists) {&lt;br /&gt;
&lt;br /&gt;
    try {&lt;br /&gt;
&lt;br /&gt;
        $version = &amp;amp; $tool.Command $tool.Args 2&amp;gt;&amp;amp;1 |&lt;br /&gt;
            Select-Object -First 1&lt;br /&gt;
&lt;br /&gt;
        Write-Host &amp;quot;[OK]      &amp;quot; -ForegroundColor Green -NoNewline&lt;br /&gt;
        Write-Host &amp;quot;$($tool.Name) -&amp;gt; $version&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
    catch {&lt;br /&gt;
&lt;br /&gt;
        Write-Host &amp;quot;[WARNING] &amp;quot; -ForegroundColor Yellow -NoNewline&lt;br /&gt;
        Write-Host &amp;quot;$($tool.Name) installed but version check failed.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
else {&lt;br /&gt;
&lt;br /&gt;
    Write-Host &amp;quot;[MISSING] &amp;quot; -ForegroundColor Red -NoNewline&lt;br /&gt;
    Write-Host $tool.Name&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Write-Host &amp;quot;&amp;quot;&lt;br /&gt;
Write-Host &amp;quot;========================================&amp;quot; &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
اجرا:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
.\AgenticDevOS-Check.ps1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
= مدیریت Sessionها =&lt;br /&gt;
&lt;br /&gt;
== مشاهده Sessionها ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo session-list&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Help مربوط به Session ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo session-start --help&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== نمونه ساخت Session ==&lt;br /&gt;
&lt;br /&gt;
ابتدا وارد پروژه شوید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
cd D:\Source\MyProject&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
سپس:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo session-start myproject --engine claude --cwd .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ارسال Task ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo session-send myproject &amp;quot;Analyze this project and identify the most important problems.&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== وضعیت Session ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo session-status myproject&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== جستجو در History ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo session-grep myproject &amp;quot;error&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== توقف Session ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo session-stop myproject&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
= Agents =&lt;br /&gt;
&lt;br /&gt;
== مشاهده Agentها ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo agents-list&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ساخت Agent ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo agents-create --help&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
= Skills =&lt;br /&gt;
&lt;br /&gt;
== مشاهده Skills ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo skills-list&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ساخت Skill ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo skills-create --help&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
= Rules =&lt;br /&gt;
&lt;br /&gt;
== مشاهده Rules ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo rules-list&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ساخت Rule ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo rules-create --help&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
= Run Ledger =&lt;br /&gt;
&lt;br /&gt;
برای مشاهده Runها:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo runs&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Run Ledger برای مشاهده تاریخچه Turnها و اجراهای Agentها کاربرد دارد.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
= معماری Multi-Agent =&lt;br /&gt;
&lt;br /&gt;
هدف اصلی این محیط این است که Coding Agentها به شکل جداگانه و مستقل استفاده نشوند.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                    Developer&lt;br /&gt;
                        │&lt;br /&gt;
                        ↓&lt;br /&gt;
                Claw Orchestrator&lt;br /&gt;
                        │&lt;br /&gt;
              Planner / Router&lt;br /&gt;
                        │&lt;br /&gt;
       ┌────────────────┼────────────────┐&lt;br /&gt;
       │                │                │&lt;br /&gt;
       ↓                ↓                ↓&lt;br /&gt;
 Claude Code          Codex         Cursor Agent&lt;br /&gt;
       │                │                │&lt;br /&gt;
       ├──────────── OpenCode ───────────┤&lt;br /&gt;
       │                │                │&lt;br /&gt;
       ├───────── Antigravity ───────────┤&lt;br /&gt;
       │                │                │&lt;br /&gt;
       └──────────── Freebuff ───────────┘&lt;br /&gt;
                        │&lt;br /&gt;
                        ↓&lt;br /&gt;
                Automated Tests&lt;br /&gt;
                        │&lt;br /&gt;
                        ↓&lt;br /&gt;
                 Agent Council&lt;br /&gt;
                        │&lt;br /&gt;
                        ↓&lt;br /&gt;
                 LLM-as-a-Judge&lt;br /&gt;
                        │&lt;br /&gt;
                        ↓&lt;br /&gt;
                   Best Result&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
= LLM-as-a-Judge =&lt;br /&gt;
&lt;br /&gt;
یکی از مهم‌ترین کاربردهای این معماری استفاده از چند Agent برای تولید یا بررسی چند پاسخ مختلف است.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Task&lt;br /&gt;
 │&lt;br /&gt;
 ├── Claude Code&lt;br /&gt;
 │      └── Solution A&lt;br /&gt;
 │&lt;br /&gt;
 ├── Codex&lt;br /&gt;
 │      └── Solution B&lt;br /&gt;
 │&lt;br /&gt;
 ├── Cursor&lt;br /&gt;
 │      └── Solution C&lt;br /&gt;
 │&lt;br /&gt;
 └── Antigravity&lt;br /&gt;
        └── Solution D&lt;br /&gt;
&lt;br /&gt;
             ↓&lt;br /&gt;
&lt;br /&gt;
       Automated Checks&lt;br /&gt;
&lt;br /&gt;
       Build&lt;br /&gt;
       Tests&lt;br /&gt;
       Lint&lt;br /&gt;
       Security&lt;br /&gt;
       Benchmark&lt;br /&gt;
&lt;br /&gt;
             ↓&lt;br /&gt;
&lt;br /&gt;
         LLM Judges&lt;br /&gt;
&lt;br /&gt;
     Claude / GPT / Gemini&lt;br /&gt;
&lt;br /&gt;
             ↓&lt;br /&gt;
&lt;br /&gt;
        Score / Vote&lt;br /&gt;
&lt;br /&gt;
             ↓&lt;br /&gt;
&lt;br /&gt;
       Final Decision&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
= چرا Automated Tests قبل از LLM Judge مهم هستند؟ =&lt;br /&gt;
&lt;br /&gt;
نباید انتخاب بهترین کد فقط بر اساس نظر یک LLM باشد.&lt;br /&gt;
&lt;br /&gt;
ترتیب پیشنهادی:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Candidate Code&lt;br /&gt;
      │&lt;br /&gt;
      ↓&lt;br /&gt;
    Build&lt;br /&gt;
      │&lt;br /&gt;
      ↓&lt;br /&gt;
 Unit Tests&lt;br /&gt;
      │&lt;br /&gt;
      ↓&lt;br /&gt;
Integration Tests&lt;br /&gt;
      │&lt;br /&gt;
      ↓&lt;br /&gt;
    Lint&lt;br /&gt;
      │&lt;br /&gt;
      ↓&lt;br /&gt;
 Type Check&lt;br /&gt;
      │&lt;br /&gt;
      ↓&lt;br /&gt;
Security Check&lt;br /&gt;
      │&lt;br /&gt;
      ↓&lt;br /&gt;
 Benchmark&lt;br /&gt;
      │&lt;br /&gt;
      ↓&lt;br /&gt;
 LLM Review&lt;br /&gt;
      │&lt;br /&gt;
      ↓&lt;br /&gt;
 Final Score&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
= Multi-Agent Council =&lt;br /&gt;
&lt;br /&gt;
Council می‌تواند چند Agent را برای بررسی یک مسئله اجرا کند.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                    Problem&lt;br /&gt;
                       │&lt;br /&gt;
                       ↓&lt;br /&gt;
                Orchestrator&lt;br /&gt;
                       │&lt;br /&gt;
          ┌────────────┼────────────┐&lt;br /&gt;
          ↓            ↓            ↓&lt;br /&gt;
       Claude        Codex        Gemini&lt;br /&gt;
          │            │            │&lt;br /&gt;
          ↓            ↓            ↓&lt;br /&gt;
       Plan A         Plan B       Plan C&lt;br /&gt;
          │            │            │&lt;br /&gt;
          └────────────┼────────────┘&lt;br /&gt;
                       ↓&lt;br /&gt;
                  Cross Review&lt;br /&gt;
                       ↓&lt;br /&gt;
                     Vote&lt;br /&gt;
                       ↓&lt;br /&gt;
                  Consensus&lt;br /&gt;
                       ↓&lt;br /&gt;
                 Final Decision&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
موارد استفاده:&lt;br /&gt;
&lt;br /&gt;
* Architecture Design&lt;br /&gt;
* Code Review&lt;br /&gt;
* Refactoring&lt;br /&gt;
* Security Review&lt;br /&gt;
* Debugging&lt;br /&gt;
* Performance Optimization&lt;br /&gt;
* انتخاب بهترین Implementation&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
= Git Worktree و Isolation =&lt;br /&gt;
&lt;br /&gt;
برای جلوگیری از تداخل Agentها بهتر است هر Agent در Git Worktree مستقل فعالیت کند.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Repository&lt;br /&gt;
│&lt;br /&gt;
├── main&lt;br /&gt;
│&lt;br /&gt;
├── worktree-claude&lt;br /&gt;
│&lt;br /&gt;
├── worktree-codex&lt;br /&gt;
│&lt;br /&gt;
├── worktree-cursor&lt;br /&gt;
│&lt;br /&gt;
├── worktree-antigravity&lt;br /&gt;
└── worktree-review&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Command Not Found ==&lt;br /&gt;
&lt;br /&gt;
اگر با خطای زیر مواجه شدید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
The term &#039;xxxx&#039; is not recognized as a name of a cmdlet,&lt;br /&gt;
function, script file, or executable program.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
بررسی کنید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
where.exe xxxx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
یا:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
Get-Command xxxx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
== بررسی PATH ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
$env:Path -split &#039;;&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
== پیدا کردن PATHهای تکراری ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
$env:Path -split &#039;;&#039; |&lt;br /&gt;
    ForEach-Object { $_.Trim().TrimEnd(&#039;\&#039;) } |&lt;br /&gt;
    Group-Object |&lt;br /&gt;
    Where-Object Count -gt 1 |&lt;br /&gt;
    Select-Object Count, Name&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
= بروزرسانی Agentها =&lt;br /&gt;
&lt;br /&gt;
== Claude Code ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
claude --version&lt;br /&gt;
&lt;br /&gt;
npm install -g @anthropic-ai/claude-code@latest&lt;br /&gt;
&lt;br /&gt;
claude --version &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== OpenAI Codex ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
codex --version&lt;br /&gt;
&lt;br /&gt;
npm install -g @openai/codex@latest&lt;br /&gt;
&lt;br /&gt;
codex --version &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Claw Orchestrator ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
clawo --version&lt;br /&gt;
&lt;br /&gt;
npm install -g @enderfga/claw-orchestrator@latest&lt;br /&gt;
&lt;br /&gt;
clawo --version &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
= نصب سریع =&lt;br /&gt;
&lt;br /&gt;
== Claude Code ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
irm https://claude.ai/install.ps1 | iex&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cursor Agent ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
irm &#039;https://cursor.com/install?win32=true&#039; | iex&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Google Antigravity ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
irm https://antigravity.google/cli/install.ps1 | iex&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== OpenCode ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
npm config set allow-scripts=opencode-ai --location=user&lt;br /&gt;
npm i -g opencode-ai&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== OpenAI Codex ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
npm i -g @openai/codex&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Freebuff ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
npm i -g freebuff&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Claw Orchestrator ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
npm i -g @enderfga/claw-orchestrator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== بررسی نهایی ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
claude --version&lt;br /&gt;
cursor-agent --version&lt;br /&gt;
agy --version&lt;br /&gt;
opencode --version&lt;br /&gt;
codex --version&lt;br /&gt;
freebuff --version&lt;br /&gt;
clawo --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
= نتیجه‌گیری =&lt;br /&gt;
&lt;br /&gt;
هدف این معماری ساخت یک &#039;&#039;&#039;Agentic Development Environment&#039;&#039;&#039; با کمترین تعداد لایه اضافی است.&lt;br /&gt;
&lt;br /&gt;
به جای استفاده کاملاً مستقل از:&lt;br /&gt;
&lt;br /&gt;
* Claude Code&lt;br /&gt;
* OpenAI Codex&lt;br /&gt;
* Cursor Agent&lt;br /&gt;
* OpenCode&lt;br /&gt;
* Google Antigravity&lt;br /&gt;
* Freebuff&lt;br /&gt;
&lt;br /&gt;
می‌توان از &#039;&#039;&#039;Claw Orchestrator&#039;&#039;&#039; به عنوان لایه هماهنگ‌کننده استفاده کرد.&lt;br /&gt;
&lt;br /&gt;
هدف نهایی:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
یک Task&lt;br /&gt;
    ↓&lt;br /&gt;
چند Agent&lt;br /&gt;
    ↓&lt;br /&gt;
Automated Tests&lt;br /&gt;
    ↓&lt;br /&gt;
Multi-Agent Review&lt;br /&gt;
    ↓&lt;br /&gt;
LLM-as-a-Judge&lt;br /&gt;
    ↓&lt;br /&gt;
بهترین نتیجه&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
این معماری در آینده می‌تواند با MCP، مدل‌های Local، Agentهای اختصاصی، CI/CD و سیستم‌های Multi-Agent پیشرفته‌تر توسعه پیدا کند.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;نکته:&#039;&#039;&#039; ابزارهای Agentic و Coding Agentها با سرعت زیادی در حال توسعه هستند. قبل از نصب یا Upgrade بهتر است مستندات رسمی نسخه جاری هر پروژه بررسی شود.&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Ai_Claw_Orchestrator&amp;diff=196</id>
		<title>Ai Claw Orchestrator</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Ai_Claw_Orchestrator&amp;diff=196"/>
		<updated>2026-08-20T18:33:12Z</updated>

		<summary type="html">&lt;p&gt;Karavi: Created page with &amp;quot;# نصب Coding Agent CLIها در Windows  این بخش روش نصب CLI ابزارهایی را پوشش می‌دهد که در Agentic Development Environment استفاده می‌کنیم.  Agentهای مورد استفاده:  - Claude Code - OpenAI Codex - Cursor Agent - Google Antigravity - OpenCode - Freebuff - Claw Orchestrator  ---  ## 1. Claude Code  وب‌سایت رسمی:  https://claude.ai/  ### روش پیشنهادی — PowerShell  ```powershell ir...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;# نصب Coding Agent CLIها در Windows&lt;br /&gt;
&lt;br /&gt;
این بخش روش نصب CLI ابزارهایی را پوشش می‌دهد که در Agentic Development Environment استفاده می‌کنیم.&lt;br /&gt;
&lt;br /&gt;
Agentهای مورد استفاده:&lt;br /&gt;
&lt;br /&gt;
- Claude Code&lt;br /&gt;
- OpenAI Codex&lt;br /&gt;
- Cursor Agent&lt;br /&gt;
- Google Antigravity&lt;br /&gt;
- OpenCode&lt;br /&gt;
- Freebuff&lt;br /&gt;
- Claw Orchestrator&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 1. Claude Code&lt;br /&gt;
&lt;br /&gt;
وب‌سایت رسمی:&lt;br /&gt;
&lt;br /&gt;
https://claude.ai/&lt;br /&gt;
&lt;br /&gt;
### روش پیشنهادی — PowerShell&lt;br /&gt;
&lt;br /&gt;
```powershell&lt;br /&gt;
irm https://claude.ai/install.ps1 | iex&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
### روش دوم — CMD / curl&lt;br /&gt;
&lt;br /&gt;
```cmd&lt;br /&gt;
curl -fsSL https://claude.ai/install.cmd -o install.cmd &amp;amp;&amp;amp; install.cmd &amp;amp;&amp;amp; del install.cmd&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
### روش سوم — Winget&lt;br /&gt;
&lt;br /&gt;
```powershell&lt;br /&gt;
winget install Anthropic.ClaudeCode&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
### بررسی نصب&lt;br /&gt;
&lt;br /&gt;
```powershell&lt;br /&gt;
claude --version&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
### اجرا&lt;br /&gt;
&lt;br /&gt;
```powershell&lt;br /&gt;
claude&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
### بررسی سلامت&lt;br /&gt;
&lt;br /&gt;
```powershell&lt;br /&gt;
claude doctor&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 2. Cursor Agent CLI&lt;br /&gt;
&lt;br /&gt;
وب‌سایت رسمی:&lt;br /&gt;
&lt;br /&gt;
https://cursor.com/&lt;br /&gt;
&lt;br /&gt;
### نصب در Windows&lt;br /&gt;
&lt;br /&gt;
```powershell&lt;br /&gt;
irm &#039;https://cursor.com/install?win32=true&#039; | iex&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
### بررسی نصب&lt;br /&gt;
&lt;br /&gt;
```powershell&lt;br /&gt;
cursor-agent --version&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Cursor Agent ممکن است با دستور کوتاه زیر نیز قابل اجرا باشد:&lt;br /&gt;
&lt;br /&gt;
```powershell&lt;br /&gt;
agent&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
### بررسی PATH&lt;br /&gt;
&lt;br /&gt;
```powershell&lt;br /&gt;
where.exe cursor-agent&lt;br /&gt;
where.exe agent&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 3. Google Antigravity&lt;br /&gt;
&lt;br /&gt;
وب‌سایت رسمی:&lt;br /&gt;
&lt;br /&gt;
https://antigravity.google/&lt;br /&gt;
&lt;br /&gt;
نسخه Desktop برای Windows نیز با installer مربوط به سیستم x64 قابل نصب است.&lt;br /&gt;
&lt;br /&gt;
### نصب Antigravity CLI با PowerShell&lt;br /&gt;
&lt;br /&gt;
```powershell&lt;br /&gt;
irm https://antigravity.google/cli/install.ps1 | iex&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
### روش دوم با curl&lt;br /&gt;
&lt;br /&gt;
```cmd&lt;br /&gt;
curl -fsSL https://antigravity.google/cli/install.cmd -o install.cmd &amp;amp;&amp;amp; install.cmd &amp;amp;&amp;amp; del install.cmd&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
### بررسی CLI&lt;br /&gt;
&lt;br /&gt;
```powershell&lt;br /&gt;
agy --version&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
### اجرا&lt;br /&gt;
&lt;br /&gt;
```powershell&lt;br /&gt;
agy&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
### بررسی PATH&lt;br /&gt;
&lt;br /&gt;
```powershell&lt;br /&gt;
where.exe agy&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 4. Google Antigravity SDK&lt;br /&gt;
&lt;br /&gt;
در صورت نیاز به استفاده برنامه‌نویسی از SDK:&lt;br /&gt;
&lt;br /&gt;
```powershell&lt;br /&gt;
pip install google-antigravity&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
بررسی:&lt;br /&gt;
&lt;br /&gt;
```powershell&lt;br /&gt;
pip show google-antigravity&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
&amp;gt; برای استفاده از Claw Orchestrator معمولاً نصب CLI مهم‌تر از SDK است. SDK را فقط زمانی نصب کنید که مستقیماً در Python به آن نیاز دارید.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 5. OpenCode&lt;br /&gt;
&lt;br /&gt;
وب‌سایت رسمی:&lt;br /&gt;
&lt;br /&gt;
https://opencode.ai/&lt;br /&gt;
&lt;br /&gt;
ابتدا اجازه اجرای install script مربوط به package را بدهید:&lt;br /&gt;
&lt;br /&gt;
```powershell&lt;br /&gt;
npm config set allow-scripts=opencode-ai --location=user&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
سپس OpenCode را نصب کنید:&lt;br /&gt;
&lt;br /&gt;
```powershell&lt;br /&gt;
npm install -g opencode-ai&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
یا:&lt;br /&gt;
&lt;br /&gt;
```powershell&lt;br /&gt;
npm i -g opencode-ai&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
### بررسی نصب&lt;br /&gt;
&lt;br /&gt;
```powershell&lt;br /&gt;
opencode --version&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
### اجرا&lt;br /&gt;
&lt;br /&gt;
```powershell&lt;br /&gt;
opencode&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
### بررسی PATH&lt;br /&gt;
&lt;br /&gt;
```powershell&lt;br /&gt;
where.exe opencode&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 6. OpenAI Codex&lt;br /&gt;
&lt;br /&gt;
صفحه Codex:&lt;br /&gt;
&lt;br /&gt;
https://chatgpt.com/codex/cloud&lt;br /&gt;
&lt;br /&gt;
### نصب با npm&lt;br /&gt;
&lt;br /&gt;
```powershell&lt;br /&gt;
npm install -g @openai/codex&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
یا:&lt;br /&gt;
&lt;br /&gt;
```powershell&lt;br /&gt;
npm i -g @openai/codex&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
### بررسی نصب&lt;br /&gt;
&lt;br /&gt;
```powershell&lt;br /&gt;
codex --version&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
### اجرا&lt;br /&gt;
&lt;br /&gt;
```powershell&lt;br /&gt;
codex&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
### Login&lt;br /&gt;
&lt;br /&gt;
```powershell&lt;br /&gt;
codex login&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
### بررسی PATH&lt;br /&gt;
&lt;br /&gt;
```powershell&lt;br /&gt;
where.exe codex&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 7. Freebuff&lt;br /&gt;
&lt;br /&gt;
وب‌سایت:&lt;br /&gt;
&lt;br /&gt;
https://freebuff.com/&lt;br /&gt;
&lt;br /&gt;
### ثبت‌نام&lt;br /&gt;
&lt;br /&gt;
در صورت تمایل می‌توانید از Referral Link زیر برای ثبت‌نام استفاده کنید:&lt;br /&gt;
&lt;br /&gt;
https://freebuff.com/?ref=ref-eead1f77-4518-43aa-a4fa-51a49acab0e1&lt;br /&gt;
&lt;br /&gt;
### نصب Freebuff CLI&lt;br /&gt;
&lt;br /&gt;
```powershell&lt;br /&gt;
npm install -g freebuff&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
یا:&lt;br /&gt;
&lt;br /&gt;
```powershell&lt;br /&gt;
npm i -g freebuff&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
### بررسی نصب&lt;br /&gt;
&lt;br /&gt;
```powershell&lt;br /&gt;
freebuff --version&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
### اجرا&lt;br /&gt;
&lt;br /&gt;
```powershell&lt;br /&gt;
freebuff&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
### بررسی PATH&lt;br /&gt;
&lt;br /&gt;
```powershell&lt;br /&gt;
where.exe freebuff&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
# 8. Claw Orchestrator&lt;br /&gt;
&lt;br /&gt;
Claw Orchestrator لایه Orchestration این محیط است.&lt;br /&gt;
&lt;br /&gt;
بعد از نصب Coding Agentها می‌توان آن را نصب کرد.&lt;br /&gt;
&lt;br /&gt;
### نصب&lt;br /&gt;
&lt;br /&gt;
```powershell&lt;br /&gt;
npm install -g @enderfga/claw-orchestrator&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
### بررسی نسخه&lt;br /&gt;
&lt;br /&gt;
```powershell&lt;br /&gt;
clawo --version&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
### مشاهده دستورات&lt;br /&gt;
&lt;br /&gt;
```powershell&lt;br /&gt;
clawo --help&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
### اجرای Standalone Server&lt;br /&gt;
&lt;br /&gt;
```powershell&lt;br /&gt;
clawo serve&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
# 9. بررسی تمام CLIها بعد از نصب&lt;br /&gt;
&lt;br /&gt;
پس از پایان نصب، دستورات زیر را اجرا کنید:&lt;br /&gt;
&lt;br /&gt;
```powershell&lt;br /&gt;
node --version&lt;br /&gt;
npm --version&lt;br /&gt;
git --version&lt;br /&gt;
&lt;br /&gt;
claude --version&lt;br /&gt;
cursor-agent --version&lt;br /&gt;
agy --version&lt;br /&gt;
opencode --version&lt;br /&gt;
codex --version&lt;br /&gt;
freebuff --version&lt;br /&gt;
&lt;br /&gt;
clawo --version&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
اگر همه چیز درست باشد، تمام commandها باید بدون خطای `command not found` اجرا شوند.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
# 10. بررسی محل نصب CLIها&lt;br /&gt;
&lt;br /&gt;
برای مشاهده مسیر executableها:&lt;br /&gt;
&lt;br /&gt;
```powershell&lt;br /&gt;
where.exe node&lt;br /&gt;
where.exe npm&lt;br /&gt;
where.exe git&lt;br /&gt;
&lt;br /&gt;
where.exe claude&lt;br /&gt;
where.exe cursor-agent&lt;br /&gt;
where.exe agy&lt;br /&gt;
where.exe opencode&lt;br /&gt;
where.exe codex&lt;br /&gt;
where.exe freebuff&lt;br /&gt;
&lt;br /&gt;
where.exe clawo&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
# 11. بررسی خودکار&lt;br /&gt;
&lt;br /&gt;
می‌توانیم تمام CLIها را با PowerShell بررسی کنیم:&lt;br /&gt;
&lt;br /&gt;
```powershell&lt;br /&gt;
$tools = @(&lt;br /&gt;
    @{ Name = &amp;quot;Node.js&amp;quot;;            Command = &amp;quot;node&amp;quot;;         Args = &amp;quot;--version&amp;quot; },&lt;br /&gt;
    @{ Name = &amp;quot;npm&amp;quot;;                Command = &amp;quot;npm&amp;quot;;          Args = &amp;quot;--version&amp;quot; },&lt;br /&gt;
    @{ Name = &amp;quot;Git&amp;quot;;                Command = &amp;quot;git&amp;quot;;          Args = &amp;quot;--version&amp;quot; },&lt;br /&gt;
&lt;br /&gt;
    @{ Name = &amp;quot;Claude Code&amp;quot;;        Command = &amp;quot;claude&amp;quot;;       Args = &amp;quot;--version&amp;quot; },&lt;br /&gt;
    @{ Name = &amp;quot;Cursor Agent&amp;quot;;       Command = &amp;quot;cursor-agent&amp;quot;; Args = &amp;quot;--version&amp;quot; },&lt;br /&gt;
    @{ Name = &amp;quot;Antigravity&amp;quot;;        Command = &amp;quot;agy&amp;quot;;          Args = &amp;quot;--version&amp;quot; },&lt;br /&gt;
    @{ Name = &amp;quot;OpenCode&amp;quot;;           Command = &amp;quot;opencode&amp;quot;;     Args = &amp;quot;--version&amp;quot; },&lt;br /&gt;
    @{ Name = &amp;quot;Codex&amp;quot;;              Command = &amp;quot;codex&amp;quot;;        Args = &amp;quot;--version&amp;quot; },&lt;br /&gt;
    @{ Name = &amp;quot;Freebuff&amp;quot;;           Command = &amp;quot;freebuff&amp;quot;;     Args = &amp;quot;--version&amp;quot; },&lt;br /&gt;
&lt;br /&gt;
    @{ Name = &amp;quot;Claw Orchestrator&amp;quot;;  Command = &amp;quot;clawo&amp;quot;;        Args = &amp;quot;--version&amp;quot; }&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
Write-Host &amp;quot;&amp;quot;&lt;br /&gt;
Write-Host &amp;quot;========================================&amp;quot;&lt;br /&gt;
Write-Host &amp;quot;       AGENTIC DEV OS HEALTH CHECK&amp;quot;&lt;br /&gt;
Write-Host &amp;quot;========================================&amp;quot;&lt;br /&gt;
Write-Host &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
foreach ($tool in $tools) {&lt;br /&gt;
&lt;br /&gt;
    $exists = Get-Command $tool.Command -ErrorAction SilentlyContinue&lt;br /&gt;
&lt;br /&gt;
    if ($exists) {&lt;br /&gt;
&lt;br /&gt;
        try {&lt;br /&gt;
&lt;br /&gt;
            $version = &amp;amp; $tool.Command $tool.Args 2&amp;gt;&amp;amp;1 |&lt;br /&gt;
                Select-Object -First 1&lt;br /&gt;
&lt;br /&gt;
            Write-Host &amp;quot;[OK]      &amp;quot; -ForegroundColor Green -NoNewline&lt;br /&gt;
            Write-Host &amp;quot;$($tool.Name) -&amp;gt; $version&amp;quot;&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
        catch {&lt;br /&gt;
&lt;br /&gt;
            Write-Host &amp;quot;[WARNING] &amp;quot; -ForegroundColor Yellow -NoNewline&lt;br /&gt;
            Write-Host &amp;quot;$($tool.Name) installed but version check failed.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
    else {&lt;br /&gt;
&lt;br /&gt;
        Write-Host &amp;quot;[MISSING] &amp;quot; -ForegroundColor Red -NoNewline&lt;br /&gt;
        Write-Host $tool.Name&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Write-Host &amp;quot;&amp;quot;&lt;br /&gt;
Write-Host &amp;quot;========================================&amp;quot;&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
# 12. معماری نهایی&lt;br /&gt;
&lt;br /&gt;
```text&lt;br /&gt;
                    Developer&lt;br /&gt;
                        │&lt;br /&gt;
                        ↓&lt;br /&gt;
                Claw Orchestrator&lt;br /&gt;
                        │&lt;br /&gt;
              Planner / Router&lt;br /&gt;
                        │&lt;br /&gt;
       ┌────────────────┼────────────────┐&lt;br /&gt;
       │                │                │&lt;br /&gt;
       ↓                ↓                ↓&lt;br /&gt;
 Claude Code          Codex         Cursor Agent&lt;br /&gt;
       │                │                │&lt;br /&gt;
       ├──────────── OpenCode ───────────┤&lt;br /&gt;
       │                │                │&lt;br /&gt;
       ├───────── Antigravity ───────────┤&lt;br /&gt;
       │                │                │&lt;br /&gt;
       └──────────── Freebuff ───────────┘&lt;br /&gt;
                        │&lt;br /&gt;
                        ↓&lt;br /&gt;
                Automated Tests&lt;br /&gt;
                        │&lt;br /&gt;
                        ↓&lt;br /&gt;
                 Agent Council&lt;br /&gt;
                        │&lt;br /&gt;
                        ↓&lt;br /&gt;
                 LLM-as-a-Judge&lt;br /&gt;
                        │&lt;br /&gt;
                        ↓&lt;br /&gt;
                   Best Result&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
# نصب سریع&lt;br /&gt;
&lt;br /&gt;
برای یک سیستم جدید، ترتیب کلی نصب به این صورت است:&lt;br /&gt;
&lt;br /&gt;
## Claude Code&lt;br /&gt;
&lt;br /&gt;
```powershell&lt;br /&gt;
irm https://claude.ai/install.ps1 | iex&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
## Cursor Agent&lt;br /&gt;
&lt;br /&gt;
```powershell&lt;br /&gt;
irm &#039;https://cursor.com/install?win32=true&#039; | iex&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
## Antigravity&lt;br /&gt;
&lt;br /&gt;
```powershell&lt;br /&gt;
irm https://antigravity.google/cli/install.ps1 | iex&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
## OpenCode&lt;br /&gt;
&lt;br /&gt;
```powershell&lt;br /&gt;
npm config set allow-scripts=opencode-ai --location=user&lt;br /&gt;
npm i -g opencode-ai&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
## OpenAI Codex&lt;br /&gt;
&lt;br /&gt;
```powershell&lt;br /&gt;
npm i -g @openai/codex&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
## Freebuff&lt;br /&gt;
&lt;br /&gt;
```powershell&lt;br /&gt;
npm i -g freebuff&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
## Claw Orchestrator&lt;br /&gt;
&lt;br /&gt;
```powershell&lt;br /&gt;
npm i -g @enderfga/claw-orchestrator&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
## بررسی نهایی&lt;br /&gt;
&lt;br /&gt;
```powershell&lt;br /&gt;
claude --version&lt;br /&gt;
cursor-agent --version&lt;br /&gt;
agy --version&lt;br /&gt;
opencode --version&lt;br /&gt;
codex --version&lt;br /&gt;
freebuff --version&lt;br /&gt;
clawo --version&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
# نکته مهم&lt;br /&gt;
&lt;br /&gt;
قبل از نصب Agentها بهتر است موارد زیر نصب و در PATH قرار گرفته باشند:&lt;br /&gt;
&lt;br /&gt;
```text&lt;br /&gt;
PowerShell 7&lt;br /&gt;
Git&lt;br /&gt;
Node.js 22+&lt;br /&gt;
npm&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Python فقط در صورتی ضروری است که قصد استفاده از ابزارها یا SDKهای Python مانند Google Antigravity SDK را داشته باشید.&lt;br /&gt;
&lt;br /&gt;
با این ساختار، Claw Orchestrator به‌عنوان لایه مرکزی Orchestration استفاده می‌شود و Coding Agentهای مختلف می‌توانند به‌عنوان Worker، Reviewer یا Judge مورد استفاده قرار گیرند.&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Ai_Modes&amp;diff=195</id>
		<title>Ai Modes</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Ai_Modes&amp;diff=195"/>
		<updated>2026-08-19T04:24:05Z</updated>

		<summary type="html">&lt;p&gt;Karavi: Karavi moved page Ai Modes to Ai Models&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Ai Models]]&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Ai_Models&amp;diff=194</id>
		<title>Ai Models</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Ai_Models&amp;diff=194"/>
		<updated>2026-08-19T04:24:05Z</updated>

		<summary type="html">&lt;p&gt;Karavi: Karavi moved page Ai Modes to Ai Models&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== مقایسه مدل‌های هوش مصنوعی برای برنامه‌نویسی ==&lt;br /&gt;
&lt;br /&gt;
این صفحه مدل‌های موجود در انتخابگر مدل &#039;&#039;&#039;Freebuff&#039;&#039;&#039; (و به‌طور کلی مدل‌های برتر کدنویسی) را از دیدگاه‌های مختلف مقایسه می‌کند: کیفیت کد، قدرت عامل‌گرا (Agentic)، هزینه، سرعت، پنجره زمینه، اکوسیستم، متن‌باز بودن و حریم خصوصی.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;توجه:&#039;&#039;&#039; بسیاری از اعداد بنچمارک‌ها توسط خود شرکت‌ها منتشر شده‌اند و برخی بنچمارک‌ها (مثل SWE-bench Pro) حاشیه‌های زیادی دارند. اعداد را «نشانگر جهت» بگیرید، نه حقیقت مطلق.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== جدول خلاصه ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! مدل !! کیفیت کد !! قدرت Agentic / ترمینال !! هزینه !! سرعت !! نکته کلیدی&lt;br /&gt;
|-&lt;br /&gt;
| Claude Fable 5 || ⭐ بهترین (SWE-bench Pro ~80٪) || خیلی خوب || گران‌ترین ($10/$50) || متوسط || پادشاه کدنویسی سطح مخزن؛ پروژه‌های چندروزه&lt;br /&gt;
|-&lt;br /&gt;
| DeepSeek V4 Pro 08/13 || عالی (~77/100 تست مستقل) || خوب || متوسط–بالا || خوب || هوشمندترین متن‌باز؛ بین Opus 4.7 و Kimi K2.6&lt;br /&gt;
|-&lt;br /&gt;
| GPT-5.6 Sol || خیلی خوب (Pro 64.6٪) || ⭐ بهترین ترمینال (88.8٪) || گران ($5/$30) || خوب || رکورد Terminal-Bench؛ ولی در SWE-bench Pro از Fable عقب‌تر&lt;br /&gt;
|-&lt;br /&gt;
| Claude Opus 4.8 || عالی (Pro 69.2٪) || خوب (TB 74.6٪) || بالا || متوسط || قابل اعتماد برای کارهای چندمرحله‌ای طولانی&lt;br /&gt;
|-&lt;br /&gt;
| Claude Sonnet 5 || خوب (Pro 63.2٪) || ⭐ بهتر از Opus! (TB 80.4٪) || ارزان ($2/$10) || سریع || بهترین نسبت قیمت/کیفیت در خانواده کلود&lt;br /&gt;
|-&lt;br /&gt;
| GLM 5.2 || عالی (Pro 62.1٪) || عالی (TB 81.0٪) || متوسط ($1.40/$4.40) || خوب || متن‌باز MIT؛ سازگار با Claude Code&lt;br /&gt;
|-&lt;br /&gt;
| GPT-5.6 Terra || خوب || عالی (TB 87.4٪) || ارزان ($2/$12) || سریع || همه‌فن‌حریف روزمرهٔ Codex&lt;br /&gt;
|-&lt;br /&gt;
| MiniMax M3 || خوب (Pro 59.0٪) || متوسط (TB 66.0٪) || بسیار ارزان ($0.30/$1.20) || ⭐ سریع‌ترین (~110 tok/s) || چندوجهی: تصویر/ویدیو/دسکتاپ&lt;br /&gt;
|-&lt;br /&gt;
| GPT-5.6 Luna || متوسط (Coding Index 74.6) || خوب (TB 84.7٪) || ⭐ ارزان‌ترین ($0.20/$1.20) || ⭐ خیلی سریع || سقوط فاجعه‌بار در حافظهٔ طولانی (MRCR 41.3٪)&lt;br /&gt;
|-&lt;br /&gt;
| DeepSeek V4 Flash || متوسط (60/100) || متوسط || ⭐ فوق‌العاده ارزان (~$0.02/اجرا) || سریع || مناسب اولین پیش‌نویس + بازبینی انسانی&lt;br /&gt;
|-&lt;br /&gt;
| MiMo 2.5 || متوسط–خوب || متوسط || ارزان || ~55 tok/s || متعادل؛ مناسب کار روزمره&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== ۱. کیفیت کد (SWE-bench Pro) ===&lt;br /&gt;
&lt;br /&gt;
ترتیب تقریبی: &#039;&#039;&#039;Fable 5&#039;&#039;&#039; (~80٪) با فاصله جلو است؛ سپس Opus 4.8 (69٪)، GPT-5.6 Sol (64.6٪)، Sonnet 5 (63٪)، GLM 5.2 (62٪)، MiniMax M3 (59٪).&lt;br /&gt;
&lt;br /&gt;
نکته مهم: اپلیکیشن‌ها GPT-5.6 را «بهترین مدل کدنویسی» معرفی می‌کنند چون در بنچمارک‌های عامل‌گرا جلو است؛ اما در حل مسائل واقعی مخزن (issueهای چندفایلی) خانواده کلود به‌ویژه Fable 5 قوی‌تر است. هر دو ادعا درست‌اند — روی تسک‌های متفاوت.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== ۲. قدرت عامل‌گرا و ترمینال (Terminal-Bench 2.1) ===&lt;br /&gt;
&lt;br /&gt;
اینجا دنیا برعکس می‌شود:&lt;br /&gt;
&lt;br /&gt;
* GPT-5.6 Sol: 88.8٪ (رکورد)&lt;br /&gt;
* GPT-5.6 Terra: 87.4٪&lt;br /&gt;
* GPT-5.6 Luna: 84.7٪&lt;br /&gt;
* Claude Fable 5: 86.0٪&lt;br /&gt;
* GLM 5.2: 81.0٪&lt;br /&gt;
* Claude Sonnet 5: 80.4٪&lt;br /&gt;
* Claude Opus 4.8: 74.6٪&lt;br /&gt;
* MiniMax M3: 66.0٪&lt;br /&gt;
&lt;br /&gt;
برای «عاملی که خودش دستور در ترمینال اجرا می‌کند» خانواده GPT-5.6 و سپس Sonnet 5 انتخاب‌های بهتری هستند — حتی Sonnet 5 ارزان‌تر از Opus 4.8 در ترمینال بهتر عمل می‌کند.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== ۳. هزینه ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! دسته !! مدل‌ها !! توضیح&lt;br /&gt;
|-&lt;br /&gt;
| Unlimited / رایگان || DeepSeek V4 Flash، MiMo 2.5 || برای حجم کار بالا بدون دغدغه هزینه&lt;br /&gt;
|-&lt;br /&gt;
| Premium || DeepSeek V4 Pro، GPT-5.6 Luna، MiniMax M3 || Luna پس از کاهش قیمت ۸۰٪ ($0.20/$1.20) از نظر «کار به ازای هر دلار» رکورد می‌زند&lt;br /&gt;
|-&lt;br /&gt;
| اشتراک خودتان || Claude (Fable/Opus/Sonnet) و Codex (Sol/Terra/Luna) || از سهمیهٔ اشتراک شما مصرف می‌کنند&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
قیمت‌های API (به ازای هر میلیون توکن، ورودی/خروجی) پس از کاهش‌های ۳۰ ژوئیه:&lt;br /&gt;
&lt;br /&gt;
* GPT-5.6 Sol: $5 / $30&lt;br /&gt;
* GPT-5.6 Terra: $2 / $12&lt;br /&gt;
* GPT-5.6 Luna: $0.20 / $1.20&lt;br /&gt;
* Claude Fable 5: $10 / $50&lt;br /&gt;
* Claude Sonnet 5: $2 / $10 (تا ۳۱ اوت؛ سپس $3/$15)&lt;br /&gt;
* GLM 5.2: $1.40 / $4.40&lt;br /&gt;
* MiniMax M3: $0.30 / $1.20 (پرومو)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== ۴. سرعت ===&lt;br /&gt;
&lt;br /&gt;
* ⭐ سریع‌ترین: &#039;&#039;&#039;MiniMax M3&#039;&#039;&#039; (~110 توکن/ثانیه، تقریباً دو برابر MiMo با ~55 tok/s)&lt;br /&gt;
* سریع: GPT-5.6 Luna، DeepSeek V4 Flash، Sonnet 5&lt;br /&gt;
* کندتر (مدل‌های سنگین): Fable 5، V4 Pro، Sol — برای پاسخ سریع مناسب نیستند&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== ۵. پنجره زمینه (Context) ===&lt;br /&gt;
&lt;br /&gt;
همهٔ مدل‌های جدید حدود ۱ میلیون توکن پنجره دارند، اما کیفیت استفاده فرق می‌کند. در بنچمارک MRCR (بازیابی از متن طولانی):&lt;br /&gt;
&lt;br /&gt;
* GPT-5.6 Sol: 91.5٪&lt;br /&gt;
* GPT-5.6 Terra: 89.6٪&lt;br /&gt;
* GPT-5.6 Luna: 41.3٪ ← سقوط شدید&lt;br /&gt;
&lt;br /&gt;
اگر با کدبیس بزرگ کار می‌کنید، &#039;&#039;&#039;Luna گزینهٔ اشتباهی است&#039;&#039;&#039;؛ Sol/Terra یا Opus 4.8/Fable را انتخاب کنید.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== ۶. اکوسیستم و ابزار ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;GLM 5.2&#039;&#039;&#039; با API انتروپیک سازگار است — دراپ‌این مستقیم در Claude Code.&lt;br /&gt;
* مدل‌های &#039;&#039;&#039;Claude&#039;&#039;&#039; به‌صورت بومی در Claude Code و مدل‌های &#039;&#039;&#039;GPT-5.6&#039;&#039;&#039; در Codex یکپارچه‌اند؛ تلفیق ابزار، مدیریت فایل و اجازهٔ اجرا روان‌تر کار می‌کند.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== ۷. متن‌باز بودن ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;متن‌باز (MIT):&#039;&#039;&#039; DeepSeek V4 (MIT)، GLM 5.2 (MIT، وزن‌ها منتشرشده)&lt;br /&gt;
* &#039;&#039;&#039;وزن‌های باز:&#039;&#039;&#039; MiniMax M3، MiMo 2.5&lt;br /&gt;
* &#039;&#039;&#039;اختصاصی:&#039;&#039;&#039; Claude و GPT-5.6&lt;br /&gt;
&lt;br /&gt;
مدل‌های متن‌باز را می‌توانید خودتان میزبانی کنید، داده بیرون نرود و کاستوم‌سازی کنید.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== ۸. حریم خصوصی ===&lt;br /&gt;
&lt;br /&gt;
* مدل‌های &#039;&#039;&#039;DeepSeek&#039;&#039;&#039; «ممکن است داده را برای آموزش AI استفاده کنند» (در خود اپ هم نوشته شده).&lt;br /&gt;
* &#039;&#039;&#039;Claude و Codex&#039;&#039;&#039; با اشتراک، معمولاً آموزش روی داده‌های شما ندارند.&lt;br /&gt;
&lt;br /&gt;
اگر کد محرمانه دارید، این تفاوت مهم است.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== ۹. قابلیت تصویر (Multimodal) ===&lt;br /&gt;
&lt;br /&gt;
مدل‌های دارای برچسب Images: &#039;&#039;&#039;MiniMax M3&#039;&#039;&#039;، &#039;&#039;&#039;GPT-5.6 Luna&#039;&#039;&#039; و &#039;&#039;&#039;MiMo 2.5&#039;&#039;&#039; — مفید برای کدنویسی از روی اسکرین‌شات یا طراحی UI.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== توصیه نهایی بر اساس کاربرد ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! کاربرد !! مدل پیشنهادی&lt;br /&gt;
|-&lt;br /&gt;
| پروژه بزرگ / مهاجرت کد / کار چندروزه || Fable 5 (اگر سهمیهٔ اشتراک کلود اجازه دهد)&lt;br /&gt;
|-&lt;br /&gt;
| عامل خودمختار در ترمینال (Agentic) || GPT-5.6 Sol؛ برای کار روزمره Terra&lt;br /&gt;
|-&lt;br /&gt;
| بهترین تعادل قیمت/کیفیت || Sonnet 5 یا GPT-5.6 Terra یا GLM 5.2&lt;br /&gt;
|-&lt;br /&gt;
| بودجه صفر / حجم بالا || DeepSeek V4 Flash یا MiMo 2.5 (با بازبینی انسانی)&lt;br /&gt;
|-&lt;br /&gt;
| کدنویسی + تصویر/اسکرین‌شات || MiniMax M3 (سریع و ارزان) یا GPT-5.6 Luna&lt;br /&gt;
|-&lt;br /&gt;
| کدبیس خیلی بزرگ || از Luna پرهیز کنید؛ Sol/Terra یا Opus 4.8/Fable&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== منابع ===&lt;br /&gt;
&lt;br /&gt;
* OpenAI — معرفی GPT-5.6 (Sol/Terra/Luna) و رهبری در Terminal-Bench 2.1&lt;br /&gt;
* Anthropic — معرفی Claude Fable 5، Opus 4.8 و Sonnet 5&lt;br /&gt;
* Kilo AI — تست مستقل DeepSeek V4 Pro و Flash در برابر Opus 4.7 و Kimi K2.6&lt;br /&gt;
* Artificial Analysis — شاخص Coding Agent و مقایسهٔ MiniMax M3 در برابر MiMo&lt;br /&gt;
* CodingFleet — مقایسهٔ GLM-5.2 و MiniMax M3&lt;br /&gt;
&lt;br /&gt;
[[Category:AI]]&lt;br /&gt;
[[Category:Programming]]&lt;br /&gt;
[[Category:Comparison]]&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Ai_Models&amp;diff=193</id>
		<title>Ai Models</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Ai_Models&amp;diff=193"/>
		<updated>2026-08-16T20:19:10Z</updated>

		<summary type="html">&lt;p&gt;Karavi: Created page with &amp;quot;== مقایسه مدل‌های هوش مصنوعی برای برنامه‌نویسی ==  این صفحه مدل‌های موجود در انتخابگر مدل &amp;#039;&amp;#039;&amp;#039;Freebuff&amp;#039;&amp;#039;&amp;#039; (و به‌طور کلی مدل‌های برتر کدنویسی) را از دیدگاه‌های مختلف مقایسه می‌کند: کیفیت کد، قدرت عامل‌گرا (Agentic)، هزینه، سرعت، پنجره زمینه، اکوسیستم، متن‌باز بودن و حریم...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== مقایسه مدل‌های هوش مصنوعی برای برنامه‌نویسی ==&lt;br /&gt;
&lt;br /&gt;
این صفحه مدل‌های موجود در انتخابگر مدل &#039;&#039;&#039;Freebuff&#039;&#039;&#039; (و به‌طور کلی مدل‌های برتر کدنویسی) را از دیدگاه‌های مختلف مقایسه می‌کند: کیفیت کد، قدرت عامل‌گرا (Agentic)، هزینه، سرعت، پنجره زمینه، اکوسیستم، متن‌باز بودن و حریم خصوصی.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;توجه:&#039;&#039;&#039; بسیاری از اعداد بنچمارک‌ها توسط خود شرکت‌ها منتشر شده‌اند و برخی بنچمارک‌ها (مثل SWE-bench Pro) حاشیه‌های زیادی دارند. اعداد را «نشانگر جهت» بگیرید، نه حقیقت مطلق.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== جدول خلاصه ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! مدل !! کیفیت کد !! قدرت Agentic / ترمینال !! هزینه !! سرعت !! نکته کلیدی&lt;br /&gt;
|-&lt;br /&gt;
| Claude Fable 5 || ⭐ بهترین (SWE-bench Pro ~80٪) || خیلی خوب || گران‌ترین ($10/$50) || متوسط || پادشاه کدنویسی سطح مخزن؛ پروژه‌های چندروزه&lt;br /&gt;
|-&lt;br /&gt;
| DeepSeek V4 Pro 08/13 || عالی (~77/100 تست مستقل) || خوب || متوسط–بالا || خوب || هوشمندترین متن‌باز؛ بین Opus 4.7 و Kimi K2.6&lt;br /&gt;
|-&lt;br /&gt;
| GPT-5.6 Sol || خیلی خوب (Pro 64.6٪) || ⭐ بهترین ترمینال (88.8٪) || گران ($5/$30) || خوب || رکورد Terminal-Bench؛ ولی در SWE-bench Pro از Fable عقب‌تر&lt;br /&gt;
|-&lt;br /&gt;
| Claude Opus 4.8 || عالی (Pro 69.2٪) || خوب (TB 74.6٪) || بالا || متوسط || قابل اعتماد برای کارهای چندمرحله‌ای طولانی&lt;br /&gt;
|-&lt;br /&gt;
| Claude Sonnet 5 || خوب (Pro 63.2٪) || ⭐ بهتر از Opus! (TB 80.4٪) || ارزان ($2/$10) || سریع || بهترین نسبت قیمت/کیفیت در خانواده کلود&lt;br /&gt;
|-&lt;br /&gt;
| GLM 5.2 || عالی (Pro 62.1٪) || عالی (TB 81.0٪) || متوسط ($1.40/$4.40) || خوب || متن‌باز MIT؛ سازگار با Claude Code&lt;br /&gt;
|-&lt;br /&gt;
| GPT-5.6 Terra || خوب || عالی (TB 87.4٪) || ارزان ($2/$12) || سریع || همه‌فن‌حریف روزمرهٔ Codex&lt;br /&gt;
|-&lt;br /&gt;
| MiniMax M3 || خوب (Pro 59.0٪) || متوسط (TB 66.0٪) || بسیار ارزان ($0.30/$1.20) || ⭐ سریع‌ترین (~110 tok/s) || چندوجهی: تصویر/ویدیو/دسکتاپ&lt;br /&gt;
|-&lt;br /&gt;
| GPT-5.6 Luna || متوسط (Coding Index 74.6) || خوب (TB 84.7٪) || ⭐ ارزان‌ترین ($0.20/$1.20) || ⭐ خیلی سریع || سقوط فاجعه‌بار در حافظهٔ طولانی (MRCR 41.3٪)&lt;br /&gt;
|-&lt;br /&gt;
| DeepSeek V4 Flash || متوسط (60/100) || متوسط || ⭐ فوق‌العاده ارزان (~$0.02/اجرا) || سریع || مناسب اولین پیش‌نویس + بازبینی انسانی&lt;br /&gt;
|-&lt;br /&gt;
| MiMo 2.5 || متوسط–خوب || متوسط || ارزان || ~55 tok/s || متعادل؛ مناسب کار روزمره&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== ۱. کیفیت کد (SWE-bench Pro) ===&lt;br /&gt;
&lt;br /&gt;
ترتیب تقریبی: &#039;&#039;&#039;Fable 5&#039;&#039;&#039; (~80٪) با فاصله جلو است؛ سپس Opus 4.8 (69٪)، GPT-5.6 Sol (64.6٪)، Sonnet 5 (63٪)، GLM 5.2 (62٪)، MiniMax M3 (59٪).&lt;br /&gt;
&lt;br /&gt;
نکته مهم: اپلیکیشن‌ها GPT-5.6 را «بهترین مدل کدنویسی» معرفی می‌کنند چون در بنچمارک‌های عامل‌گرا جلو است؛ اما در حل مسائل واقعی مخزن (issueهای چندفایلی) خانواده کلود به‌ویژه Fable 5 قوی‌تر است. هر دو ادعا درست‌اند — روی تسک‌های متفاوت.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== ۲. قدرت عامل‌گرا و ترمینال (Terminal-Bench 2.1) ===&lt;br /&gt;
&lt;br /&gt;
اینجا دنیا برعکس می‌شود:&lt;br /&gt;
&lt;br /&gt;
* GPT-5.6 Sol: 88.8٪ (رکورد)&lt;br /&gt;
* GPT-5.6 Terra: 87.4٪&lt;br /&gt;
* GPT-5.6 Luna: 84.7٪&lt;br /&gt;
* Claude Fable 5: 86.0٪&lt;br /&gt;
* GLM 5.2: 81.0٪&lt;br /&gt;
* Claude Sonnet 5: 80.4٪&lt;br /&gt;
* Claude Opus 4.8: 74.6٪&lt;br /&gt;
* MiniMax M3: 66.0٪&lt;br /&gt;
&lt;br /&gt;
برای «عاملی که خودش دستور در ترمینال اجرا می‌کند» خانواده GPT-5.6 و سپس Sonnet 5 انتخاب‌های بهتری هستند — حتی Sonnet 5 ارزان‌تر از Opus 4.8 در ترمینال بهتر عمل می‌کند.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== ۳. هزینه ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! دسته !! مدل‌ها !! توضیح&lt;br /&gt;
|-&lt;br /&gt;
| Unlimited / رایگان || DeepSeek V4 Flash، MiMo 2.5 || برای حجم کار بالا بدون دغدغه هزینه&lt;br /&gt;
|-&lt;br /&gt;
| Premium || DeepSeek V4 Pro، GPT-5.6 Luna، MiniMax M3 || Luna پس از کاهش قیمت ۸۰٪ ($0.20/$1.20) از نظر «کار به ازای هر دلار» رکورد می‌زند&lt;br /&gt;
|-&lt;br /&gt;
| اشتراک خودتان || Claude (Fable/Opus/Sonnet) و Codex (Sol/Terra/Luna) || از سهمیهٔ اشتراک شما مصرف می‌کنند&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
قیمت‌های API (به ازای هر میلیون توکن، ورودی/خروجی) پس از کاهش‌های ۳۰ ژوئیه:&lt;br /&gt;
&lt;br /&gt;
* GPT-5.6 Sol: $5 / $30&lt;br /&gt;
* GPT-5.6 Terra: $2 / $12&lt;br /&gt;
* GPT-5.6 Luna: $0.20 / $1.20&lt;br /&gt;
* Claude Fable 5: $10 / $50&lt;br /&gt;
* Claude Sonnet 5: $2 / $10 (تا ۳۱ اوت؛ سپس $3/$15)&lt;br /&gt;
* GLM 5.2: $1.40 / $4.40&lt;br /&gt;
* MiniMax M3: $0.30 / $1.20 (پرومو)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== ۴. سرعت ===&lt;br /&gt;
&lt;br /&gt;
* ⭐ سریع‌ترین: &#039;&#039;&#039;MiniMax M3&#039;&#039;&#039; (~110 توکن/ثانیه، تقریباً دو برابر MiMo با ~55 tok/s)&lt;br /&gt;
* سریع: GPT-5.6 Luna، DeepSeek V4 Flash، Sonnet 5&lt;br /&gt;
* کندتر (مدل‌های سنگین): Fable 5، V4 Pro، Sol — برای پاسخ سریع مناسب نیستند&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== ۵. پنجره زمینه (Context) ===&lt;br /&gt;
&lt;br /&gt;
همهٔ مدل‌های جدید حدود ۱ میلیون توکن پنجره دارند، اما کیفیت استفاده فرق می‌کند. در بنچمارک MRCR (بازیابی از متن طولانی):&lt;br /&gt;
&lt;br /&gt;
* GPT-5.6 Sol: 91.5٪&lt;br /&gt;
* GPT-5.6 Terra: 89.6٪&lt;br /&gt;
* GPT-5.6 Luna: 41.3٪ ← سقوط شدید&lt;br /&gt;
&lt;br /&gt;
اگر با کدبیس بزرگ کار می‌کنید، &#039;&#039;&#039;Luna گزینهٔ اشتباهی است&#039;&#039;&#039;؛ Sol/Terra یا Opus 4.8/Fable را انتخاب کنید.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== ۶. اکوسیستم و ابزار ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;GLM 5.2&#039;&#039;&#039; با API انتروپیک سازگار است — دراپ‌این مستقیم در Claude Code.&lt;br /&gt;
* مدل‌های &#039;&#039;&#039;Claude&#039;&#039;&#039; به‌صورت بومی در Claude Code و مدل‌های &#039;&#039;&#039;GPT-5.6&#039;&#039;&#039; در Codex یکپارچه‌اند؛ تلفیق ابزار، مدیریت فایل و اجازهٔ اجرا روان‌تر کار می‌کند.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== ۷. متن‌باز بودن ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;متن‌باز (MIT):&#039;&#039;&#039; DeepSeek V4 (MIT)، GLM 5.2 (MIT، وزن‌ها منتشرشده)&lt;br /&gt;
* &#039;&#039;&#039;وزن‌های باز:&#039;&#039;&#039; MiniMax M3، MiMo 2.5&lt;br /&gt;
* &#039;&#039;&#039;اختصاصی:&#039;&#039;&#039; Claude و GPT-5.6&lt;br /&gt;
&lt;br /&gt;
مدل‌های متن‌باز را می‌توانید خودتان میزبانی کنید، داده بیرون نرود و کاستوم‌سازی کنید.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== ۸. حریم خصوصی ===&lt;br /&gt;
&lt;br /&gt;
* مدل‌های &#039;&#039;&#039;DeepSeek&#039;&#039;&#039; «ممکن است داده را برای آموزش AI استفاده کنند» (در خود اپ هم نوشته شده).&lt;br /&gt;
* &#039;&#039;&#039;Claude و Codex&#039;&#039;&#039; با اشتراک، معمولاً آموزش روی داده‌های شما ندارند.&lt;br /&gt;
&lt;br /&gt;
اگر کد محرمانه دارید، این تفاوت مهم است.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== ۹. قابلیت تصویر (Multimodal) ===&lt;br /&gt;
&lt;br /&gt;
مدل‌های دارای برچسب Images: &#039;&#039;&#039;MiniMax M3&#039;&#039;&#039;، &#039;&#039;&#039;GPT-5.6 Luna&#039;&#039;&#039; و &#039;&#039;&#039;MiMo 2.5&#039;&#039;&#039; — مفید برای کدنویسی از روی اسکرین‌شات یا طراحی UI.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== توصیه نهایی بر اساس کاربرد ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! کاربرد !! مدل پیشنهادی&lt;br /&gt;
|-&lt;br /&gt;
| پروژه بزرگ / مهاجرت کد / کار چندروزه || Fable 5 (اگر سهمیهٔ اشتراک کلود اجازه دهد)&lt;br /&gt;
|-&lt;br /&gt;
| عامل خودمختار در ترمینال (Agentic) || GPT-5.6 Sol؛ برای کار روزمره Terra&lt;br /&gt;
|-&lt;br /&gt;
| بهترین تعادل قیمت/کیفیت || Sonnet 5 یا GPT-5.6 Terra یا GLM 5.2&lt;br /&gt;
|-&lt;br /&gt;
| بودجه صفر / حجم بالا || DeepSeek V4 Flash یا MiMo 2.5 (با بازبینی انسانی)&lt;br /&gt;
|-&lt;br /&gt;
| کدنویسی + تصویر/اسکرین‌شات || MiniMax M3 (سریع و ارزان) یا GPT-5.6 Luna&lt;br /&gt;
|-&lt;br /&gt;
| کدبیس خیلی بزرگ || از Luna پرهیز کنید؛ Sol/Terra یا Opus 4.8/Fable&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== منابع ===&lt;br /&gt;
&lt;br /&gt;
* OpenAI — معرفی GPT-5.6 (Sol/Terra/Luna) و رهبری در Terminal-Bench 2.1&lt;br /&gt;
* Anthropic — معرفی Claude Fable 5، Opus 4.8 و Sonnet 5&lt;br /&gt;
* Kilo AI — تست مستقل DeepSeek V4 Pro و Flash در برابر Opus 4.7 و Kimi K2.6&lt;br /&gt;
* Artificial Analysis — شاخص Coding Agent و مقایسهٔ MiniMax M3 در برابر MiMo&lt;br /&gt;
* CodingFleet — مقایسهٔ GLM-5.2 و MiniMax M3&lt;br /&gt;
&lt;br /&gt;
[[Category:AI]]&lt;br /&gt;
[[Category:Programming]]&lt;br /&gt;
[[Category:Comparison]]&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Mail_Server_Test_ubuntu&amp;diff=192</id>
		<title>Mail Server Test ubuntu</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Mail_Server_Test_ubuntu&amp;diff=192"/>
		<updated>2026-08-16T11:54:18Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
این صفحه راهنمای تست اتصال به میل‌سرور (SMTP/IMAP/POP3) در Ubuntu است. دو روش در اینجا آموزش داده می‌شود:&lt;br /&gt;
&lt;br /&gt;
# اسکریپت سبک &#039;&#039;&#039;test-smtp.sh&#039;&#039;&#039; (بدون نیاز به نصب ابزار اضافه)&lt;br /&gt;
# ابزار قدرتمند &#039;&#039;&#039;swaks&#039;&#039;&#039; (SMTP Swiss Army Knife)&lt;br /&gt;
&lt;br /&gt;
{{Note|این صفحه بخشی از مستندات ابزارهای خط فرمان است.}}&lt;br /&gt;
&lt;br /&gt;
== پیش‌نیازها ==&lt;br /&gt;
* سیستم‌عامل &#039;&#039;&#039;Ubuntu&#039;&#039;&#039; (نسخه ۲۰.۰۴ یا جدیدتر توصیه می‌شود)&lt;br /&gt;
* دسترسی کاربر با مجوز &amp;lt;code&amp;gt;sudo&amp;lt;/code&amp;gt;&lt;br /&gt;
* نام میزبان یا آدرس IP میل‌سرور مقصد&lt;br /&gt;
* باز بودن پورت‌های خروجی در فایروال سمت کلاینت (در صورت وجود)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
|+ پورت‌های استاندارد میل&lt;br /&gt;
! پورت !! سرویس !! پروتکل !! رمزنگاری&lt;br /&gt;
|-&lt;br /&gt;
| ۲۵ || SMTP || ارسال || بدون رمزنگاری (یا STARTTLS)&lt;br /&gt;
|-&lt;br /&gt;
| ۴۶۵ || SMTPS || ارسال || SSL/TLS&lt;br /&gt;
|-&lt;br /&gt;
| ۵۸۷ || Submission || ارسال || STARTTLS&lt;br /&gt;
|-&lt;br /&gt;
| ۱۱۰ || POP3 || دریافت || بدون رمزنگاری&lt;br /&gt;
|-&lt;br /&gt;
| ۹۹۵ || POP3S || دریافت || SSL/TLS&lt;br /&gt;
|-&lt;br /&gt;
| ۱۴۳ || IMAP || دریافت || بدون رمزنگاری&lt;br /&gt;
|-&lt;br /&gt;
| ۹۹۳ || IMAPS || دریافت || SSL/TLS&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== روش اول: اسکریپت test-smtp.sh ==&lt;br /&gt;
این اسکریپت با استفاده از قابلیت &amp;lt;code&amp;gt;/dev/tcp&amp;lt;/code&amp;gt; هستهٔ Bash، اتصال TCP به همهٔ پورت‌های استاندارد میل‌سرور را بررسی می‌کند. آدرس IP دامنه نیز به‌صورت خودکار resolve و در خروجی نمایش داده می‌شود. &#039;&#039;&#039;نیاز به نصب هیچ ابزار اضافه‌ای ندارد.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== نصب ===&lt;br /&gt;
فایل را با نام &amp;lt;code&amp;gt;test-smtp.sh&amp;lt;/code&amp;gt; ایجاد کنید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
nano test-smtp.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
محتوای زیر را در آن قرار دهید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
# test-smtp.sh — بررسی اتصال به پورت‌های میل‌سرور&lt;br /&gt;
# استفاده: ./test-smtp.sh [سرور] [لیست پورت‌ها]&lt;br /&gt;
&lt;br /&gt;
SERVER=&amp;quot;${1:-smtp.example.com}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# پورت‌های استاندارد میل؛ می‌توانید با آرگومان دوم لیست سفارشی بدهید&lt;br /&gt;
PORTS=&amp;quot;${2:-25 465 587 110 995 143 993}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# یافتن آدرس IP دامنه&lt;br /&gt;
IP=$(getent hosts &amp;quot;$SERVER&amp;quot; | awk &#039;{print $1}&#039; | head -n1)&lt;br /&gt;
[ -z &amp;quot;$IP&amp;quot; ] &amp;amp;&amp;amp; IP=&amp;quot;(resolve failed)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
declare -A NAMES=(&lt;br /&gt;
  [25]=&amp;quot;SMTP&amp;quot;&lt;br /&gt;
  [465]=&amp;quot;SMTPS&amp;quot;&lt;br /&gt;
  [587]=&amp;quot;Submission&amp;quot;&lt;br /&gt;
  [110]=&amp;quot;POP3&amp;quot;&lt;br /&gt;
  [995]=&amp;quot;POP3S&amp;quot;&lt;br /&gt;
  [143]=&amp;quot;IMAP&amp;quot;&lt;br /&gt;
  [993]=&amp;quot;IMAPS&amp;quot;&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;=== Testing mail server: $SERVER ($IP) ===&amp;quot;&lt;br /&gt;
echo &amp;quot;Port        Service          Status&amp;quot;&lt;br /&gt;
echo &amp;quot;-----------------------------------&amp;quot;&lt;br /&gt;
&lt;br /&gt;
for PORT in $PORTS; do&lt;br /&gt;
  if timeout 5 bash -c &amp;quot;echo &amp;gt; /dev/tcp/$SERVER/$PORT&amp;quot; 2&amp;gt;/dev/null; then&lt;br /&gt;
    STATUS=&amp;quot;OPEN&amp;quot;&lt;br /&gt;
  else&lt;br /&gt;
    STATUS=&amp;quot;CLOSED/FILTERED&amp;quot;&lt;br /&gt;
  fi&lt;br /&gt;
  printf &amp;quot;%-10s %-16s %s\n&amp;quot; &amp;quot;$PORT&amp;quot; &amp;quot;${NAMES[$PORT]:-Unknown}&amp;quot; &amp;quot;$STATUS&amp;quot;&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
فایل را اجرایی کنید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
chmod +x test-smtp.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== نحوه استفاده ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# تست همهٔ پورت‌های استاندارد&lt;br /&gt;
./test-smtp.sh mail.example.com&lt;br /&gt;
&lt;br /&gt;
# تست پورت‌های دلخواه (فقط SMTP)&lt;br /&gt;
./test-smtp.sh mail.example.com &amp;quot;25 465 587&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# اسکن یک بازهٔ پورت&lt;br /&gt;
./test-smtp.sh mail.example.com &amp;quot;$(seq 1 100)&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== خروجی نمونه ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
=== Testing mail server: mail.example.com (192.0.2.10) ===&lt;br /&gt;
Port        Service          Status&lt;br /&gt;
-----------------------------------&lt;br /&gt;
25          SMTP             OPEN&lt;br /&gt;
465         SMTPS            OPEN&lt;br /&gt;
587         Submission       CLOSED/FILTERED&lt;br /&gt;
110         POP3             CLOSED/FILTERED&lt;br /&gt;
995         POP3S            CLOSED/FILTERED&lt;br /&gt;
143         IMAP             OPEN&lt;br /&gt;
993         IMAPS            OPEN&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note|آدرس IP در پرانتز کنار نام سرور نمایش داده می‌شود. اگر resolve ناموفق باشد، عبارت &amp;lt;code&amp;gt;(resolve failed)&amp;lt;/code&amp;gt; چاپ می‌شود.}}&lt;br /&gt;
&lt;br /&gt;
{{Note|این اسکریپت فقط اتصال TCP را بررسی می‌کند و پروتکل (مثلاً پاسخ SMTP به &amp;lt;code&amp;gt;EHLO&amp;lt;/code&amp;gt;) را تست نمی‌کند. برای تست کامل پروتکل از روش دوم (swaks) استفاده کنید.}}&lt;br /&gt;
&lt;br /&gt;
{{Warning|در صورت بسته بودن پورت، وضعیت &amp;lt;code&amp;gt;CLOSED/FILTERED&amp;lt;/code&amp;gt; نشان داده می‌شود. تفاوت بین «بسته» و «فیلترشده» با این روش قابل تشخیص نیست.}}&lt;br /&gt;
&lt;br /&gt;
== روش دوم: ابزار swaks ==&lt;br /&gt;
&#039;&#039;&#039;swaks&#039;&#039;&#039; (SMTP Swiss Army Knife) یک ابزار خط فرمان قدرتمند برای تست کامل و عیب‌یابی سرورهای SMTP است. با آن می‌توانید ایمیل تستی بفرستید، احراز هویت را بررسی کنید، TLS را تست کنید و جزئیات کامل گفتگو با سرور را ببینید.&lt;br /&gt;
&lt;br /&gt;
=== نصب ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install swaks&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
بررسی نصب:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
swaks --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== استفاده پایه ===&lt;br /&gt;
ساده‌ترین شکل — ارسال یک ایمیل تستی به سرور:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
swaks --to recipient@example.com --server mail.example.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note|در صورت عدم تعیین فرستنده، swaks به‌صورت پیش‌فرض از کاربر جاری سیستم استفاده می‌کند. با &amp;lt;code&amp;gt;--from&amp;lt;/code&amp;gt; می‌توانید آن را مشخص کنید.}}&lt;br /&gt;
&lt;br /&gt;
=== مثال‌های پرکاربرد ===&lt;br /&gt;
&#039;&#039;&#039;۱. ارسال ایمیل تستی کامل با احراز هویت و TLS (پورت ۵۸۷):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
swaks \&lt;br /&gt;
  --from sender@example.com \&lt;br /&gt;
  --to recipient@example.com \&lt;br /&gt;
  --server mail.example.com \&lt;br /&gt;
  --port 587 \&lt;br /&gt;
  --tls \&lt;br /&gt;
  --auth LOGIN \&lt;br /&gt;
  --auth-user sender@example.com \&lt;br /&gt;
  --auth-password &#039;YourPassword&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;۲. تست فقط اتصال و گفتگوی اولیه (بدون ارسال واقعی):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
swaks --server mail.example.com --quit-after EHLO&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;۳. نمایش جزئیات کامل گفتگو (مفید برای عیب‌یابی):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
swaks --to test@example.com --server mail.example.com -v&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;۴. تست سرور بدون رمزنگاری (پورت ۲۵):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
swaks --to test@example.com --server mail.example.com --port 25 --protocol SMTP&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;۵. تست SSL مستقیم (پورت ۴۶۵):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
swaks --to test@example.com --server mail.example.com --port 465 --tls&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;۶. ارسال ایمیل با محتوای سفارشی:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
swaks \&lt;br /&gt;
  --to test@example.com \&lt;br /&gt;
  --server mail.example.com \&lt;br /&gt;
  --header &amp;quot;Subject: Test Mail&amp;quot; \&lt;br /&gt;
  --body &amp;quot;This is a test email sent by swaks.&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== خروجی نمونه ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
=== Trying mail.example.com:587...&lt;br /&gt;
=== Connected to mail.example.com.&lt;br /&gt;
&amp;lt;-  220 mail.example.com ESMTP Postfix&lt;br /&gt;
 -&amp;gt; EHLO localhost&lt;br /&gt;
&amp;lt;-  250-mail.example.com&lt;br /&gt;
&amp;lt;-  250-PIPELINING&lt;br /&gt;
&amp;lt;-  250-SIZE 10240000&lt;br /&gt;
&amp;lt;-  250-STARTTLS&lt;br /&gt;
&amp;lt;-  250-AUTH PLAIN LOGIN&lt;br /&gt;
&amp;lt;-  250-ENHANCEDSTATUSCODES&lt;br /&gt;
&amp;lt;-  250 8BITMIME&lt;br /&gt;
 -&amp;gt; STARTTLS&lt;br /&gt;
&amp;lt;-  220 2.0.0 Ready to start TLS&lt;br /&gt;
...&lt;br /&gt;
 -&amp;gt; QUIT&lt;br /&gt;
&amp;lt;-  221 2.0.0 Bye&lt;br /&gt;
=== Connection closed with remote host.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note|کدهای پاسخ SMTP را بشناسید: &amp;lt;code&amp;gt;250&amp;lt;/code&amp;gt; یعنی موفق، &amp;lt;code&amp;gt;550&amp;lt;/code&amp;gt; یعنی گیرنده رد شد، &amp;lt;code&amp;gt;535&amp;lt;/code&amp;gt; یعنی احراز هویت ناموفق، &amp;lt;code&amp;gt;554&amp;lt;/code&amp;gt; یعنی تراکنش رد شد.}}&lt;br /&gt;
&lt;br /&gt;
== مقایسه دو روش ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
! ویژگی !! test-smtp.sh !! swaks&lt;br /&gt;
|-&lt;br /&gt;
| نیاز به نصب || خیر || بله (&amp;lt;code&amp;gt;apt install swaks&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| تست اتصال TCP به چند پورت || بله || فقط یک پورت در هر بار&lt;br /&gt;
|-&lt;br /&gt;
| تست کامل پروتکل SMTP || خیر || بله&lt;br /&gt;
|-&lt;br /&gt;
| ارسال ایمیل واقعی || خیر || بله&lt;br /&gt;
|-&lt;br /&gt;
| تست احراز هویت (AUTH) || خیر || بله&lt;br /&gt;
|-&lt;br /&gt;
| تست TLS/STARTTLS || خیر || بله&lt;br /&gt;
|-&lt;br /&gt;
| خروجی جزئیات گفتگو || خیر || بله (&amp;lt;code&amp;gt;-v&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| مناسب برای || بررسی سریع باز بودن پورت‌ها || عیب‌یابی کامل و تست ارسال&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Tip|برای بررسی سریع باز بودن همهٔ پورت‌ها از &amp;lt;code&amp;gt;test-smtp.sh&amp;lt;/code&amp;gt; و برای عیب‌یابی عمیق و تست ارسال واقعی از &amp;lt;code&amp;gt;swaks&amp;lt;/code&amp;gt; استفاده کنید.}}&lt;br /&gt;
&lt;br /&gt;
== عیب‌یابی ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
! مشکل !! راه‌حل&lt;br /&gt;
|-&lt;br /&gt;
| همهٔ پورت‌ها CLOSED هستند || فایروال سمت سرور (مثلاً &amp;lt;code&amp;gt;ufw&amp;lt;/code&amp;gt;) یا ISP را بررسی کنید: &amp;lt;code&amp;gt;sudo ufw status&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| نام سرور resolve نمی‌شود || تست DNS: &amp;lt;code&amp;gt;dig mail.example.com&amp;lt;/code&amp;gt; یا &amp;lt;code&amp;gt;nslookup mail.example.com&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| خطای احراز هویت (۵۳۵) || نام کاربری/رمز عبور را بررسی کنید؛ در Gmail باید از App Password استفاده کنید&lt;br /&gt;
|-&lt;br /&gt;
| خطای TLS || مطمئن شوید پورت درست است؛ پورت ۴۶۵ برای SSL مستقیم و ۵۸۷ برای STARTTLS است&lt;br /&gt;
|-&lt;br /&gt;
| پاسخ &amp;lt;code&amp;gt;550&amp;lt;/code&amp;gt; هنگام ارسال || گیرنده یا دامنهٔ فرستنده تأیید نشده؛ SPF/DKIM سرور را بررسی کنید&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Connection timed out&amp;lt;/code&amp;gt; || فایروال کلاینت یا سرور؛ دسترسی به پورت خروجی را تست کنید&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== منابع ==&lt;br /&gt;
* [https://github.com/jetmore/swaks مستندات رسمی swaks]&lt;br /&gt;
* [https://help.ubuntu.com/community/AptGet/Howto راهنمای Ubuntu برای نصب پکیج‌ها]&lt;br /&gt;
* [https://en.wikipedia.org/wiki/SMTP صفحهٔ SMTP در ویکی‌پدیا]&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Mail_Server_Test_ubuntu&amp;diff=191</id>
		<title>Mail Server Test ubuntu</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Mail_Server_Test_ubuntu&amp;diff=191"/>
		<updated>2026-08-16T11:43:09Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
این صفحه راهنمای تست اتصال به میل‌سرور (SMTP/IMAP/POP3) در Ubuntu است. دو روش در اینجا آموزش داده می‌شود:&lt;br /&gt;
&lt;br /&gt;
# اسکریپت سبک &#039;&#039;&#039;test-smtp.sh&#039;&#039;&#039; (بدون نیاز به نصب ابزار اضافه)&lt;br /&gt;
# ابزار قدرتمند &#039;&#039;&#039;swaks&#039;&#039;&#039; (SMTP Swiss Army Knife)&lt;br /&gt;
&lt;br /&gt;
{{Note|این صفحه بخشی از مستندات ابزارهای خط فرمان است.}}&lt;br /&gt;
&lt;br /&gt;
== پیش‌نیازها ==&lt;br /&gt;
* سیستم‌عامل &#039;&#039;&#039;Ubuntu&#039;&#039;&#039; (نسخه ۲۰.۰۴ یا جدیدتر توصیه می‌شود)&lt;br /&gt;
* دسترسی کاربر با مجوز &amp;lt;code&amp;gt;sudo&amp;lt;/code&amp;gt;&lt;br /&gt;
* نام میزبان یا آدرس IP میل‌سرور مقصد&lt;br /&gt;
* باز بودن پورت‌های خروجی در فایروال سمت کلاینت (در صورت وجود)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
|+ پورت‌های استاندارد میل&lt;br /&gt;
! پورت !! سرویس !! پروتکل !! رمزنگاری&lt;br /&gt;
|-&lt;br /&gt;
| ۲۵ || SMTP || ارسال || بدون رمزنگاری (یا STARTTLS)&lt;br /&gt;
|-&lt;br /&gt;
| ۴۶۵ || SMTPS || ارسال || SSL/TLS&lt;br /&gt;
|-&lt;br /&gt;
| ۵۸۷ || Submission || ارسال || STARTTLS&lt;br /&gt;
|-&lt;br /&gt;
| ۱۱۰ || POP3 || دریافت || بدون رمزنگاری&lt;br /&gt;
|-&lt;br /&gt;
| ۹۹۵ || POP3S || دریافت || SSL/TLS&lt;br /&gt;
|-&lt;br /&gt;
| ۱۴۳ || IMAP || دریافت || بدون رمزنگاری&lt;br /&gt;
|-&lt;br /&gt;
| ۹۹۳ || IMAPS || دریافت || SSL/TLS&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== روش اول: اسکریپت test-smtp.sh ==&lt;br /&gt;
این اسکریپت با استفاده از قابلیت &amp;lt;code&amp;gt;/dev/tcp&amp;lt;/code&amp;gt; هستهٔ Bash، اتصال TCP به همهٔ پورت‌های استاندارد میل‌سرور را بررسی می‌کند. &#039;&#039;&#039;نیاز به نصب هیچ ابزار اضافه‌ای ندارد.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== نصب ===&lt;br /&gt;
فایل را با نام &amp;lt;code&amp;gt;test-smtp.sh&amp;lt;/code&amp;gt; ایجاد کنید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
nano test-smtp.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
محتوای زیر را در آن قرار دهید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
# test-smtp.sh — بررسی اتصال به پورت‌های میل‌سرور&lt;br /&gt;
# استفاده: ./test-smtp.sh [سرور] [لیست پورت‌ها]&lt;br /&gt;
&lt;br /&gt;
SERVER=&amp;quot;${1:-smtp.example.com}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# پورت‌های استاندارد میل؛ می‌توانید با آرگومان دوم لیست سفارشی بدهید&lt;br /&gt;
PORTS=&amp;quot;${2:-25 465 587 110 995 143 993}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
declare -A NAMES=(&lt;br /&gt;
  [25]=&amp;quot;SMTP&amp;quot;&lt;br /&gt;
  [465]=&amp;quot;SMTPS&amp;quot;&lt;br /&gt;
  [587]=&amp;quot;Submission&amp;quot;&lt;br /&gt;
  [110]=&amp;quot;POP3&amp;quot;&lt;br /&gt;
  [995]=&amp;quot;POP3S&amp;quot;&lt;br /&gt;
  [143]=&amp;quot;IMAP&amp;quot;&lt;br /&gt;
  [993]=&amp;quot;IMAPS&amp;quot;&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;=== Testing mail server: $SERVER ===&amp;quot;&lt;br /&gt;
echo &amp;quot;Port        Service          Status&amp;quot;&lt;br /&gt;
echo &amp;quot;-----------------------------------&amp;quot;&lt;br /&gt;
&lt;br /&gt;
for PORT in $PORTS; do&lt;br /&gt;
  if timeout 5 bash -c &amp;quot;echo &amp;gt; /dev/tcp/$SERVER/$PORT&amp;quot; 2&amp;gt;/dev/null; then&lt;br /&gt;
    STATUS=&amp;quot;OPEN&amp;quot;&lt;br /&gt;
  else&lt;br /&gt;
    STATUS=&amp;quot;CLOSED/FILTERED&amp;quot;&lt;br /&gt;
  fi&lt;br /&gt;
  printf &amp;quot;%-10s %-16s %s\n&amp;quot; &amp;quot;$PORT&amp;quot; &amp;quot;${NAMES[$PORT]:-Unknown}&amp;quot; &amp;quot;$STATUS&amp;quot;&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
فایل را اجرایی کنید:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
chmod +x test-smtp.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== نحوه استفاده ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# تست همهٔ پورت‌های استاندارد&lt;br /&gt;
./test-smtp.sh mail.example.com&lt;br /&gt;
&lt;br /&gt;
# تست پورت‌های دلخواه (فقط SMTP)&lt;br /&gt;
./test-smtp.sh mail.example.com &amp;quot;25 465 587&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# اسکن یک بازهٔ پورت&lt;br /&gt;
./test-smtp.sh mail.example.com &amp;quot;$(seq 1 100)&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== خروجی نمونه ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
=== Testing mail server: mail.example.com ===&lt;br /&gt;
Port        Service          Status&lt;br /&gt;
-----------------------------------&lt;br /&gt;
25          SMTP             OPEN&lt;br /&gt;
465         SMTPS            OPEN&lt;br /&gt;
587         Submission       CLOSED/FILTERED&lt;br /&gt;
110         POP3             CLOSED/FILTERED&lt;br /&gt;
995         POP3S            CLOSED/FILTERED&lt;br /&gt;
143         IMAP             OPEN&lt;br /&gt;
993         IMAPS            OPEN&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note|این اسکریپت فقط اتصال TCP را بررسی می‌کند و پروتکل (مثلاً پاسخ SMTP به &amp;lt;code&amp;gt;EHLO&amp;lt;/code&amp;gt;) را تست نمی‌کند. برای تست کامل پروتکل از روش دوم (swaks) استفاده کنید.}}&lt;br /&gt;
&lt;br /&gt;
{{Warning|در صورت بسته بودن پورت، وضعیت &amp;lt;code&amp;gt;CLOSED/FILTERED&amp;lt;/code&amp;gt; نشان داده می‌شود. تفاوت بین «بسته» و «فیلترشده» با این روش قابل تشخیص نیست.}}&lt;br /&gt;
&lt;br /&gt;
== روش دوم: ابزار swaks ==&lt;br /&gt;
&#039;&#039;&#039;swaks&#039;&#039;&#039; (SMTP Swiss Army Knife) یک ابزار خط فرمان قدرتمند برای تست کامل و عیب‌یابی سرورهای SMTP است. با آن می‌توانید ایمیل تستی بفرستید، احراز هویت را بررسی کنید، TLS را تست کنید و جزئیات کامل گفتگو با سرور را ببینید.&lt;br /&gt;
&lt;br /&gt;
=== نصب ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install swaks&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
بررسی نصب:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
swaks --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== استفاده پایه ===&lt;br /&gt;
ساده‌ترین شکل — ارسال یک ایمیل تستی به سرور:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
swaks --to recipient@example.com --server mail.example.com&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note|در صورت عدم تعیین فرستنده، swaks به‌صورت پیش‌فرض از کاربر جاری سیستم استفاده می‌کند. با &amp;lt;code&amp;gt;--from&amp;lt;/code&amp;gt; می‌توانید آن را مشخص کنید.}}&lt;br /&gt;
&lt;br /&gt;
=== مثال‌های پرکاربرد ===&lt;br /&gt;
&#039;&#039;&#039;۱. ارسال ایمیل تستی کامل با احراز هویت و TLS (پورت ۵۸۷):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
swaks \&lt;br /&gt;
  --from sender@example.com \&lt;br /&gt;
  --to recipient@example.com \&lt;br /&gt;
  --server mail.example.com \&lt;br /&gt;
  --port 587 \&lt;br /&gt;
  --tls \&lt;br /&gt;
  --auth LOGIN \&lt;br /&gt;
  --auth-user sender@example.com \&lt;br /&gt;
  --auth-password &#039;YourPassword&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;۲. تست فقط اتصال و گفتگوی اولیه (بدون ارسال واقعی):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
swaks --server mail.example.com --quit-after EHLO&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;۳. نمایش جزئیات کامل گفتگو (مفید برای عیب‌یابی):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
swaks --to test@example.com --server mail.example.com -v&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;۴. تست سرور بدون رمزنگاری (پورت ۲۵):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
swaks --to test@example.com --server mail.example.com --port 25 --protocol SMTP&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;۵. تست SSL مستقیم (پورت ۴۶۵):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
swaks --to test@example.com --server mail.example.com --port 465 --tls&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;۶. ارسال ایمیل با محتوای سفارشی:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
swaks \&lt;br /&gt;
  --to test@example.com \&lt;br /&gt;
  --server mail.example.com \&lt;br /&gt;
  --header &amp;quot;Subject: Test Mail&amp;quot; \&lt;br /&gt;
  --body &amp;quot;This is a test email sent by swaks.&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== خروجی نمونه ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
=== Trying mail.example.com:587...&lt;br /&gt;
=== Connected to mail.example.com.&lt;br /&gt;
&amp;lt;-  220 mail.example.com ESMTP Postfix&lt;br /&gt;
 -&amp;gt; EHLO localhost&lt;br /&gt;
&amp;lt;-  250-mail.example.com&lt;br /&gt;
&amp;lt;-  250-PIPELINING&lt;br /&gt;
&amp;lt;-  250-SIZE 10240000&lt;br /&gt;
&amp;lt;-  250-STARTTLS&lt;br /&gt;
&amp;lt;-  250-AUTH PLAIN LOGIN&lt;br /&gt;
&amp;lt;-  250-ENHANCEDSTATUSCODES&lt;br /&gt;
&amp;lt;-  250 8BITMIME&lt;br /&gt;
 -&amp;gt; STARTTLS&lt;br /&gt;
&amp;lt;-  220 2.0.0 Ready to start TLS&lt;br /&gt;
...&lt;br /&gt;
 -&amp;gt; QUIT&lt;br /&gt;
&amp;lt;-  221 2.0.0 Bye&lt;br /&gt;
=== Connection closed with remote host.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note|کدهای پاسخ SMTP را بشناسید: &amp;lt;code&amp;gt;250&amp;lt;/code&amp;gt; یعنی موفق، &amp;lt;code&amp;gt;550&amp;lt;/code&amp;gt; یعنی گیرنده رد شد، &amp;lt;code&amp;gt;535&amp;lt;/code&amp;gt; یعنی احراز هویت ناموفق، &amp;lt;code&amp;gt;554&amp;lt;/code&amp;gt; یعنی تراکنش رد شد.}}&lt;br /&gt;
&lt;br /&gt;
== مقایسه دو روش ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
! ویژگی !! test-smtp.sh !! swaks&lt;br /&gt;
|-&lt;br /&gt;
| نیاز به نصب || خیر || بله (&amp;lt;code&amp;gt;apt install swaks&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| تست اتصال TCP به چند پورت || بله || فقط یک پورت در هر بار&lt;br /&gt;
|-&lt;br /&gt;
| تست کامل پروتکل SMTP || خیر || بله&lt;br /&gt;
|-&lt;br /&gt;
| ارسال ایمیل واقعی || خیر || بله&lt;br /&gt;
|-&lt;br /&gt;
| تست احراز هویت (AUTH) || خیر || بله&lt;br /&gt;
|-&lt;br /&gt;
| تست TLS/STARTTLS || خیر || بله&lt;br /&gt;
|-&lt;br /&gt;
| خروجی جزئیات گفتگو || خیر || بله (&amp;lt;code&amp;gt;-v&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| مناسب برای || بررسی سریع باز بودن پورت‌ها || عیب‌یابی کامل و تست ارسال&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Tip|برای بررسی سریع باز بودن همهٔ پورت‌ها از &amp;lt;code&amp;gt;test-smtp.sh&amp;lt;/code&amp;gt; و برای عیب‌یابی عمیق و تست ارسال واقعی از &amp;lt;code&amp;gt;swaks&amp;lt;/code&amp;gt; استفاده کنید.}}&lt;br /&gt;
&lt;br /&gt;
== عیب‌یابی ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
! مشکل !! راه‌حل&lt;br /&gt;
|-&lt;br /&gt;
| همهٔ پورت‌ها CLOSED هستند || فایروال سمت سرور (مثلاً &amp;lt;code&amp;gt;ufw&amp;lt;/code&amp;gt;) یا ISP را بررسی کنید: &amp;lt;code&amp;gt;sudo ufw status&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| نام سرور resolve نمی‌شود || تست DNS: &amp;lt;code&amp;gt;dig mail.example.com&amp;lt;/code&amp;gt; یا &amp;lt;code&amp;gt;nslookup mail.example.com&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| خطای احراز هویت (۵۳۵) || نام کاربری/رمز عبور را بررسی کنید؛ در Gmail باید از App Password استفاده کنید&lt;br /&gt;
|-&lt;br /&gt;
| خطای TLS || مطمئن شوید پورت درست است؛ پورت ۴۶۵ برای SSL مستقیم و ۵۸۷ برای STARTTLS است&lt;br /&gt;
|-&lt;br /&gt;
| پاسخ &amp;lt;code&amp;gt;550&amp;lt;/code&amp;gt; هنگام ارسال || گیرنده یا دامنهٔ فرستنده تأیید نشده؛ SPF/DKIM سرور را بررسی کنید&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Connection timed out&amp;lt;/code&amp;gt; || فایروال کلاینت یا سرور؛ دسترسی به پورت خروجی را تست کنید&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== منابع ==&lt;br /&gt;
* [https://github.com/jetmore/swaks مستندات رسمی swaks]&lt;br /&gt;
* [https://help.ubuntu.com/community/AptGet/Howto راهنمای Ubuntu برای نصب پکیج‌ها]&lt;br /&gt;
* [https://en.wikipedia.org/wiki/SMTP صفحهٔ SMTP در ویکی‌پدیا]&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Mail_Server_Test_ubuntu&amp;diff=190</id>
		<title>Mail Server Test ubuntu</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Mail_Server_Test_ubuntu&amp;diff=190"/>
		<updated>2026-08-16T11:42:09Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;# تست اتصال به میل‌سرور در Ubuntu&lt;br /&gt;
&lt;br /&gt;
&amp;gt; **این صفحه بخشی از مستندات ابزارهای خط فرمان است.** دو روش برای تست اتصال به میل‌سرور (SMTP/IMAP/POP3) در Ubuntu توضیح داده شده است:&lt;br /&gt;
&amp;gt; ۱. اسکریپت سبک **test-smtp.sh** (بدون نیاز به نصب ابزار اضافه)&lt;br /&gt;
&amp;gt; ۲. ابزار قدرتمند **swaks** (SMTP Swiss Army Knife)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## پیش‌نیازها&lt;br /&gt;
&lt;br /&gt;
- سیستم‌عامل **Ubuntu** (نسخه ۲۰.۰۴ یا جدیدتر توصیه می‌شود)&lt;br /&gt;
- دسترسی کاربر با مجوز `sudo`&lt;br /&gt;
- نام میزبان یا آدرس IP میل‌سرور مقصد&lt;br /&gt;
- باز بودن پورت‌های خروجی در فایروال سمت کلاینت (در صورت وجود)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;border-collapse:collapse; width:100%&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th style=&amp;quot;border:1px solid #999; padding:6px 10px; background:#f0f0f0&amp;quot;&amp;gt;پورت&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th style=&amp;quot;border:1px solid #999; padding:6px 10px; background:#f0f0f0&amp;quot;&amp;gt;سرویس&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th style=&amp;quot;border:1px solid #999; padding:6px 10px; background:#f0f0f0&amp;quot;&amp;gt;پروتکل&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th style=&amp;quot;border:1px solid #999; padding:6px 10px; background:#f0f0f0&amp;quot;&amp;gt;رمزنگاری&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;۲۵&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;SMTP&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;ارسال&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;بدون رمزنگاری (یا STARTTLS)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;۴۶۵&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;SMTPS&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;ارسال&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;SSL/TLS&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;۵۸۷&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;Submission&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;ارسال&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;STARTTLS&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;۱۱۰&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;POP3&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;دریافت&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;بدون رمزنگاری&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;۹۹۵&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;POP3S&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;دریافت&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;SSL/TLS&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;۱۴۳&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;IMAP&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;دریافت&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;بدون رمزنگاری&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;۹۹۳&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;IMAPS&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;دریافت&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;SSL/TLS&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## روش اول: اسکریپت test-smtp.sh&lt;br /&gt;
&lt;br /&gt;
این اسکریپت با استفاده از قابلیت `/dev/tcp` هستهٔ Bash، اتصال TCP به همهٔ پورت‌های استاندارد میل‌سرور را بررسی می‌کند. **نیاز به نصب هیچ ابزار اضافه‌ای ندارد.**&lt;br /&gt;
&lt;br /&gt;
### نصب&lt;br /&gt;
&lt;br /&gt;
فایل را با نام `test-smtp.sh` ایجاد کنید:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
nano test-smtp.sh&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
محتوای زیر را در آن قرار دهید:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
# test-smtp.sh — بررسی اتصال به پورت‌های میل‌سرور&lt;br /&gt;
# استفاده: ./test-smtp.sh [سرور] [لیست پورت‌ها]&lt;br /&gt;
&lt;br /&gt;
SERVER=&amp;quot;${1:-smtp.example.com}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# پورت‌های استاندارد میل؛ می‌توانید با آرگومان دوم لیست سفارشی بدهید&lt;br /&gt;
PORTS=&amp;quot;${2:-25 465 587 110 995 143 993}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
declare -A NAMES=(&lt;br /&gt;
  [25]=&amp;quot;SMTP&amp;quot;&lt;br /&gt;
  [465]=&amp;quot;SMTPS&amp;quot;&lt;br /&gt;
  [587]=&amp;quot;Submission&amp;quot;&lt;br /&gt;
  [110]=&amp;quot;POP3&amp;quot;&lt;br /&gt;
  [995]=&amp;quot;POP3S&amp;quot;&lt;br /&gt;
  [143]=&amp;quot;IMAP&amp;quot;&lt;br /&gt;
  [993]=&amp;quot;IMAPS&amp;quot;&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;=== Testing mail server: $SERVER ===&amp;quot;&lt;br /&gt;
echo &amp;quot;Port        Service          Status&amp;quot;&lt;br /&gt;
echo &amp;quot;-----------------------------------&amp;quot;&lt;br /&gt;
&lt;br /&gt;
for PORT in $PORTS; do&lt;br /&gt;
  if timeout 5 bash -c &amp;quot;echo &amp;gt; /dev/tcp/$SERVER/$PORT&amp;quot; 2&amp;gt;/dev/null; then&lt;br /&gt;
    STATUS=&amp;quot;OPEN&amp;quot;&lt;br /&gt;
  else&lt;br /&gt;
    STATUS=&amp;quot;CLOSED/FILTERED&amp;quot;&lt;br /&gt;
  fi&lt;br /&gt;
  printf &amp;quot;%-10s %-16s %s\n&amp;quot; &amp;quot;$PORT&amp;quot; &amp;quot;${NAMES[$PORT]:-Unknown}&amp;quot; &amp;quot;$STATUS&amp;quot;&lt;br /&gt;
done&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
فایل را اجرایی کنید:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
chmod +x test-smtp.sh&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
### نحوه استفاده&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
# تست همهٔ پورت‌های استاندارد&lt;br /&gt;
./test-smtp.sh mail.example.com&lt;br /&gt;
&lt;br /&gt;
# تست پورت‌های دلخواه (فقط SMTP)&lt;br /&gt;
./test-smtp.sh mail.example.com &amp;quot;25 465 587&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# اسکن یک بازهٔ پورت&lt;br /&gt;
./test-smtp.sh mail.example.com &amp;quot;$(seq 1 100)&amp;quot;&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
### خروجی نمونه&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
=== Testing mail server: mail.example.com ===&lt;br /&gt;
Port        Service          Status&lt;br /&gt;
-----------------------------------&lt;br /&gt;
25          SMTP             OPEN&lt;br /&gt;
465         SMTPS            OPEN&lt;br /&gt;
587         Submission       CLOSED/FILTERED&lt;br /&gt;
110         POP3             CLOSED/FILTERED&lt;br /&gt;
995         POP3S            CLOSED/FILTERED&lt;br /&gt;
143         IMAP             OPEN&lt;br /&gt;
993         IMAPS            OPEN&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
&amp;gt; **نکته:** این اسکریپت فقط اتصال TCP را بررسی می‌کند و پروتکل (مثلاً پاسخ SMTP به `EHLO`) را تست نمی‌کند. برای تست کامل پروتکل از روش دوم (swaks) استفاده کنید.&lt;br /&gt;
&lt;br /&gt;
&amp;gt; **هشدار:** در صورت بسته بودن پورت، وضعیت `CLOSED/FILTERED` نشان داده می‌شود. تفاوت بین «بسته» و «فیلترشده» با این روش قابل تشخیص نیست.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## روش دوم: ابزار swaks&lt;br /&gt;
&lt;br /&gt;
**swaks** (SMTP Swiss Army Knife) یک ابزار خط فرمان قدرتمند برای تست کامل و عیب‌یابی سرورهای SMTP است. با آن می‌توانید ایمیل تستی بفرستید، احراز هویت را بررسی کنید، TLS را تست کنید و جزئیات کامل گفتگو با سرور را ببینید.&lt;br /&gt;
&lt;br /&gt;
### نصب&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install swaks&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
بررسی نصب:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
swaks --version&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
### استفاده پایه&lt;br /&gt;
&lt;br /&gt;
ساده‌ترین شکل — ارسال یک ایمیل تستی به سرور:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
swaks --to recipient@example.com --server mail.example.com&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
&amp;gt; **نکته:** در صورت عدم تعیین فرستنده، swaks به‌صورت پیش‌فرض از کاربر جاری سیستم استفاده می‌کند. با `--from` می‌توانید آن را مشخص کنید.&lt;br /&gt;
&lt;br /&gt;
### مثال‌های پرکاربرد&lt;br /&gt;
&lt;br /&gt;
**۱. ارسال ایمیل تستی کامل با احراز هویت و TLS (پورت ۵۸۷):**&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
swaks \&lt;br /&gt;
  --from sender@example.com \&lt;br /&gt;
  --to recipient@example.com \&lt;br /&gt;
  --server mail.example.com \&lt;br /&gt;
  --port 587 \&lt;br /&gt;
  --tls \&lt;br /&gt;
  --auth LOGIN \&lt;br /&gt;
  --auth-user sender@example.com \&lt;br /&gt;
  --auth-password &#039;YourPassword&#039;&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**۲. تست فقط اتصال و گفتگوی اولیه (بدون ارسال واقعی):**&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
swaks --server mail.example.com --quit-after EHLO&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**۳. نمایش جزئیات کامل گفتگو (مفید برای عیب‌یابی):**&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
swaks --to test@example.com --server mail.example.com -v&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**۴. تست سرور بدون رمزنگاری (پورت ۲۵):**&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
swaks --to test@example.com --server mail.example.com --port 25 --protocol SMTP&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**۵. تست SSL مستقیم (پورت ۴۶۵):**&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
swaks --to test@example.com --server mail.example.com --port 465 --tls&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**۶. ارسال ایمیل با محتوای سفارشی:**&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
swaks \&lt;br /&gt;
  --to test@example.com \&lt;br /&gt;
  --server mail.example.com \&lt;br /&gt;
  --header &amp;quot;Subject: Test Mail&amp;quot; \&lt;br /&gt;
  --body &amp;quot;This is a test email sent by swaks.&amp;quot;&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
### خروجی نمونه&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
=== Trying mail.example.com:587...&lt;br /&gt;
=== Connected to mail.example.com.&lt;br /&gt;
&amp;lt;-  220 mail.example.com ESMTP Postfix&lt;br /&gt;
 -&amp;gt; EHLO localhost&lt;br /&gt;
&amp;lt;-  250-mail.example.com&lt;br /&gt;
&amp;lt;-  250-PIPELINING&lt;br /&gt;
&amp;lt;-  250-SIZE 10240000&lt;br /&gt;
&amp;lt;-  250-STARTTLS&lt;br /&gt;
&amp;lt;-  250-AUTH PLAIN LOGIN&lt;br /&gt;
&amp;lt;-  250-ENHANCEDSTATUSCODES&lt;br /&gt;
&amp;lt;-  250 8BITMIME&lt;br /&gt;
 -&amp;gt; STARTTLS&lt;br /&gt;
&amp;lt;-  220 2.0.0 Ready to start TLS&lt;br /&gt;
...&lt;br /&gt;
 -&amp;gt; QUIT&lt;br /&gt;
&amp;lt;-  221 2.0.0 Bye&lt;br /&gt;
=== Connection closed with remote host.&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
&amp;gt; **نکته:** کدهای پاسخ SMTP را بشناسید: `250` یعنی موفق، `550` یعنی گیرنده رد شد، `535` یعنی احراز هویت ناموفق، `554` یعنی تراکنش رد شد.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## مقایسه دو روش&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;border-collapse:collapse; width:100%&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th style=&amp;quot;border:1px solid #999; padding:6px 10px; background:#f0f0f0&amp;quot;&amp;gt;ویژگی&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th style=&amp;quot;border:1px solid #999; padding:6px 10px; background:#f0f0f0&amp;quot;&amp;gt;test-smtp.sh&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th style=&amp;quot;border:1px solid #999; padding:6px 10px; background:#f0f0f0&amp;quot;&amp;gt;swaks&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;نیاز به نصب&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;خیر&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;بله (&amp;lt;code&amp;gt;apt install swaks&amp;lt;/code&amp;gt;)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;تست اتصال TCP به چند پورت&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;بله&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;فقط یک پورت در هر بار&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;تست کامل پروتکل SMTP&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;خیر&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;بله&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;ارسال ایمیل واقعی&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;خیر&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;بله&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;تست احراز هویت (AUTH)&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;خیر&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;بله&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;تست TLS/STARTTLS&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;خیر&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;بله&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;خروجی جزئیات گفتگو&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;خیر&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;بله (&amp;lt;code&amp;gt;-v&amp;lt;/code&amp;gt;)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;مناسب برای&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;بررسی سریع باز بودن پورت‌ها&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;عیب‌یابی کامل و تست ارسال&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
**پیشنهاد:** برای بررسی سریع باز بودن همهٔ پورت‌ها از `test-smtp.sh` و برای عیب‌یابی عمیق و تست ارسال واقعی از `swaks` استفاده کنید.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## عیب‌یابی&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;border-collapse:collapse; width:100%&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th style=&amp;quot;border:1px solid #999; padding:6px 10px; background:#f0f0f0&amp;quot;&amp;gt;مشکل&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th style=&amp;quot;border:1px solid #999; padding:6px 10px; background:#f0f0f0&amp;quot;&amp;gt;راه‌حل&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;همهٔ پورت‌ها CLOSED هستند&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;فایروال سمت سرور (مثلاً &amp;lt;code&amp;gt;ufw&amp;lt;/code&amp;gt;) یا ISP را بررسی کنید: &amp;lt;code&amp;gt;sudo ufw status&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;نام سرور resolve نمی‌شود&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;تست DNS: &amp;lt;code&amp;gt;dig mail.example.com&amp;lt;/code&amp;gt; یا &amp;lt;code&amp;gt;nslookup mail.example.com&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;خطای احراز هویت (۵۳۵)&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;نام کاربری/رمز عبور را بررسی کنید؛ در Gmail باید از App Password استفاده کنید&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;خطای TLS&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;مطمئن شوید پورت درست است؛ پورت ۴۶۵ برای SSL مستقیم و ۵۸۷ برای STARTTLS است&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;پاسخ &amp;lt;code&amp;gt;550&amp;lt;/code&amp;gt; هنگام ارسال&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;گیرنده یا دامنهٔ فرستنده تأیید نشده؛ SPF/DKIM سرور را بررسی کنید&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;&amp;lt;code&amp;gt;Connection timed out&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #999; padding:6px 10px&amp;quot;&amp;gt;فایروال کلاینت یا سرور؛ دسترسی به پورت خروجی را تست کنید&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## منابع&lt;br /&gt;
&lt;br /&gt;
- مستندات رسمی swaks: https://github.com/jetmore/swaks&lt;br /&gt;
- راهنمای Ubuntu برای نصب پکیج‌ها: https://help.ubuntu.com/community/AptGet/Howto&lt;br /&gt;
- صفحهٔ SMTP در ویکی‌پدیا: https://en.wikipedia.org/wiki/SMTP&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Mail_Server_Test_ubuntu&amp;diff=189</id>
		<title>Mail Server Test ubuntu</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Mail_Server_Test_ubuntu&amp;diff=189"/>
		<updated>2026-08-16T11:40:49Z</updated>

		<summary type="html">&lt;p&gt;Karavi: Created page with &amp;quot;# تست اتصال به میل‌سرور در Ubuntu  &amp;gt; **این صفحه بخشی از مستندات ابزارهای خط فرمان است.** دو روش برای تست اتصال به میل‌سرور (SMTP/IMAP/POP3) در Ubuntu توضیح داده شده است: &amp;gt; ۱. اسکریپت سبک **test-smtp.sh** (بدون نیاز به نصب ابزار اضافه) &amp;gt; ۲. ابزار قدرتمند **swaks** (SMTP Swiss Army Knife)  ---  ## فهرست مطالب  - [...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;# تست اتصال به میل‌سرور در Ubuntu&lt;br /&gt;
&lt;br /&gt;
&amp;gt; **این صفحه بخشی از مستندات ابزارهای خط فرمان است.** دو روش برای تست اتصال به میل‌سرور (SMTP/IMAP/POP3) در Ubuntu توضیح داده شده است:&lt;br /&gt;
&amp;gt; ۱. اسکریپت سبک **test-smtp.sh** (بدون نیاز به نصب ابزار اضافه)&lt;br /&gt;
&amp;gt; ۲. ابزار قدرتمند **swaks** (SMTP Swiss Army Knife)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## فهرست مطالب&lt;br /&gt;
&lt;br /&gt;
- [پیش‌نیازها](#پیش‌نیازها)&lt;br /&gt;
- [روش اول: اسکریپت test-smtp.sh](#روش-اول-اسکریپت-test-smtpsh)&lt;br /&gt;
  - [نصب](#نصب)&lt;br /&gt;
  - [نحوه استفاده](#نحوه-استفاده)&lt;br /&gt;
  - [خروجی نمونه](#خروجی-نمونه)&lt;br /&gt;
- [روش دوم: ابزار swaks](#روش-دوم-ابزار-swaks)&lt;br /&gt;
  - [نصب](#نصب-1)&lt;br /&gt;
  - [استفاده پایه](#استفاده-پایه)&lt;br /&gt;
  - [مثال‌های پرکاربرد](#مثالهای-پرکاربرد)&lt;br /&gt;
- [مقایسه دو روش](#مقایسه-دو-روش)&lt;br /&gt;
- [عیب‌یابی](#عیبیابی)&lt;br /&gt;
- [منابع](#منابع)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## پیش‌نیازها&lt;br /&gt;
&lt;br /&gt;
- سیستم‌عامل **Ubuntu** (نسخه ۲۰.۰۴ یا جدیدتر توصیه می‌شود)&lt;br /&gt;
- دسترسی کاربر با مجوز `sudo`&lt;br /&gt;
- نام میزبان یا آدرس IP میل‌سرور مقصد&lt;br /&gt;
- باز بودن پورت‌های خروجی در فایروال سمت کلاینت (در صورت وجود)&lt;br /&gt;
&lt;br /&gt;
| پورت | سرویس | پروتکل | رمزنگاری |&lt;br /&gt;
|------|-------|--------|----------|&lt;br /&gt;
| ۲۵ | SMTP | ارسال | بدون رمزنگاری (یا STARTTLS) |&lt;br /&gt;
| ۴۶۵ | SMTPS | ارسال | SSL/TLS |&lt;br /&gt;
| ۵۸۷ | Submission | ارسال | STARTTLS |&lt;br /&gt;
| ۱۱۰ | POP3 | دریافت | بدون رمزنگاری |&lt;br /&gt;
| ۹۹۵ | POP3S | دریافت | SSL/TLS |&lt;br /&gt;
| ۱۴۳ | IMAP | دریافت | بدون رمزنگاری |&lt;br /&gt;
| ۹۹۳ | IMAPS | دریافت | SSL/TLS |&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## روش اول: اسکریپت test-smtp.sh&lt;br /&gt;
&lt;br /&gt;
این اسکریپت با استفاده از قابلیت `/dev/tcp` هستهٔ Bash، اتصال TCP به همهٔ پورت‌های استاندارد میل‌سرور را بررسی می‌کند. **نیاز به نصب هیچ ابزار اضافه‌ای ندارد.**&lt;br /&gt;
&lt;br /&gt;
### نصب&lt;br /&gt;
&lt;br /&gt;
فایل را با نام `test-smtp.sh` ایجاد کنید:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
nano test-smtp.sh&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
محتوای زیر را در آن قرار دهید:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
# test-smtp.sh — بررسی اتصال به پورت‌های میل‌سرور&lt;br /&gt;
# استفاده: ./test-smtp.sh [سرور] [لیست پورت‌ها]&lt;br /&gt;
&lt;br /&gt;
SERVER=&amp;quot;${1:-smtp.example.com}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# پورت‌های استاندارد میل؛ می‌توانید با آرگومان دوم لیست سفارشی بدهید&lt;br /&gt;
PORTS=&amp;quot;${2:-25 465 587 110 995 143 993}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
declare -A NAMES=(&lt;br /&gt;
  [25]=&amp;quot;SMTP&amp;quot;&lt;br /&gt;
  [465]=&amp;quot;SMTPS&amp;quot;&lt;br /&gt;
  [587]=&amp;quot;Submission&amp;quot;&lt;br /&gt;
  [110]=&amp;quot;POP3&amp;quot;&lt;br /&gt;
  [995]=&amp;quot;POP3S&amp;quot;&lt;br /&gt;
  [143]=&amp;quot;IMAP&amp;quot;&lt;br /&gt;
  [993]=&amp;quot;IMAPS&amp;quot;&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;=== Testing mail server: $SERVER ===&amp;quot;&lt;br /&gt;
echo &amp;quot;Port        Service          Status&amp;quot;&lt;br /&gt;
echo &amp;quot;-----------------------------------&amp;quot;&lt;br /&gt;
&lt;br /&gt;
for PORT in $PORTS; do&lt;br /&gt;
  if timeout 5 bash -c &amp;quot;echo &amp;gt; /dev/tcp/$SERVER/$PORT&amp;quot; 2&amp;gt;/dev/null; then&lt;br /&gt;
    STATUS=&amp;quot;OPEN&amp;quot;&lt;br /&gt;
  else&lt;br /&gt;
    STATUS=&amp;quot;CLOSED/FILTERED&amp;quot;&lt;br /&gt;
  fi&lt;br /&gt;
  printf &amp;quot;%-10s %-16s %s\n&amp;quot; &amp;quot;$PORT&amp;quot; &amp;quot;${NAMES[$PORT]:-Unknown}&amp;quot; &amp;quot;$STATUS&amp;quot;&lt;br /&gt;
done&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
فایل را اجرایی کنید:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
chmod +x test-smtp.sh&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
### نحوه استفاده&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
# تست همهٔ پورت‌های استاندارد&lt;br /&gt;
./test-smtp.sh mail.example.com&lt;br /&gt;
&lt;br /&gt;
# تست پورت‌های دلخواه (فقط SMTP)&lt;br /&gt;
./test-smtp.sh mail.example.com &amp;quot;25 465 587&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# اسکن یک بازهٔ پورت&lt;br /&gt;
./test-smtp.sh mail.example.com &amp;quot;$(seq 1 100)&amp;quot;&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
### خروجی نمونه&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
=== Testing mail server: mail.example.com ===&lt;br /&gt;
Port        Service          Status&lt;br /&gt;
-----------------------------------&lt;br /&gt;
25          SMTP             OPEN&lt;br /&gt;
465         SMTPS            OPEN&lt;br /&gt;
587         Submission       CLOSED/FILTERED&lt;br /&gt;
110         POP3             CLOSED/FILTERED&lt;br /&gt;
995         POP3S            CLOSED/FILTERED&lt;br /&gt;
143         IMAP             OPEN&lt;br /&gt;
993         IMAPS            OPEN&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
&amp;gt; **نکته:** این اسکریپت فقط اتصال TCP را بررسی می‌کند و پروتکل (مثلاً پاسخ SMTP به `EHLO`) را تست نمی‌کند. برای تست کامل پروتکل از روش دوم (swaks) استفاده کنید.&lt;br /&gt;
&lt;br /&gt;
&amp;gt; **هشدار:** در صورت بسته بودن پورت، وضعیت `CLOSED/FILTERED` نشان داده می‌شود. تفاوت بین «بسته» و «فیلترشده» با این روش قابل تشخیص نیست.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## روش دوم: ابزار swaks&lt;br /&gt;
&lt;br /&gt;
**swaks** (SMTP Swiss Army Knife) یک ابزار خط فرمان قدرتمند برای تست کامل و عیب‌یابی سرورهای SMTP است. با آن می‌توانید ایمیل تستی بفرستید، احراز هویت را بررسی کنید، TLS را تست کنید و جزئیات کامل گفتگو با سرور را ببینید.&lt;br /&gt;
&lt;br /&gt;
### نصب&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install swaks&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
بررسی نصب:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
swaks --version&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
### استفاده پایه&lt;br /&gt;
&lt;br /&gt;
ساده‌ترین شکل — ارسال یک ایمیل تستی به سرور:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
swaks --to recipient@example.com --server mail.example.com&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
&amp;gt; **نکته:** در صورت عدم تعیین فرستنده، swaks به‌صورت پیش‌فرض از کاربر جاری سیستم استفاده می‌کند. با `--from` می‌توانید آن را مشخص کنید.&lt;br /&gt;
&lt;br /&gt;
### مثال‌های پرکاربرد&lt;br /&gt;
&lt;br /&gt;
**۱. ارسال ایمیل تستی کامل با احراز هویت و TLS (پورت ۵۸۷):**&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
swaks \&lt;br /&gt;
  --from sender@example.com \&lt;br /&gt;
  --to recipient@example.com \&lt;br /&gt;
  --server mail.example.com \&lt;br /&gt;
  --port 587 \&lt;br /&gt;
  --tls \&lt;br /&gt;
  --auth LOGIN \&lt;br /&gt;
  --auth-user sender@example.com \&lt;br /&gt;
  --auth-password &#039;YourPassword&#039;&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**۲. تست فقط اتصال و گفتگوی اولیه (بدون ارسال واقعی):**&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
swaks --server mail.example.com --quit-after EHLO&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**۳. نمایش جزئیات کامل گفتگو (مفید برای عیب‌یابی):**&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
swaks --to test@example.com --server mail.example.com -v&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**۴. تست سرور بدون رمزنگاری (پورت ۲۵):**&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
swaks --to test@example.com --server mail.example.com --port 25 --protocol SMTP&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**۵. تست SSL مستقیم (پورت ۴۶۵):**&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
swaks --to test@example.com --server mail.example.com --port 465 --tls&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**۶. ارسال ایمیل با محتوای سفارشی:**&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
swaks \&lt;br /&gt;
  --to test@example.com \&lt;br /&gt;
  --server mail.example.com \&lt;br /&gt;
  --header &amp;quot;Subject: Test Mail&amp;quot; \&lt;br /&gt;
  --body &amp;quot;This is a test email sent by swaks.&amp;quot;&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
### خروجی نمونه&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
=== Trying mail.example.com:587...&lt;br /&gt;
=== Connected to mail.example.com.&lt;br /&gt;
&amp;lt;-  220 mail.example.com ESMTP Postfix&lt;br /&gt;
 -&amp;gt; EHLO localhost&lt;br /&gt;
&amp;lt;-  250-mail.example.com&lt;br /&gt;
&amp;lt;-  250-PIPELINING&lt;br /&gt;
&amp;lt;-  250-SIZE 10240000&lt;br /&gt;
&amp;lt;-  250-STARTTLS&lt;br /&gt;
&amp;lt;-  250-AUTH PLAIN LOGIN&lt;br /&gt;
&amp;lt;-  250-ENHANCEDSTATUSCODES&lt;br /&gt;
&amp;lt;-  250 8BITMIME&lt;br /&gt;
 -&amp;gt; STARTTLS&lt;br /&gt;
&amp;lt;-  220 2.0.0 Ready to start TLS&lt;br /&gt;
...&lt;br /&gt;
 -&amp;gt; QUIT&lt;br /&gt;
&amp;lt;-  221 2.0.0 Bye&lt;br /&gt;
=== Connection closed with remote host.&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
&amp;gt; **نکته:** کدهای پاسخ SMTP را بشناسید: `250` یعنی موفق، `550` یعنی گیرنده رد شد، `535` یعنی احراز هویت ناموفق، `554` یعنی تراکنش رد شد.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## مقایسه دو روش&lt;br /&gt;
&lt;br /&gt;
| ویژگی | test-smtp.sh | swaks |&lt;br /&gt;
|-------|--------------|-------|&lt;br /&gt;
| نیاز به نصب | ❌ خیر | ✅ بله (`apt install swaks`) |&lt;br /&gt;
| تست اتصال TCP به چند پورت | ✅ بله | ⚠️ فقط یک پورت در هر بار |&lt;br /&gt;
| تست کامل پروتکل SMTP | ❌ خیر | ✅ بله |&lt;br /&gt;
| ارسال ایمیل واقعی | ❌ خیر | ✅ بله |&lt;br /&gt;
| تست احراز هویت (AUTH) | ❌ خیر | ✅ بله |&lt;br /&gt;
| تست TLS/STARTTLS | ❌ خیر | ✅ بله |&lt;br /&gt;
| خروجی جزئیات گفتگو | ❌ خیر | ✅ بله (`-v`) |&lt;br /&gt;
| مناسب برای | بررسی سریع باز بودن پورت‌ها | عیب‌یابی کامل و تست ارسال |&lt;br /&gt;
&lt;br /&gt;
**پیشنهاد:** برای بررسی سریع باز بودن همهٔ پورت‌ها از `test-smtp.sh` و برای عیب‌یابی عمیق و تست ارسال واقعی از `swaks` استفاده کنید.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## عیب‌یابی&lt;br /&gt;
&lt;br /&gt;
| مشکل | راه‌حل |&lt;br /&gt;
|------|--------|&lt;br /&gt;
| همهٔ پورت‌ها CLOSED هستند | فایروال سمت سرور (مثلاً `ufw`) یا ISP را بررسی کنید: `sudo ufw status` |&lt;br /&gt;
| نام سرور resolve نمی‌شود | تست DNS: `dig mail.example.com` یا `nslookup mail.example.com` |&lt;br /&gt;
| خطای احراز هویت (۵۳۵) | نام کاربری/رمز عبور را بررسی کنید؛ در Gmail باید از App Password استفاده کنید |&lt;br /&gt;
| خطای TLS | مطمئن شوید پورت درست است؛ پورت ۴۶۵ برای SSL مستقیم و ۵۸۷ برای STARTTLS است |&lt;br /&gt;
| پاسخ `550` هنگام ارسال | گیرنده یا دامنهٔ فرستنده تأیید نشده؛ SPF/DKIM سرور را بررسی کنید |&lt;br /&gt;
| `Connection timed out` | فایروال کلاینت یا سرور؛ دسترسی به پورت خروجی را تست کنید |&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## منابع&lt;br /&gt;
&lt;br /&gt;
- مستندات رسمی swaks: https://github.com/jetmore/swaks&lt;br /&gt;
- راهنمای Ubuntu برای نصب پکیج‌ها: https://help.ubuntu.com/community/AptGet/Howto&lt;br /&gt;
- صفحهٔ SMTP در ویکی‌پدیا: https://en.wikipedia.org/wiki/SMTP&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Ai_Install_Extension&amp;diff=188</id>
		<title>Ai Install Extension</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Ai_Install_Extension&amp;diff=188"/>
		<updated>2026-08-09T07:57:26Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Installed IDE Extensions =&lt;br /&gt;
&lt;br /&gt;
این صفحه لیست تمام افزونه‌های نصب‌شده در سه IDE (VS Code، Cursor، Antigravity) را نشان می‌دهد.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;راهنما:&#039;&#039;&#039; ✅ = نصب‌شده | — = نصب‌نشده&lt;br /&gt;
&lt;br /&gt;
هر سه IDE مبتنی بر VS Code هستند و از همان Marketplace استفاده می‌کنند.&lt;br /&gt;
&lt;br /&gt;
== Summary Table ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! #&lt;br /&gt;
! Extension ID&lt;br /&gt;
! Name&lt;br /&gt;
! VS Code&lt;br /&gt;
! Cursor&lt;br /&gt;
! Antigravity&lt;br /&gt;
|-&lt;br /&gt;
| 1 || &amp;lt;code&amp;gt;anthropic.claude-code&amp;lt;/code&amp;gt; || Claude Code (Anthropic) || ✅ || ✅ || ✅&lt;br /&gt;
|-&lt;br /&gt;
| 2 || &amp;lt;code&amp;gt;anysphere.remote-ssh&amp;lt;/code&amp;gt; || Remote SSH (Anysphere) || — || ✅ || —&lt;br /&gt;
|-&lt;br /&gt;
| 3 || &amp;lt;code&amp;gt;anysphere.remote-wsl&amp;lt;/code&amp;gt; || Remote WSL (Anysphere) || — || ✅ || —&lt;br /&gt;
|-&lt;br /&gt;
| 4 || &amp;lt;code&amp;gt;bivipi.ag-manager&amp;lt;/code&amp;gt; || AG Manager (BiViPi) || — || ✅ || ✅&lt;br /&gt;
|-&lt;br /&gt;
| 5 || &amp;lt;code&amp;gt;blackboxapp.blackbox&amp;lt;/code&amp;gt; || Blackbox AI || ✅ || — || —&lt;br /&gt;
|-&lt;br /&gt;
| 6 || &amp;lt;code&amp;gt;blackboxapp.blackboxagent&amp;lt;/code&amp;gt; || Blackbox Agent || ✅ || — || —&lt;br /&gt;
|-&lt;br /&gt;
| 7 || &amp;lt;code&amp;gt;continue.continue&amp;lt;/code&amp;gt; || Continue || ✅ || — || —&lt;br /&gt;
|-&lt;br /&gt;
| 8 || &amp;lt;code&amp;gt;erennyuksell.ag-multi-account-switchboard&amp;lt;/code&amp;gt; || AG Multi Account Switchboard || — || — || ✅&lt;br /&gt;
|-&lt;br /&gt;
| 9 || &amp;lt;code&amp;gt;golang.go&amp;lt;/code&amp;gt; || Go (golang) || — || — || ✅&lt;br /&gt;
|-&lt;br /&gt;
| 10 || &amp;lt;code&amp;gt;leandrosilvaferreira.claude-agents-monitor&amp;lt;/code&amp;gt; || Claude Agents Monitor || — || — || ✅&lt;br /&gt;
|-&lt;br /&gt;
| 11 || &amp;lt;code&amp;gt;llvm-vs-code-extensions.vscode-clangd&amp;lt;/code&amp;gt; || clangd (LLVM) || — || — || ✅&lt;br /&gt;
|-&lt;br /&gt;
| 12 || &amp;lt;code&amp;gt;lucasdonordeste.claude-control&amp;lt;/code&amp;gt; || Claude Control || — || ✅ || ✅&lt;br /&gt;
|-&lt;br /&gt;
| 13 || &amp;lt;code&amp;gt;lucasdonordeste.claude-control-panel&amp;lt;/code&amp;gt; || Claude Control Panel || ✅ || — || —&lt;br /&gt;
|-&lt;br /&gt;
| 14 || &amp;lt;code&amp;gt;meta.pyrefly&amp;lt;/code&amp;gt; || Pyrefly (Meta) || — || — || ✅&lt;br /&gt;
|-&lt;br /&gt;
| 15 || &amp;lt;code&amp;gt;ms-azuretools.vscode-containers&amp;lt;/code&amp;gt; || Dev Containers || ✅ || — || —&lt;br /&gt;
|-&lt;br /&gt;
| 16 || &amp;lt;code&amp;gt;ms-dotnettools.csdevkit&amp;lt;/code&amp;gt; || C# Dev Kit || ✅ || — || —&lt;br /&gt;
|-&lt;br /&gt;
| 17 || &amp;lt;code&amp;gt;ms-dotnettools.csharp&amp;lt;/code&amp;gt; || C# (Microsoft) || ✅ || — || —&lt;br /&gt;
|-&lt;br /&gt;
| 18 || &amp;lt;code&amp;gt;ms-dotnettools.vscode-dotnet-runtime&amp;lt;/code&amp;gt; || .NET Runtime || ✅ || — || —&lt;br /&gt;
|-&lt;br /&gt;
| 19 || &amp;lt;code&amp;gt;ms-python.debugpy&amp;lt;/code&amp;gt; || Python Debugger (debugpy) || — || — || ✅&lt;br /&gt;
|-&lt;br /&gt;
| 20 || &amp;lt;code&amp;gt;ms-python.python&amp;lt;/code&amp;gt; || Python (Microsoft) || — || — || ✅&lt;br /&gt;
|-&lt;br /&gt;
| 21 || &amp;lt;code&amp;gt;ms-python.vscode-python-envs&amp;lt;/code&amp;gt; || Python Environment Manager || — || — || ✅&lt;br /&gt;
|-&lt;br /&gt;
| 22 || &amp;lt;code&amp;gt;ms-vscode.powershell&amp;lt;/code&amp;gt; || PowerShell (Microsoft) || — || — || ✅&lt;br /&gt;
|-&lt;br /&gt;
| 23 || &amp;lt;code&amp;gt;nrigalle.claude-trace&amp;lt;/code&amp;gt; || Claude Trace || ✅ || ✅ || ✅&lt;br /&gt;
|-&lt;br /&gt;
| 24 || &amp;lt;code&amp;gt;openai.chatgpt&amp;lt;/code&amp;gt; || ChatGPT (OpenAI) || ✅ || ✅ || ✅&lt;br /&gt;
|-&lt;br /&gt;
| 25 || &amp;lt;code&amp;gt;saoudrizwan.claude-dev&amp;lt;/code&amp;gt; || Claude Dev || ✅ || ✅ || ✅&lt;br /&gt;
|-&lt;br /&gt;
| 26 || &amp;lt;code&amp;gt;shopify.ruby-lsp&amp;lt;/code&amp;gt; || Ruby LSP (Shopify) || — || — || ✅&lt;br /&gt;
|-&lt;br /&gt;
| 27 || &amp;lt;code&amp;gt;wannanbigpig.codex-accounts-manager&amp;lt;/code&amp;gt; || Codex Accounts Manager || ✅ || — || —&lt;br /&gt;
|-&lt;br /&gt;
| 28 || &amp;lt;code&amp;gt;yossisa.cursor-usage&amp;lt;/code&amp;gt; || Cursor Usage || — || ✅ || —&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== جزئیات افزونه‌ها ==&lt;br /&gt;
&lt;br /&gt;
=== 1. anthropic.claude-code ===&lt;br /&gt;
* &#039;&#039;&#039;نام:&#039;&#039;&#039; Claude Code (Anthropic)&lt;br /&gt;
* &#039;&#039;&#039;نصب‌شده در:&#039;&#039;&#039; VS Code ✅ | Cursor ✅ | Antigravity ✅&lt;br /&gt;
* &#039;&#039;&#039;Marketplace:&#039;&#039;&#039; [https://marketplace.visualstudio.com/items?itemName=anthropic.claude-code VS Code] · [https://marketplace.visualstudio.com/items?itemName=anthropic.claude-code Cursor] · [https://marketplace.visualstudio.com/items?itemName=anthropic.claude-code Antigravity]&lt;br /&gt;
* &#039;&#039;&#039;دستور نصب:&#039;&#039;&#039; &amp;lt;code&amp;gt;code --install-extension anthropic.claude-code&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;توضیح:&#039;&#039;&#039; Official Anthropic Claude Code extension for AI-assisted coding.&lt;br /&gt;
&lt;br /&gt;
=== 2. anysphere.remote-ssh ===&lt;br /&gt;
* &#039;&#039;&#039;نام:&#039;&#039;&#039; Remote SSH (Anysphere) — v1.1.14&lt;br /&gt;
* &#039;&#039;&#039;نصب‌شده در:&#039;&#039;&#039; VS Code — | Cursor ✅ | Antigravity —&lt;br /&gt;
* &#039;&#039;&#039;Marketplace:&#039;&#039;&#039; [https://marketplace.visualstudio.com/items?itemName=anysphere.remote-ssh Cursor]&lt;br /&gt;
* &#039;&#039;&#039;دستور نصب:&#039;&#039;&#039; &amp;lt;code&amp;gt;code --install-extension anysphere.remote-ssh&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;توضیح:&#039;&#039;&#039; Connect to remote servers via Secure Shell (SSH).&lt;br /&gt;
&lt;br /&gt;
=== 3. anysphere.remote-wsl ===&lt;br /&gt;
* &#039;&#039;&#039;نام:&#039;&#039;&#039; Remote WSL (Anysphere) — v1.0.13&lt;br /&gt;
* &#039;&#039;&#039;نصب‌شده در:&#039;&#039;&#039; VS Code — | Cursor ✅ | Antigravity —&lt;br /&gt;
* &#039;&#039;&#039;Marketplace:&#039;&#039;&#039; [https://marketplace.visualstudio.com/items?itemName=anysphere.remote-wsl Cursor]&lt;br /&gt;
* &#039;&#039;&#039;دستور نصب:&#039;&#039;&#039; &amp;lt;code&amp;gt;code --install-extension anysphere.remote-wsl&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;توضیح:&#039;&#039;&#039; Connect to Windows Subsystem for Linux (WSL) environments.&lt;br /&gt;
&lt;br /&gt;
=== 4. bivipi.ag-manager ===&lt;br /&gt;
* &#039;&#039;&#039;نام:&#039;&#039;&#039; AG Manager (BiViPi) — v1.4.0&lt;br /&gt;
* &#039;&#039;&#039;نصب‌شده در:&#039;&#039;&#039; VS Code — | Cursor ✅ | Antigravity ✅&lt;br /&gt;
* &#039;&#039;&#039;Marketplace:&#039;&#039;&#039; [https://marketplace.visualstudio.com/items?itemName=bivipi.ag-manager Cursor] · [https://marketplace.visualstudio.com/items?itemName=bivipi.ag-manager Antigravity]&lt;br /&gt;
* &#039;&#039;&#039;دستور نصب:&#039;&#039;&#039; &amp;lt;code&amp;gt;code --install-extension bivipi.ag-manager&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;توضیح:&#039;&#039;&#039; Manage coding agents (AG) from within the editor.&lt;br /&gt;
&lt;br /&gt;
=== 5. blackboxapp.blackbox ===&lt;br /&gt;
* &#039;&#039;&#039;نام:&#039;&#039;&#039; Blackbox AI&lt;br /&gt;
* &#039;&#039;&#039;نصب‌شده در:&#039;&#039;&#039; VS Code ✅ | Cursor — | Antigravity —&lt;br /&gt;
* &#039;&#039;&#039;Marketplace:&#039;&#039;&#039; [https://marketplace.visualstudio.com/items?itemName=blackboxapp.blackbox VS Code]&lt;br /&gt;
* &#039;&#039;&#039;دستور نصب:&#039;&#039;&#039; &amp;lt;code&amp;gt;code --install-extension blackboxapp.blackbox&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;توضیح:&#039;&#039;&#039; AI coding assistant with code completion and chat.&lt;br /&gt;
&lt;br /&gt;
=== 6. blackboxapp.blackboxagent ===&lt;br /&gt;
* &#039;&#039;&#039;نام:&#039;&#039;&#039; Blackbox Agent&lt;br /&gt;
* &#039;&#039;&#039;نصب‌شده در:&#039;&#039;&#039; VS Code ✅ | Cursor — | Antigravity —&lt;br /&gt;
* &#039;&#039;&#039;Marketplace:&#039;&#039;&#039; [https://marketplace.visualstudio.com/items?itemName=blackboxapp.blackboxagent VS Code]&lt;br /&gt;
* &#039;&#039;&#039;دستور نصب:&#039;&#039;&#039; &amp;lt;code&amp;gt;code --install-extension blackboxapp.blackboxagent&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;توضیح:&#039;&#039;&#039; Autonomous AI agent for coding tasks and automation in Blackbox.&lt;br /&gt;
&lt;br /&gt;
=== 7. continue.continue ===&lt;br /&gt;
* &#039;&#039;&#039;نام:&#039;&#039;&#039; Continue&lt;br /&gt;
* &#039;&#039;&#039;نصب‌شده در:&#039;&#039;&#039; VS Code ✅ | Cursor — | Antigravity —&lt;br /&gt;
* &#039;&#039;&#039;Marketplace:&#039;&#039;&#039; [https://marketplace.visualstudio.com/items?itemName=continue.continue VS Code]&lt;br /&gt;
* &#039;&#039;&#039;دستور نصب:&#039;&#039;&#039; &amp;lt;code&amp;gt;code --install-extension continue.continue&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;توضیح:&#039;&#039;&#039; Open-source AI coding assistant for automated development.&lt;br /&gt;
&lt;br /&gt;
=== 8. erennyuksell.ag-multi-account-switchboard ===&lt;br /&gt;
* &#039;&#039;&#039;نام:&#039;&#039;&#039; AG Multi Account Switchboard — v3.2.1&lt;br /&gt;
* &#039;&#039;&#039;نصب‌شده در:&#039;&#039;&#039; VS Code — | Cursor — | Antigravity ✅&lt;br /&gt;
* &#039;&#039;&#039;Marketplace:&#039;&#039;&#039; [https://marketplace.visualstudio.com/items?itemName=erennyuksell.ag-multi-account-switchboard Antigravity]&lt;br /&gt;
* &#039;&#039;&#039;دستور نصب:&#039;&#039;&#039; &amp;lt;code&amp;gt;code --install-extension erennyuksell.ag-multi-account-switchboard&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;توضیح:&#039;&#039;&#039; Switch between multiple agent accounts quickly and easily.&lt;br /&gt;
&lt;br /&gt;
=== 9. golang.go ===&lt;br /&gt;
* &#039;&#039;&#039;نام:&#039;&#039;&#039; Go (golang) — v0.56.0&lt;br /&gt;
* &#039;&#039;&#039;نصب‌شده در:&#039;&#039;&#039; VS Code — | Cursor — | Antigravity ✅&lt;br /&gt;
* &#039;&#039;&#039;Marketplace:&#039;&#039;&#039; [https://marketplace.visualstudio.com/items?itemName=golang.go Antigravity]&lt;br /&gt;
* &#039;&#039;&#039;دستور نصب:&#039;&#039;&#039; &amp;lt;code&amp;gt;code --install-extension golang.go&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;توضیح:&#039;&#039;&#039; Rich language support for the Go programming language.&lt;br /&gt;
&lt;br /&gt;
=== 10. leandrosilvaferreira.claude-agents-monitor ===&lt;br /&gt;
* &#039;&#039;&#039;نام:&#039;&#039;&#039; Claude Agents Monitor — v0.4.7&lt;br /&gt;
* &#039;&#039;&#039;نصب‌شده در:&#039;&#039;&#039; VS Code — | Cursor — | Antigravity ✅&lt;br /&gt;
* &#039;&#039;&#039;Marketplace:&#039;&#039;&#039; [https://marketplace.visualstudio.com/items?itemName=leandrosilvaferreira.claude-agents-monitor Antigravity]&lt;br /&gt;
* &#039;&#039;&#039;دستور نصب:&#039;&#039;&#039; &amp;lt;code&amp;gt;code --install-extension leandrosilvaferreira.claude-agents-monitor&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;توضیح:&#039;&#039;&#039; Monitor your Claude agents&#039; activity and status.&lt;br /&gt;
&lt;br /&gt;
=== 11. llvm-vs-code-extensions.vscode-clangd ===&lt;br /&gt;
* &#039;&#039;&#039;نام:&#039;&#039;&#039; clangd (LLVM) — v0.6.0&lt;br /&gt;
* &#039;&#039;&#039;نصب‌شده در:&#039;&#039;&#039; VS Code — | Cursor — | Antigravity ✅&lt;br /&gt;
* &#039;&#039;&#039;Marketplace:&#039;&#039;&#039; [https://marketplace.visualstudio.com/items?itemName=llvm-vs-code-extensions.vscode-clangd Antigravity]&lt;br /&gt;
* &#039;&#039;&#039;دستور نصب:&#039;&#039;&#039; &amp;lt;code&amp;gt;code --install-extension llvm-vs-code-extensions.vscode-clangd&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;توضیح:&#039;&#039;&#039; C/C++ language server (clangd) with code intelligence.&lt;br /&gt;
&lt;br /&gt;
=== 12. lucasdonordeste.claude-control ===&lt;br /&gt;
* &#039;&#039;&#039;نام:&#039;&#039;&#039; Claude Control — v1.9.3&lt;br /&gt;
* &#039;&#039;&#039;نصب‌شده در:&#039;&#039;&#039; VS Code — | Cursor ✅ | Antigravity ✅&lt;br /&gt;
* &#039;&#039;&#039;Marketplace:&#039;&#039;&#039; [https://marketplace.visualstudio.com/items?itemName=lucasdonordeste.claude-control Cursor] · [https://marketplace.visualstudio.com/items?itemName=lucasdonordeste.claude-control Antigravity]&lt;br /&gt;
* &#039;&#039;&#039;دستور نصب:&#039;&#039;&#039; &amp;lt;code&amp;gt;code --install-extension lucasdonordeste.claude-control&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;توضیح:&#039;&#039;&#039; Control and manage Claude sessions from the editor.&lt;br /&gt;
&lt;br /&gt;
=== 13. lucasdonordeste.claude-control-panel ===&lt;br /&gt;
* &#039;&#039;&#039;نام:&#039;&#039;&#039; Claude Control Panel&lt;br /&gt;
* &#039;&#039;&#039;نصب‌شده در:&#039;&#039;&#039; VS Code ✅ | Cursor — | Antigravity —&lt;br /&gt;
* &#039;&#039;&#039;Marketplace:&#039;&#039;&#039; [https://marketplace.visualstudio.com/items?itemName=lucasdonordeste.claude-control-panel VS Code]&lt;br /&gt;
* &#039;&#039;&#039;دستور نصب:&#039;&#039;&#039; &amp;lt;code&amp;gt;code --install-extension lucasdonordeste.claude-control-panel&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;توضیح:&#039;&#039;&#039; Panel to control and configure Claude AI assistant settings.&lt;br /&gt;
&lt;br /&gt;
=== 14. meta.pyrefly ===&lt;br /&gt;
* &#039;&#039;&#039;نام:&#039;&#039;&#039; Pyrefly (Meta) — v1.2.0&lt;br /&gt;
* &#039;&#039;&#039;نصب‌شده در:&#039;&#039;&#039; VS Code — | Cursor — | Antigravity ✅&lt;br /&gt;
* &#039;&#039;&#039;Marketplace:&#039;&#039;&#039; [https://marketplace.visualstudio.com/items?itemName=meta.pyrefly Antigravity]&lt;br /&gt;
* &#039;&#039;&#039;دستور نصب:&#039;&#039;&#039; &amp;lt;code&amp;gt;code --install-extension meta.pyrefly&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;توضیح:&#039;&#039;&#039; Fast Python type checker and language server by Meta.&lt;br /&gt;
&lt;br /&gt;
=== 15. ms-azuretools.vscode-containers ===&lt;br /&gt;
* &#039;&#039;&#039;نام:&#039;&#039;&#039; Dev Containers&lt;br /&gt;
* &#039;&#039;&#039;نصب‌شده در:&#039;&#039;&#039; VS Code ✅ | Cursor — | Antigravity —&lt;br /&gt;
* &#039;&#039;&#039;Marketplace:&#039;&#039;&#039; [https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-containers VS Code]&lt;br /&gt;
* &#039;&#039;&#039;دستور نصب:&#039;&#039;&#039; &amp;lt;code&amp;gt;code --install-extension ms-azuretools.vscode-containers&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;توضیح:&#039;&#039;&#039; Develop in reproducible Docker container environments.&lt;br /&gt;
&lt;br /&gt;
=== 16. ms-dotnettools.csdevkit ===&lt;br /&gt;
* &#039;&#039;&#039;نام:&#039;&#039;&#039; C# Dev Kit&lt;br /&gt;
* &#039;&#039;&#039;نصب‌شده در:&#039;&#039;&#039; VS Code ✅ | Cursor — | Antigravity —&lt;br /&gt;
* &#039;&#039;&#039;Marketplace:&#039;&#039;&#039; [https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csdevkit VS Code]&lt;br /&gt;
* &#039;&#039;&#039;دستور نصب:&#039;&#039;&#039; &amp;lt;code&amp;gt;code --install-extension ms-dotnettools.csdevkit&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;توضیح:&#039;&#039;&#039; Complete .NET and C# development toolkit.&lt;br /&gt;
&lt;br /&gt;
=== 17. ms-dotnettools.csharp ===&lt;br /&gt;
* &#039;&#039;&#039;نام:&#039;&#039;&#039; C# (Microsoft)&lt;br /&gt;
* &#039;&#039;&#039;نصب‌شده در:&#039;&#039;&#039; VS Code ✅ | Cursor — | Antigravity —&lt;br /&gt;
* &#039;&#039;&#039;Marketplace:&#039;&#039;&#039; [https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csharp VS Code]&lt;br /&gt;
* &#039;&#039;&#039;دستور نصب:&#039;&#039;&#039; &amp;lt;code&amp;gt;code --install-extension ms-dotnettools.csharp&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;توضیح:&#039;&#039;&#039; Official Microsoft C# language support extension.&lt;br /&gt;
&lt;br /&gt;
=== 18. ms-dotnettools.vscode-dotnet-runtime ===&lt;br /&gt;
* &#039;&#039;&#039;نام:&#039;&#039;&#039; .NET Runtime&lt;br /&gt;
* &#039;&#039;&#039;نصب‌شده در:&#039;&#039;&#039; VS Code ✅ | Cursor — | Antigravity —&lt;br /&gt;
* &#039;&#039;&#039;Marketplace:&#039;&#039;&#039; [https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.vscode-dotnet-runtime VS Code]&lt;br /&gt;
* &#039;&#039;&#039;دستور نصب:&#039;&#039;&#039; &amp;lt;code&amp;gt;code --install-extension ms-dotnettools.vscode-dotnet-runtime&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;توضیح:&#039;&#039;&#039; Acquires and manages .NET runtimes for extensions.&lt;br /&gt;
&lt;br /&gt;
=== 19. ms-python.debugpy ===&lt;br /&gt;
* &#039;&#039;&#039;نام:&#039;&#039;&#039; Python Debugger (debugpy) — v2026.6.0&lt;br /&gt;
* &#039;&#039;&#039;نصب‌شده در:&#039;&#039;&#039; VS Code — | Cursor — | Antigravity ✅&lt;br /&gt;
* &#039;&#039;&#039;Marketplace:&#039;&#039;&#039; [https://marketplace.visualstudio.com/items?itemName=ms-python.debugpy Antigravity]&lt;br /&gt;
* &#039;&#039;&#039;دستور نصب:&#039;&#039;&#039; &amp;lt;code&amp;gt;code --install-extension ms-python.debugpy&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;توضیح:&#039;&#039;&#039; Official Python debugger based on the debugpy library.&lt;br /&gt;
&lt;br /&gt;
=== 20. ms-python.python ===&lt;br /&gt;
* &#039;&#039;&#039;نام:&#039;&#039;&#039; Python (Microsoft) — v2026.4.0&lt;br /&gt;
* &#039;&#039;&#039;نصب‌شده در:&#039;&#039;&#039; VS Code — | Cursor — | Antigravity ✅&lt;br /&gt;
* &#039;&#039;&#039;Marketplace:&#039;&#039;&#039; [https://marketplace.visualstudio.com/items?itemName=ms-python.python Antigravity]&lt;br /&gt;
* &#039;&#039;&#039;دستور نصب:&#039;&#039;&#039; &amp;lt;code&amp;gt;code --install-extension ms-python.python&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;توضیح:&#039;&#039;&#039; Official Microsoft Python extension with rich language support.&lt;br /&gt;
&lt;br /&gt;
=== 21. ms-python.vscode-python-envs ===&lt;br /&gt;
* &#039;&#039;&#039;نام:&#039;&#039;&#039; Python Environment Manager — v1.20.1&lt;br /&gt;
* &#039;&#039;&#039;نصب‌شده در:&#039;&#039;&#039; VS Code — | Cursor — | Antigravity ✅&lt;br /&gt;
* &#039;&#039;&#039;Marketplace:&#039;&#039;&#039; [https://marketplace.visualstudio.com/items?itemName=ms-python.vscode-python-envs Antigravity]&lt;br /&gt;
* &#039;&#039;&#039;دستور نصب:&#039;&#039;&#039; &amp;lt;code&amp;gt;code --install-extension ms-python.vscode-python-envs&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;توضیح:&#039;&#039;&#039; Manage Python virtual and conda environments.&lt;br /&gt;
&lt;br /&gt;
=== 22. ms-vscode.powershell ===&lt;br /&gt;
* &#039;&#039;&#039;نام:&#039;&#039;&#039; PowerShell (Microsoft) — v2025.4.0&lt;br /&gt;
* &#039;&#039;&#039;نصب‌شده در:&#039;&#039;&#039; VS Code — | Cursor — | Antigravity ✅&lt;br /&gt;
* &#039;&#039;&#039;Marketplace:&#039;&#039;&#039; [https://marketplace.visualstudio.com/items?itemName=ms-vscode.powershell Antigravity]&lt;br /&gt;
* &#039;&#039;&#039;دستور نصب:&#039;&#039;&#039; &amp;lt;code&amp;gt;code --install-extension ms-vscode.powershell&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;توضیح:&#039;&#039;&#039; Rich PowerShell language support for editing and debugging.&lt;br /&gt;
&lt;br /&gt;
=== 23. nrigalle.claude-trace ===&lt;br /&gt;
* &#039;&#039;&#039;نام:&#039;&#039;&#039; Claude Trace — v1.8.2&lt;br /&gt;
* &#039;&#039;&#039;نصب‌شده در:&#039;&#039;&#039; VS Code ✅ | Cursor ✅ | Antigravity ✅&lt;br /&gt;
* &#039;&#039;&#039;Marketplace:&#039;&#039;&#039; [https://marketplace.visualstudio.com/items?itemName=nrigalle.claude-trace VS Code] · [https://marketplace.visualstudio.com/items?itemName=nrigalle.claude-trace Cursor] · [https://marketplace.visualstudio.com/items?itemName=nrigalle.claude-trace Antigravity]&lt;br /&gt;
* &#039;&#039;&#039;دستور نصب:&#039;&#039;&#039; &amp;lt;code&amp;gt;code --install-extension nrigalle.claude-trace&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;توضیح:&#039;&#039;&#039; Trace and visualize Claude AI request breakdowns.&lt;br /&gt;
&lt;br /&gt;
=== 24. openai.chatgpt ===&lt;br /&gt;
* &#039;&#039;&#039;نام:&#039;&#039;&#039; ChatGPT (OpenAI) — v26.721.30844&lt;br /&gt;
* &#039;&#039;&#039;نصب‌شده در:&#039;&#039;&#039; VS Code ✅ | Cursor ✅ | Antigravity ✅&lt;br /&gt;
* &#039;&#039;&#039;Marketplace:&#039;&#039;&#039; [https://marketplace.visualstudio.com/items?itemName=openai.chatgpt VS Code] · [https://marketplace.visualstudio.com/items?itemName=openai.chatgpt Cursor] · [https://marketplace.visualstudio.com/items?itemName=openai.chatgpt Antigravity]&lt;br /&gt;
* &#039;&#039;&#039;دستور نصب:&#039;&#039;&#039; &amp;lt;code&amp;gt;code --install-extension openai.chatgpt&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;توضیح:&#039;&#039;&#039; Official OpenAI ChatGPT assistant for coding support.&lt;br /&gt;
&lt;br /&gt;
=== 25. saoudrizwan.claude-dev ===&lt;br /&gt;
* &#039;&#039;&#039;نام:&#039;&#039;&#039; Claude Dev — v4.1.6&lt;br /&gt;
* &#039;&#039;&#039;نصب‌شده در:&#039;&#039;&#039; VS Code ✅ | Cursor ✅ | Antigravity ✅&lt;br /&gt;
* &#039;&#039;&#039;Marketplace:&#039;&#039;&#039; [https://marketplace.visualstudio.com/items?itemName=saoudrizwan.claude-dev VS Code] · [https://marketplace.visualstudio.com/items?itemName=saoudrizwan.claude-dev Cursor] · [https://marketplace.visualstudio.com/items?itemName=saoudrizwan.claude-dev Antigravity]&lt;br /&gt;
* &#039;&#039;&#039;دستور نصب:&#039;&#039;&#039; &amp;lt;code&amp;gt;code --install-extension saoudrizwan.claude-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;توضیح:&#039;&#039;&#039; Autonomous coding agent powered by Claude.&lt;br /&gt;
&lt;br /&gt;
=== 26. shopify.ruby-lsp ===&lt;br /&gt;
* &#039;&#039;&#039;نام:&#039;&#039;&#039; Ruby LSP (Shopify) — v0.10.6&lt;br /&gt;
* &#039;&#039;&#039;نصب‌شده در:&#039;&#039;&#039; VS Code — | Cursor — | Antigravity ✅&lt;br /&gt;
* &#039;&#039;&#039;Marketplace:&#039;&#039;&#039; [https://marketplace.visualstudio.com/items?itemName=shopify.ruby-lsp Antigravity]&lt;br /&gt;
* &#039;&#039;&#039;دستور نصب:&#039;&#039;&#039; &amp;lt;code&amp;gt;code --install-extension shopify.ruby-lsp&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;توضیح:&#039;&#039;&#039; Ruby language server protocol by Shopify.&lt;br /&gt;
&lt;br /&gt;
=== 27. wannanbigpig.codex-accounts-manager ===&lt;br /&gt;
* &#039;&#039;&#039;نام:&#039;&#039;&#039; Codex Accounts Manager&lt;br /&gt;
* &#039;&#039;&#039;نصب‌شده در:&#039;&#039;&#039; VS Code ✅ | Cursor — | Antigravity —&lt;br /&gt;
* &#039;&#039;&#039;Marketplace:&#039;&#039;&#039; [https://marketplace.visualstudio.com/items?itemName=wannanbigpig.codex-accounts-manager VS Code]&lt;br /&gt;
* &#039;&#039;&#039;دستور نصب:&#039;&#039;&#039; &amp;lt;code&amp;gt;code --install-extension wannanbigpig.codex-accounts-manager&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;توضیح:&#039;&#039;&#039; Manage multiple Codex accounts and authentication.&lt;br /&gt;
&lt;br /&gt;
=== 28. yossisa.cursor-usage ===&lt;br /&gt;
* &#039;&#039;&#039;نام:&#039;&#039;&#039; Cursor Usage — v1.3.0&lt;br /&gt;
* &#039;&#039;&#039;نصب‌شده در:&#039;&#039;&#039; VS Code — | Cursor ✅ | Antigravity —&lt;br /&gt;
* &#039;&#039;&#039;Marketplace:&#039;&#039;&#039; [https://marketplace.visualstudio.com/items?itemName=yossisa.cursor-usage Cursor]&lt;br /&gt;
* &#039;&#039;&#039;دستور نصب:&#039;&#039;&#039; &amp;lt;code&amp;gt;code --install-extension yossisa.cursor-usage&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;توضیح:&#039;&#039;&#039; Track and display your Cursor usage statistics.&lt;br /&gt;
&lt;br /&gt;
== Install All Extensions ==&lt;br /&gt;
&lt;br /&gt;
می‌توانید تمام افزونه‌ها را با این دستورها نصب کنید:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VS Code:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
code --install-extension anthropic.claude-code&lt;br /&gt;
code --install-extension blackboxapp.blackbox&lt;br /&gt;
code --install-extension blackboxapp.blackboxagent&lt;br /&gt;
code --install-extension continue.continue&lt;br /&gt;
code --install-extension lucasdonordeste.claude-control-panel&lt;br /&gt;
code --install-extension ms-azuretools.vscode-containers&lt;br /&gt;
code --install-extension ms-dotnettools.csdevkit&lt;br /&gt;
code --install-extension ms-dotnettools.csharp&lt;br /&gt;
code --install-extension ms-dotnettools.vscode-dotnet-runtime&lt;br /&gt;
code --install-extension nrigalle.claude-trace&lt;br /&gt;
code --install-extension openai.chatgpt&lt;br /&gt;
code --install-extension saoudrizwan.claude-dev&lt;br /&gt;
code --install-extension wannanbigpig.codex-accounts-manager&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cursor:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
code --install-extension anysphere.remote-ssh&lt;br /&gt;
code --install-extension anysphere.remote-wsl&lt;br /&gt;
code --install-extension bivipi.ag-manager&lt;br /&gt;
code --install-extension lucasdonordeste.claude-control&lt;br /&gt;
code --install-extension yossisa.cursor-usage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Antigravity:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
code --install-extension erennyuksell.ag-multi-account-switchboard&lt;br /&gt;
code --install-extension golang.go&lt;br /&gt;
code --install-extension leandrosilvaferreira.claude-agents-monitor&lt;br /&gt;
code --install-extension llvm-vs-code-extensions.vscode-clangd&lt;br /&gt;
code --install-extension meta.pyrefly&lt;br /&gt;
code --install-extension ms-python.debugpy&lt;br /&gt;
code --install-extension ms-python.python&lt;br /&gt;
code --install-extension ms-python.vscode-python-envs&lt;br /&gt;
code --install-extension ms-vscode.powershell&lt;br /&gt;
code --install-extension shopify.ruby-lsp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;gt; &#039;&#039;&#039;نکته:&#039;&#039;&#039; فرمت عمومی آدرس Marketplace: &amp;lt;code&amp;gt;https://marketplace.visualstudio.com/items?itemName=شناسه&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Ai_Install_Extension&amp;diff=187</id>
		<title>Ai Install Extension</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Ai_Install_Extension&amp;diff=187"/>
		<updated>2026-08-09T07:50:30Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;# Installed IDE Extensions&lt;br /&gt;
&lt;br /&gt;
&amp;gt; **Legend:** ✅ installed | — not installed&lt;br /&gt;
&amp;gt; All three IDEs are built on Visual Studio Code and share the same extension marketplace.&lt;br /&gt;
&lt;br /&gt;
## Summary Table&lt;br /&gt;
&lt;br /&gt;
| # | Extension ID | Name | VS Code | Cursor | Antigravity |&lt;br /&gt;
|---|--------------|------|:-------:|:------:|:-----------:|&lt;br /&gt;
| 1 | `anthropic.claude-code` | Claude Code (Anthropic) | ✅ | ✅ | ✅ |&lt;br /&gt;
| 2 | `anysphere.remote-ssh` | Remote SSH (Anysphere) | — | ✅ | — |&lt;br /&gt;
| 3 | `anysphere.remote-wsl` | Remote WSL (Anysphere) | — | ✅ | — |&lt;br /&gt;
| 4 | `bivipi.ag-manager` | AG Manager (BiViPi) | — | ✅ | ✅ |&lt;br /&gt;
| 5 | `blackboxapp.blackbox` | Blackbox AI | ✅ | — | — |&lt;br /&gt;
| 6 | `blackboxapp.blackboxagent` | Blackbox Agent | ✅ | — | — |&lt;br /&gt;
| 7 | `continue.continue` | Continue | ✅ | — | — |&lt;br /&gt;
| 8 | `erennyuksell.ag-multi-account-switchboard` | AG Multi Account Switchboard | — | — | ✅ |&lt;br /&gt;
| 9 | `golang.go` | Go (golang) | — | — | ✅ |&lt;br /&gt;
| 10 | `leandrosilvaferreira.claude-agents-monitor` | Claude Agents Monitor | — | — | ✅ |&lt;br /&gt;
| 11 | `llvm-vs-code-extensions.vscode-clangd` | clangd (LLVM) | — | — | ✅ |&lt;br /&gt;
| 12 | `lucasdonordeste.claude-control` | Claude Control | — | ✅ | ✅ |&lt;br /&gt;
| 13 | `lucasdonordeste.claude-control-panel` | Claude Control Panel | ✅ | — | — |&lt;br /&gt;
| 14 | `meta.pyrefly` | Pyrefly (Meta) | — | — | ✅ |&lt;br /&gt;
| 15 | `ms-azuretools.vscode-containers` | Dev Containers | ✅ | — | — |&lt;br /&gt;
| 16 | `ms-dotnettools.csdevkit` | C# Dev Kit | ✅ | — | — |&lt;br /&gt;
| 17 | `ms-dotnettools.csharp` | C# (Microsoft) | ✅ | — | — |&lt;br /&gt;
| 18 | `ms-dotnettools.vscode-dotnet-runtime` | .NET Runtime | ✅ | — | — |&lt;br /&gt;
| 19 | `ms-python.debugpy` | Python Debugger (debugpy) | — | — | ✅ |&lt;br /&gt;
| 20 | `ms-python.python` | Python (Microsoft) | — | — | ✅ |&lt;br /&gt;
| 21 | `ms-python.vscode-python-envs` | Python Environment Manager | — | — | ✅ |&lt;br /&gt;
| 22 | `ms-vscode.powershell` | PowerShell (Microsoft) | — | — | ✅ |&lt;br /&gt;
| 23 | `nrigalle.claude-trace` | Claude Trace | ✅ | ✅ | ✅ |&lt;br /&gt;
| 24 | `openai.chatgpt` | ChatGPT (OpenAI) | ✅ | ✅ | ✅ |&lt;br /&gt;
| 25 | `saoudrizwan.claude-dev` | Claude Dev | ✅ | ✅ | ✅ |&lt;br /&gt;
| 26 | `shopify.ruby-lsp` | Ruby LSP (Shopify) | — | — | ✅ |&lt;br /&gt;
| 27 | `wannanbigpig.codex-accounts-manager` | Codex Accounts Manager | ✅ | — | — |&lt;br /&gt;
| 28 | `yossisa.cursor-usage` | Cursor Usage | — | ✅ | — |&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## Details&lt;br /&gt;
&lt;br /&gt;
### 1. `anthropic.claude-code`&lt;br /&gt;
- **Name:** Claude Code (Anthropic)&lt;br /&gt;
- **Installed in:** VS Code ✅ | Cursor ✅ | Antigravity ✅&lt;br /&gt;
- **Marketplace:** [VS Code](https://marketplace.visualstudio.com/items?itemName=anthropic.claude-code) · [Cursor](https://marketplace.visualstudio.com/items?itemName=anthropic.claude-code) · [Antigravity](https://marketplace.visualstudio.com/items?itemName=anthropic.claude-code)&lt;br /&gt;
- **Install:** `code --install-extension anthropic.claude-code`&lt;br /&gt;
- **Description:** Official Anthropic Claude Code extension for AI-assisted coding.&lt;br /&gt;
&lt;br /&gt;
### 2. `anysphere.remote-ssh`&lt;br /&gt;
- **Name:** Remote SSH (Anysphere) — v1.1.14&lt;br /&gt;
- **Installed in:** VS Code — | Cursor ✅ | Antigravity —&lt;br /&gt;
- **Marketplace:** [Cursor](https://marketplace.visualstudio.com/items?itemName=anysphere.remote-ssh)&lt;br /&gt;
- **Install:** `code --install-extension anysphere.remote-ssh`&lt;br /&gt;
- **Description:** Connect to remote servers via Secure Shell (SSH).&lt;br /&gt;
&lt;br /&gt;
### 3. `anysphere.remote-wsl`&lt;br /&gt;
- **Name:** Remote WSL (Anysphere) — v1.0.13&lt;br /&gt;
- **Installed in:** VS Code — | Cursor ✅ | Antigravity —&lt;br /&gt;
- **Marketplace:** [Cursor](https://marketplace.visualstudio.com/items?itemName=anysphere.remote-wsl)&lt;br /&gt;
- **Install:** `code --install-extension anysphere.remote-wsl`&lt;br /&gt;
- **Description:** Connect to Windows Subsystem for Linux (WSL) environments.&lt;br /&gt;
&lt;br /&gt;
### 4. `bivipi.ag-manager`&lt;br /&gt;
- **Name:** AG Manager (BiViPi) — v1.4.0&lt;br /&gt;
- **Installed in:** VS Code — | Cursor ✅ | Antigravity ✅&lt;br /&gt;
- **Marketplace:** [Cursor](https://marketplace.visualstudio.com/items?itemName=bivipi.ag-manager) · [Antigravity](https://marketplace.visualstudio.com/items?itemName=bivipi.ag-manager)&lt;br /&gt;
- **Install:** `code --install-extension bivipi.ag-manager`&lt;br /&gt;
- **Description:** Manage coding agents (AG) from within the editor.&lt;br /&gt;
&lt;br /&gt;
### 5. `blackboxapp.blackbox`&lt;br /&gt;
- **Name:** Blackbox AI&lt;br /&gt;
- **Installed in:** VS Code ✅ | Cursor — | Antigravity —&lt;br /&gt;
- **Marketplace:** [VS Code](https://marketplace.visualstudio.com/items?itemName=blackboxapp.blackbox)&lt;br /&gt;
- **Install:** `code --install-extension blackboxapp.blackbox`&lt;br /&gt;
- **Description:** AI coding assistant with code completion and chat.&lt;br /&gt;
&lt;br /&gt;
### 6. `blackboxapp.blackboxagent`&lt;br /&gt;
- **Name:** Blackbox Agent&lt;br /&gt;
- **Installed in:** VS Code ✅ | Cursor — | Antigravity —&lt;br /&gt;
- **Marketplace:** [VS Code](https://marketplace.visualstudio.com/items?itemName=blackboxapp.blackboxagent)&lt;br /&gt;
- **Install:** `code --install-extension blackboxapp.blackboxagent`&lt;br /&gt;
- **Description:** Autonomous AI agent for coding tasks and automation in Blackbox.&lt;br /&gt;
&lt;br /&gt;
### 7. `continue.continue`&lt;br /&gt;
- **Name:** Continue&lt;br /&gt;
- **Installed in:** VS Code ✅ | Cursor — | Antigravity —&lt;br /&gt;
- **Marketplace:** [VS Code](https://marketplace.visualstudio.com/items?itemName=continue.continue)&lt;br /&gt;
- **Install:** `code --install-extension continue.continue`&lt;br /&gt;
- **Description:** Open-source AI coding assistant for automated development.&lt;br /&gt;
&lt;br /&gt;
### 8. `erennyuksell.ag-multi-account-switchboard`&lt;br /&gt;
- **Name:** AG Multi Account Switchboard — v3.2.1&lt;br /&gt;
- **Installed in:** VS Code — | Cursor — | Antigravity ✅&lt;br /&gt;
- **Marketplace:** [Antigravity](https://marketplace.visualstudio.com/items?itemName=erennyuksell.ag-multi-account-switchboard)&lt;br /&gt;
- **Install:** `code --install-extension erennyuksell.ag-multi-account-switchboard`&lt;br /&gt;
- **Description:** Switch between multiple agent accounts quickly and easily.&lt;br /&gt;
&lt;br /&gt;
### 9. `golang.go`&lt;br /&gt;
- **Name:** Go (golang) — v0.56.0&lt;br /&gt;
- **Installed in:** VS Code — | Cursor — | Antigravity ✅&lt;br /&gt;
- **Marketplace:** [Antigravity](https://marketplace.visualstudio.com/items?itemName=golang.go)&lt;br /&gt;
- **Install:** `code --install-extension golang.go`&lt;br /&gt;
- **Description:** Rich language support for the Go programming language.&lt;br /&gt;
&lt;br /&gt;
### 10. `leandrosilvaferreira.claude-agents-monitor`&lt;br /&gt;
- **Name:** Claude Agents Monitor — v0.4.7&lt;br /&gt;
- **Installed in:** VS Code — | Cursor — | Antigravity ✅&lt;br /&gt;
- **Marketplace:** [Antigravity](https://marketplace.visualstudio.com/items?itemName=leandrosilvaferreira.claude-agents-monitor)&lt;br /&gt;
- **Install:** `code --install-extension leandrosilvaferreira.claude-agents-monitor`&lt;br /&gt;
- **Description:** Monitor your Claude agents&#039; activity and status.&lt;br /&gt;
&lt;br /&gt;
### 11. `llvm-vs-code-extensions.vscode-clangd`&lt;br /&gt;
- **Name:** clangd (LLVM) — v0.6.0&lt;br /&gt;
- **Installed in:** VS Code — | Cursor — | Antigravity ✅&lt;br /&gt;
- **Marketplace:** [Antigravity](https://marketplace.visualstudio.com/items?itemName=llvm-vs-code-extensions.vscode-clangd)&lt;br /&gt;
- **Install:** `code --install-extension llvm-vs-code-extensions.vscode-clangd`&lt;br /&gt;
- **Description:** C/C++ language server (clangd) with code intelligence.&lt;br /&gt;
&lt;br /&gt;
### 12. `lucasdonordeste.claude-control`&lt;br /&gt;
- **Name:** Claude Control — v1.9.3&lt;br /&gt;
- **Installed in:** VS Code — | Cursor ✅ | Antigravity ✅&lt;br /&gt;
- **Marketplace:** [Cursor](https://marketplace.visualstudio.com/items?itemName=lucasdonordeste.claude-control) · [Antigravity](https://marketplace.visualstudio.com/items?itemName=lucasdonordeste.claude-control)&lt;br /&gt;
- **Install:** `code --install-extension lucasdonordeste.claude-control`&lt;br /&gt;
- **Description:** Control and manage Claude sessions from the editor.&lt;br /&gt;
&lt;br /&gt;
### 13. `lucasdonordeste.claude-control-panel`&lt;br /&gt;
- **Name:** Claude Control Panel&lt;br /&gt;
- **Installed in:** VS Code ✅ | Cursor — | Antigravity —&lt;br /&gt;
- **Marketplace:** [VS Code](https://marketplace.visualstudio.com/items?itemName=lucasdonordeste.claude-control-panel)&lt;br /&gt;
- **Install:** `code --install-extension lucasdonordeste.claude-control-panel`&lt;br /&gt;
- **Description:** Panel to control and configure Claude AI assistant settings.&lt;br /&gt;
&lt;br /&gt;
### 14. `meta.pyrefly`&lt;br /&gt;
- **Name:** Pyrefly (Meta) — v1.2.0&lt;br /&gt;
- **Installed in:** VS Code — | Cursor — | Antigravity ✅&lt;br /&gt;
- **Marketplace:** [Antigravity](https://marketplace.visualstudio.com/items?itemName=meta.pyrefly)&lt;br /&gt;
- **Install:** `code --install-extension meta.pyrefly`&lt;br /&gt;
- **Description:** Fast Python type checker and language server by Meta.&lt;br /&gt;
&lt;br /&gt;
### 15. `ms-azuretools.vscode-containers`&lt;br /&gt;
- **Name:** Dev Containers&lt;br /&gt;
- **Installed in:** VS Code ✅ | Cursor — | Antigravity —&lt;br /&gt;
- **Marketplace:** [VS Code](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-containers)&lt;br /&gt;
- **Install:** `code --install-extension ms-azuretools.vscode-containers`&lt;br /&gt;
- **Description:** Develop in reproducible Docker container environments.&lt;br /&gt;
&lt;br /&gt;
### 16. `ms-dotnettools.csdevkit`&lt;br /&gt;
- **Name:** C# Dev Kit&lt;br /&gt;
- **Installed in:** VS Code ✅ | Cursor — | Antigravity —&lt;br /&gt;
- **Marketplace:** [VS Code](https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csdevkit)&lt;br /&gt;
- **Install:** `code --install-extension ms-dotnettools.csdevkit`&lt;br /&gt;
- **Description:** Complete .NET and C# development toolkit.&lt;br /&gt;
&lt;br /&gt;
### 17. `ms-dotnettools.csharp`&lt;br /&gt;
- **Name:** C# (Microsoft)&lt;br /&gt;
- **Installed in:** VS Code ✅ | Cursor — | Antigravity —&lt;br /&gt;
- **Marketplace:** [VS Code](https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csharp)&lt;br /&gt;
- **Install:** `code --install-extension ms-dotnettools.csharp`&lt;br /&gt;
- **Description:** Official Microsoft C# language support extension.&lt;br /&gt;
&lt;br /&gt;
### 18. `ms-dotnettools.vscode-dotnet-runtime`&lt;br /&gt;
- **Name:** .NET Runtime&lt;br /&gt;
- **Installed in:** VS Code ✅ | Cursor — | Antigravity —&lt;br /&gt;
- **Marketplace:** [VS Code](https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.vscode-dotnet-runtime)&lt;br /&gt;
- **Install:** `code --install-extension ms-dotnettools.vscode-dotnet-runtime`&lt;br /&gt;
- **Description:** Acquires and manages .NET runtimes for extensions.&lt;br /&gt;
&lt;br /&gt;
### 19. `ms-python.debugpy`&lt;br /&gt;
- **Name:** Python Debugger (debugpy) — v2026.6.0&lt;br /&gt;
- **Installed in:** VS Code — | Cursor — | Antigravity ✅&lt;br /&gt;
- **Marketplace:** [Antigravity](https://marketplace.visualstudio.com/items?itemName=ms-python.debugpy)&lt;br /&gt;
- **Install:** `code --install-extension ms-python.debugpy`&lt;br /&gt;
- **Description:** Official Python debugger based on the debugpy library.&lt;br /&gt;
&lt;br /&gt;
### 20. `ms-python.python`&lt;br /&gt;
- **Name:** Python (Microsoft) — v2026.4.0&lt;br /&gt;
- **Installed in:** VS Code — | Cursor — | Antigravity ✅&lt;br /&gt;
- **Marketplace:** [Antigravity](https://marketplace.visualstudio.com/items?itemName=ms-python.python)&lt;br /&gt;
- **Install:** `code --install-extension ms-python.python`&lt;br /&gt;
- **Description:** Official Microsoft Python extension with rich language support.&lt;br /&gt;
&lt;br /&gt;
### 21. `ms-python.vscode-python-envs`&lt;br /&gt;
- **Name:** Python Environment Manager — v1.20.1&lt;br /&gt;
- **Installed in:** VS Code — | Cursor — | Antigravity ✅&lt;br /&gt;
- **Marketplace:** [Antigravity](https://marketplace.visualstudio.com/items?itemName=ms-python.vscode-python-envs)&lt;br /&gt;
- **Install:** `code --install-extension ms-python.vscode-python-envs`&lt;br /&gt;
- **Description:** Manage Python virtual and conda environments.&lt;br /&gt;
&lt;br /&gt;
### 22. `ms-vscode.powershell`&lt;br /&gt;
- **Name:** PowerShell (Microsoft) — v2025.4.0&lt;br /&gt;
- **Installed in:** VS Code — | Cursor — | Antigravity ✅&lt;br /&gt;
- **Marketplace:** [Antigravity](https://marketplace.visualstudio.com/items?itemName=ms-vscode.powershell)&lt;br /&gt;
- **Install:** `code --install-extension ms-vscode.powershell`&lt;br /&gt;
- **Description:** Rich PowerShell language support for editing and debugging.&lt;br /&gt;
&lt;br /&gt;
### 23. `nrigalle.claude-trace`&lt;br /&gt;
- **Name:** Claude Trace — v1.8.2&lt;br /&gt;
- **Installed in:** VS Code ✅ | Cursor ✅ | Antigravity ✅&lt;br /&gt;
- **Marketplace:** [VS Code](https://marketplace.visualstudio.com/items?itemName=nrigalle.claude-trace) · [Cursor](https://marketplace.visualstudio.com/items?itemName=nrigalle.claude-trace) · [Antigravity](https://marketplace.visualstudio.com/items?itemName=nrigalle.claude-trace)&lt;br /&gt;
- **Install:** `code --install-extension nrigalle.claude-trace`&lt;br /&gt;
- **Description:** Trace and visualize Claude AI request breakdowns.&lt;br /&gt;
&lt;br /&gt;
### 24. `openai.chatgpt`&lt;br /&gt;
- **Name:** ChatGPT (OpenAI) — v26.721.30844&lt;br /&gt;
- **Installed in:** VS Code ✅ | Cursor ✅ | Antigravity ✅&lt;br /&gt;
- **Marketplace:** [VS Code](https://marketplace.visualstudio.com/items?itemName=openai.chatgpt) · [Cursor](https://marketplace.visualstudio.com/items?itemName=openai.chatgpt) · [Antigravity](https://marketplace.visualstudio.com/items?itemName=openai.chatgpt)&lt;br /&gt;
- **Install:** `code --install-extension openai.chatgpt`&lt;br /&gt;
- **Description:** Official OpenAI ChatGPT assistant for coding support.&lt;br /&gt;
&lt;br /&gt;
### 25. `saoudrizwan.claude-dev`&lt;br /&gt;
- **Name:** Claude Dev — v4.1.6&lt;br /&gt;
- **Installed in:** VS Code ✅ | Cursor ✅ | Antigravity ✅&lt;br /&gt;
- **Marketplace:** [VS Code](https://marketplace.visualstudio.com/items?itemName=saoudrizwan.claude-dev) · [Cursor](https://marketplace.visualstudio.com/items?itemName=saoudrizwan.claude-dev) · [Antigravity](https://marketplace.visualstudio.com/items?itemName=saoudrizwan.claude-dev)&lt;br /&gt;
- **Install:** `code --install-extension saoudrizwan.claude-dev`&lt;br /&gt;
- **Description:** Autonomous coding agent powered by Claude.&lt;br /&gt;
&lt;br /&gt;
### 26. `shopify.ruby-lsp`&lt;br /&gt;
- **Name:** Ruby LSP (Shopify) — v0.10.6&lt;br /&gt;
- **Installed in:** VS Code — | Cursor — | Antigravity ✅&lt;br /&gt;
- **Marketplace:** [Antigravity](https://marketplace.visualstudio.com/items?itemName=shopify.ruby-lsp)&lt;br /&gt;
- **Install:** `code --install-extension shopify.ruby-lsp`&lt;br /&gt;
- **Description:** Ruby language server protocol by Shopify.&lt;br /&gt;
&lt;br /&gt;
### 27. `wannanbigpig.codex-accounts-manager`&lt;br /&gt;
- **Name:** Codex Accounts Manager&lt;br /&gt;
- **Installed in:** VS Code ✅ | Cursor — | Antigravity —&lt;br /&gt;
- **Marketplace:** [VS Code](https://marketplace.visualstudio.com/items?itemName=wannanbigpig.codex-accounts-manager)&lt;br /&gt;
- **Install:** `code --install-extension wannanbigpig.codex-accounts-manager`&lt;br /&gt;
- **Description:** Manage multiple Codex accounts and authentication.&lt;br /&gt;
&lt;br /&gt;
### 28. `yossisa.cursor-usage`&lt;br /&gt;
- **Name:** Cursor Usage — v1.3.0&lt;br /&gt;
- **Installed in:** VS Code — | Cursor ✅ | Antigravity —&lt;br /&gt;
- **Marketplace:** [Cursor](https://marketplace.visualstudio.com/items?itemName=yossisa.cursor-usage)&lt;br /&gt;
- **Install:** `code --install-extension yossisa.cursor-usage`&lt;br /&gt;
- **Description:** Track and display your Cursor usage statistics.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## Install All Extensions&lt;br /&gt;
&lt;br /&gt;
You can install all extensions across the three IDEs with these commands:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
# VS Code&lt;br /&gt;
code --install-extension anthropic.claude-code&lt;br /&gt;
code --install-extension blackboxapp.blackbox&lt;br /&gt;
code --install-extension blackboxapp.blackboxagent&lt;br /&gt;
code --install-extension continue.continue&lt;br /&gt;
code --install-extension lucasdonordeste.claude-control-panel&lt;br /&gt;
code --install-extension ms-azuretools.vscode-containers&lt;br /&gt;
code --install-extension ms-dotnettools.csdevkit&lt;br /&gt;
code --install-extension ms-dotnettools.csharp&lt;br /&gt;
code --install-extension ms-dotnettools.vscode-dotnet-runtime&lt;br /&gt;
code --install-extension nrigalle.claude-trace&lt;br /&gt;
code --install-extension openai.chatgpt&lt;br /&gt;
code --install-extension saoudrizwan.claude-dev&lt;br /&gt;
code --install-extension wannanbigpig.codex-accounts-manager&lt;br /&gt;
&lt;br /&gt;
# Cursor&lt;br /&gt;
code --install-extension anysphere.remote-ssh&lt;br /&gt;
code --install-extension anysphere.remote-wsl&lt;br /&gt;
code --install-extension bivipi.ag-manager&lt;br /&gt;
code --install-extension lucasdonordeste.claude-control&lt;br /&gt;
code --install-extension yossisa.cursor-usage&lt;br /&gt;
&lt;br /&gt;
# Antigravity&lt;br /&gt;
code --install-extension erennyuksell.ag-multi-account-switchboard&lt;br /&gt;
code --install-extension golang.go&lt;br /&gt;
code --install-extension leandrosilvaferreira.claude-agents-monitor&lt;br /&gt;
code --install-extension llvm-vs-code-extensions.vscode-clangd&lt;br /&gt;
code --install-extension meta.pyrefly&lt;br /&gt;
code --install-extension ms-python.debugpy&lt;br /&gt;
code --install-extension ms-python.python&lt;br /&gt;
code --install-extension ms-python.vscode-python-envs&lt;br /&gt;
code --install-extension ms-vscode.powershell&lt;br /&gt;
code --install-extension shopify.ruby-lsp&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
&amp;gt; **Tip:** Generic Marketplace URL: `https://marketplace.visualstudio.com/items?itemName={IDENTIFIER}`&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Ai_Install_Extension&amp;diff=186</id>
		<title>Ai Install Extension</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Ai_Install_Extension&amp;diff=186"/>
		<updated>2026-08-09T07:44:51Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
# Installed IDE Extensions (Sorted by ID)&lt;br /&gt;
&lt;br /&gt;
**Legend:** For each extension, the checkboxes show where it is installed:&lt;br /&gt;
- ✅ **VS Code** | ✅ **Cursor** | ✅ **Antigravity**&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 1. anthropic.claude-code&lt;br /&gt;
- **Name:** Claude Code (Anthropic)&lt;br /&gt;
- **Installed in:** ✅ VS Code | ✅ Cursor | ✅ Antigravity&lt;br /&gt;
- **Install command:**&lt;br /&gt;
  ```&lt;br /&gt;
  code --install-extension anthropic.claude-code&lt;br /&gt;
  ```&lt;br /&gt;
- **Marketplace:** https://marketplace.visualstudio.com/items?itemName=anthropic.claude-code&lt;br /&gt;
- **Description:** Official Anthropic Claude Code extension for AI-assisted coding.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 2. anysphere.remote-ssh&lt;br /&gt;
- **Name:** Remote SSH (Anysphere)&lt;br /&gt;
- **Version:** 1.1.14&lt;br /&gt;
- **Installed in:** — VS Code | ✅ Cursor | — Antigravity&lt;br /&gt;
- **Install command:**&lt;br /&gt;
  ```&lt;br /&gt;
  code --install-extension anysphere.remote-ssh&lt;br /&gt;
  ```&lt;br /&gt;
- **Marketplace:** https://marketplace.visualstudio.com/items?itemName=anysphere.remote-ssh&lt;br /&gt;
- **Description:** Connect to remote servers via Secure Shell (SSH).&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 3. anysphere.remote-wsl&lt;br /&gt;
- **Name:** Remote WSL (Anysphere)&lt;br /&gt;
- **Version:** 1.0.13&lt;br /&gt;
- **Installed in:** — VS Code | ✅ Cursor | — Antigravity&lt;br /&gt;
- **Install command:**&lt;br /&gt;
  ```&lt;br /&gt;
  code --install-extension anysphere.remote-wsl&lt;br /&gt;
  ```&lt;br /&gt;
- **Marketplace:** https://marketplace.visualstudio.com/items?itemName=anysphere.remote-wsl&lt;br /&gt;
- **Description:** Connect to Windows Subsystem for Linux (WSL) environments.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 4. bivipi.ag-manager&lt;br /&gt;
- **Name:** AG Manager (BiViPi)&lt;br /&gt;
- **Version:** 1.4.0&lt;br /&gt;
- **Installed in:** — VS Code | ✅ Cursor | ✅ Antigravity&lt;br /&gt;
- **Install command:**&lt;br /&gt;
  ```&lt;br /&gt;
  code --install-extension bivipi.ag-manager&lt;br /&gt;
  ```&lt;br /&gt;
- **Marketplace:** https://marketplace.visualstudio.com/items?itemName=bivipi.ag-manager&lt;br /&gt;
- **Description:** Manage coding agents (AG) from within the editor.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 5. blackboxapp.blackbox&lt;br /&gt;
- **Name:** Blackbox AI&lt;br /&gt;
- **Installed in:** ✅ VS Code | — Cursor | — Antigravity&lt;br /&gt;
- **Install command:**&lt;br /&gt;
  ```&lt;br /&gt;
  code --install-extension blackboxapp.blackbox&lt;br /&gt;
  ```&lt;br /&gt;
- **Marketplace:** https://marketplace.visualstudio.com/items?itemName=blackboxapp.blackbox&lt;br /&gt;
- **Description:** AI coding assistant with code completion and chat.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 6. blackboxapp.blackboxagent&lt;br /&gt;
- **Name:** Blackbox Agent&lt;br /&gt;
- **Installed in:** ✅ VS Code | — Cursor | — Antigravity&lt;br /&gt;
- **Install command:**&lt;br /&gt;
  ```&lt;br /&gt;
  code --install-extension blackboxapp.blackboxagent&lt;br /&gt;
  ```&lt;br /&gt;
- **Marketplace:** https://marketplace.visualstudio.com/items?itemName=blackboxapp.blackboxagent&lt;br /&gt;
- **Description:** Autonomous AI agent for coding tasks and automation in Blackbox.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 7. continue.continue&lt;br /&gt;
- **Name:** Continue&lt;br /&gt;
- **Installed in:** ✅ VS Code | — Cursor | — Antigravity&lt;br /&gt;
- **Install command:**&lt;br /&gt;
  ```&lt;br /&gt;
  code --install-extension continue.continue&lt;br /&gt;
  ```&lt;br /&gt;
- **Marketplace:** https://marketplace.visualstudio.com/items?itemName=continue.continue&lt;br /&gt;
- **Description:** Open-source AI coding assistant for automated development.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 8. erennyuksell.ag-multi-account-switchboard&lt;br /&gt;
- **Name:** AG Multi Account Switchboard&lt;br /&gt;
- **Version:** 3.2.1&lt;br /&gt;
- **Installed in:** — VS Code | — Cursor | ✅ Antigravity&lt;br /&gt;
- **Install command:**&lt;br /&gt;
  ```&lt;br /&gt;
  code --install-extension erennyuksell.ag-multi-account-switchboard&lt;br /&gt;
  ```&lt;br /&gt;
- **Marketplace:** https://marketplace.visualstudio.com/items?itemName=erennyuksell.ag-multi-account-switchboard&lt;br /&gt;
- **Description:** Switch between multiple agent accounts quickly and easily.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 9. golang.go&lt;br /&gt;
- **Name:** Go (golang)&lt;br /&gt;
- **Version:** 0.56.0&lt;br /&gt;
- **Installed in:** — VS Code | — Cursor | ✅ Antigravity&lt;br /&gt;
- **Install command:**&lt;br /&gt;
  ```&lt;br /&gt;
  code --install-extension golang.go&lt;br /&gt;
  ```&lt;br /&gt;
- **Marketplace:** https://marketplace.visualstudio.com/items?itemName=golang.go&lt;br /&gt;
- **Description:** Rich language support for the Go programming language.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 10. leandrosilvaferreira.claude-agents-monitor&lt;br /&gt;
- **Name:** Claude Agents Monitor&lt;br /&gt;
- **Version:** 0.4.7&lt;br /&gt;
- **Installed in:** — VS Code | — Cursor | ✅ Antigravity&lt;br /&gt;
- **Install command:**&lt;br /&gt;
  ```&lt;br /&gt;
  code --install-extension leandrosilvaferreira.claude-agents-monitor&lt;br /&gt;
  ```&lt;br /&gt;
- **Marketplace:** https://marketplace.visualstudio.com/items?itemName=leandrosilvaferreira.claude-agents-monitor&lt;br /&gt;
- **Description:** Monitor your Claude agents&#039; activity and status.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 11. llvm-vs-code-extensions.vscode-clangd&lt;br /&gt;
- **Name:** clangd (LLVM)&lt;br /&gt;
- **Version:** 0.6.0&lt;br /&gt;
- **Installed in:** — VS Code | — Cursor | ✅ Antigravity&lt;br /&gt;
- **Install command:**&lt;br /&gt;
  ```&lt;br /&gt;
  code --install-extension llvm-vs-code-extensions.vscode-clangd&lt;br /&gt;
  ```&lt;br /&gt;
- **Marketplace:** https://marketplace.visualstudio.com/items?itemName=llvm-vs-code-extensions.vscode-clangd&lt;br /&gt;
- **Description:** C/C++ language server (clangd) with code intelligence.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 12. lucasdonordeste.claude-control&lt;br /&gt;
- **Name:** Claude Control&lt;br /&gt;
- **Version:** 1.9.3&lt;br /&gt;
- **Installed in:** — VS Code | ✅ Cursor | ✅ Antigravity&lt;br /&gt;
- **Install command:**&lt;br /&gt;
  ```&lt;br /&gt;
  code --install-extension lucasdonordeste.claude-control&lt;br /&gt;
  ```&lt;br /&gt;
- **Marketplace:** https://marketplace.visualstudio.com/items?itemName=lucasdonordeste.claude-control&lt;br /&gt;
- **Description:** Control and manage Claude sessions from the editor.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 13. lucasdonordeste.claude-control-panel&lt;br /&gt;
- **Name:** Claude Control Panel&lt;br /&gt;
- **Installed in:** ✅ VS Code | — Cursor | — Antigravity&lt;br /&gt;
- **Install command:**&lt;br /&gt;
  ```&lt;br /&gt;
  code --install-extension lucasdonordeste.claude-control-panel&lt;br /&gt;
  ```&lt;br /&gt;
- **Marketplace:** https://marketplace.visualstudio.com/items?itemName=lucasdonordeste.claude-control-panel&lt;br /&gt;
- **Description:** Panel to control and configure Claude AI assistant settings.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 14. meta.pyrefly&lt;br /&gt;
- **Name:** Pyrefly (Meta)&lt;br /&gt;
- **Version:** 1.2.0&lt;br /&gt;
- **Installed in:** — VS Code | — Cursor | ✅ Antigravity&lt;br /&gt;
- **Install command:**&lt;br /&gt;
  ```&lt;br /&gt;
  code --install-extension meta.pyrefly&lt;br /&gt;
  ```&lt;br /&gt;
- **Marketplace:** https://marketplace.visualstudio.com/items?itemName=meta.pyrefly&lt;br /&gt;
- **Description:** Fast Python type checker and language server by Meta.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 15. ms-azuretools.vscode-containers&lt;br /&gt;
- **Name:** Dev Containers&lt;br /&gt;
- **Installed in:** ✅ VS Code | — Cursor | — Antigravity&lt;br /&gt;
- **Install command:**&lt;br /&gt;
  ```&lt;br /&gt;
  code --install-extension ms-azuretools.vscode-containers&lt;br /&gt;
  ```&lt;br /&gt;
- **Marketplace:** https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-containers&lt;br /&gt;
- **Description:** Develop in reproducible Docker container environments.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 16. ms-dotnettools.csdevkit&lt;br /&gt;
- **Name:** C# Dev Kit&lt;br /&gt;
- **Installed in:** ✅ VS Code | — Cursor | — Antigravity&lt;br /&gt;
- **Install command:**&lt;br /&gt;
  ```&lt;br /&gt;
  code --install-extension ms-dotnettools.csdevkit&lt;br /&gt;
  ```&lt;br /&gt;
- **Marketplace:** https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csdevkit&lt;br /&gt;
- **Description:** Complete .NET and C# development toolkit.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 17. ms-dotnettools.csharp&lt;br /&gt;
- **Name:** C# (Microsoft)&lt;br /&gt;
- **Installed in:** ✅ VS Code | — Cursor | — Antigravity&lt;br /&gt;
- **Install command:**&lt;br /&gt;
  ```&lt;br /&gt;
  code --install-extension ms-dotnettools.csharp&lt;br /&gt;
  ```&lt;br /&gt;
- **Marketplace:** https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csharp&lt;br /&gt;
- **Description:** Official Microsoft C# language support extension.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 18. ms-dotnettools.vscode-dotnet-runtime&lt;br /&gt;
- **Name:** .NET Runtime&lt;br /&gt;
- **Installed in:** ✅ VS Code | — Cursor | — Antigravity&lt;br /&gt;
- **Install command:**&lt;br /&gt;
  ```&lt;br /&gt;
  code --install-extension ms-dotnettools.vscode-dotnet-runtime&lt;br /&gt;
  ```&lt;br /&gt;
- **Marketplace:** https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.vscode-dotnet-runtime&lt;br /&gt;
- **Description:** Acquires and manages .NET runtimes for extensions.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 19. ms-python.debugpy&lt;br /&gt;
- **Name:** Python Debugger (debugpy)&lt;br /&gt;
- **Version:** 2026.6.0&lt;br /&gt;
- **Installed in:** — VS Code | — Cursor | ✅ Antigravity&lt;br /&gt;
- **Install command:**&lt;br /&gt;
  ```&lt;br /&gt;
  code --install-extension ms-python.debugpy&lt;br /&gt;
  ```&lt;br /&gt;
- **Marketplace:** https://marketplace.visualstudio.com/items?itemName=ms-python.debugpy&lt;br /&gt;
- **Description:** Official Python debugger based on the debugpy library.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 20. ms-python.python&lt;br /&gt;
- **Name:** Python (Microsoft)&lt;br /&gt;
- **Version:** 2026.4.0&lt;br /&gt;
- **Installed in:** — VS Code | — Cursor | ✅ Antigravity&lt;br /&gt;
- **Install command:**&lt;br /&gt;
  ```&lt;br /&gt;
  code --install-extension ms-python.python&lt;br /&gt;
  ```&lt;br /&gt;
- **Marketplace:** https://marketplace.visualstudio.com/items?itemName=ms-python.python&lt;br /&gt;
- **Description:** Official Microsoft Python extension with rich language support.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 21. ms-python.vscode-python-envs&lt;br /&gt;
- **Name:** Python Environment Manager&lt;br /&gt;
- **Version:** 1.20.1&lt;br /&gt;
- **Installed in:** — VS Code | — Cursor | ✅ Antigravity&lt;br /&gt;
- **Install command:**&lt;br /&gt;
  ```&lt;br /&gt;
  code --install-extension ms-python.vscode-python-envs&lt;br /&gt;
  ```&lt;br /&gt;
- **Marketplace:** https://marketplace.visualstudio.com/items?itemName=ms-python.vscode-python-envs&lt;br /&gt;
- **Description:** Manage Python virtual and conda environments.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 22. ms-vscode.powershell&lt;br /&gt;
- **Name:** PowerShell (Microsoft)&lt;br /&gt;
- **Version:** 2025.4.0&lt;br /&gt;
- **Installed in:** — VS Code | — Cursor | ✅ Antigravity&lt;br /&gt;
- **Install command:**&lt;br /&gt;
  ```&lt;br /&gt;
  code --install-extension ms-vscode.powershell&lt;br /&gt;
  ```&lt;br /&gt;
- **Marketplace:** https://marketplace.visualstudio.com/items?itemName=ms-vscode.powershell&lt;br /&gt;
- **Description:** Rich PowerShell language support for editing and debugging.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 23. nrigalle.claude-trace&lt;br /&gt;
- **Name:** Claude Trace&lt;br /&gt;
- **Version:** 1.8.2&lt;br /&gt;
- **Installed in:** ✅ VS Code | ✅ Cursor | ✅ Antigravity&lt;br /&gt;
- **Install command:**&lt;br /&gt;
  ```&lt;br /&gt;
  code --install-extension nrigalle.claude-trace&lt;br /&gt;
  ```&lt;br /&gt;
- **Marketplace:** https://marketplace.visualstudio.com/items?itemName=nrigalle.claude-trace&lt;br /&gt;
- **Description:** Trace and visualize Claude AI request breakdowns.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 24. openai.chatgpt&lt;br /&gt;
- **Name:** ChatGPT (OpenAI)&lt;br /&gt;
- **Version:** 26.721.30844&lt;br /&gt;
- **Installed in:** ✅ VS Code | ✅ Cursor | ✅ Antigravity&lt;br /&gt;
- **Install command:**&lt;br /&gt;
  ```&lt;br /&gt;
  code --install-extension openai.chatgpt&lt;br /&gt;
  ```&lt;br /&gt;
- **Marketplace:** https://marketplace.visualstudio.com/items?itemName=openai.chatgpt&lt;br /&gt;
- **Description:** Official OpenAI ChatGPT assistant for coding support.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 25. saoudrizwan.claude-dev&lt;br /&gt;
- **Name:** Claude Dev&lt;br /&gt;
- **Version:** 4.1.6&lt;br /&gt;
- **Installed in:** ✅ VS Code | ✅ Cursor | ✅ Antigravity&lt;br /&gt;
- **Install command:**&lt;br /&gt;
  ```&lt;br /&gt;
  code --install-extension saoudrizwan.claude-dev&lt;br /&gt;
  ```&lt;br /&gt;
- **Marketplace:** https://marketplace.visualstudio.com/items?itemName=saoudrizwan.claude-dev&lt;br /&gt;
- **Description:** Autonomous coding agent powered by Claude.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 26. shopify.ruby-lsp&lt;br /&gt;
- **Name:** Ruby LSP (Shopify)&lt;br /&gt;
- **Version:** 0.10.6&lt;br /&gt;
- **Installed in:** — VS Code | — Cursor | ✅ Antigravity&lt;br /&gt;
- **Install command:**&lt;br /&gt;
  ```&lt;br /&gt;
  code --install-extension shopify.ruby-lsp&lt;br /&gt;
  ```&lt;br /&gt;
- **Marketplace:** https://marketplace.visualstudio.com/items?itemName=shopify.ruby-lsp&lt;br /&gt;
- **Description:** Ruby language server protocol by Shopify.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 27. wannanbigpig.codex-accounts-manager&lt;br /&gt;
- **Name:** Codex Accounts Manager&lt;br /&gt;
- **Installed in:** ✅ VS Code | — Cursor | — Antigravity&lt;br /&gt;
- **Install command:**&lt;br /&gt;
  ```&lt;br /&gt;
  code --install-extension wannanbigpig.codex-accounts-manager&lt;br /&gt;
  ```&lt;br /&gt;
- **Marketplace:** https://marketplace.visualstudio.com/items?itemName=wannanbigpig.codex-accounts-manager&lt;br /&gt;
- **Description:** Manage multiple Codex accounts and authentication.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 28. yossisa.cursor-usage&lt;br /&gt;
- **Name:** Cursor Usage&lt;br /&gt;
- **Version:** 1.3.0&lt;br /&gt;
- **Installed in:** — VS Code | ✅ Cursor | — Antigravity&lt;br /&gt;
- **Install command:**&lt;br /&gt;
  ```&lt;br /&gt;
  code --install-extension yossisa.cursor-usage&lt;br /&gt;
  ```&lt;br /&gt;
- **Marketplace:** https://marketplace.visualstudio.com/items?itemName=yossisa.cursor-usage&lt;br /&gt;
- **Description:** Track and display your Cursor usage statistics.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
💡 **Tip:** Generic Marketplace URL format:&lt;br /&gt;
```&lt;br /&gt;
https://marketplace.visualstudio.com/items?itemName={IDENTIFIER}&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Ai_Install_Extension&amp;diff=185</id>
		<title>Ai Install Extension</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Ai_Install_Extension&amp;diff=185"/>
		<updated>2026-08-09T07:43:12Z</updated>

		<summary type="html">&lt;p&gt;Karavi: Created page with &amp;quot;#####################################################################################################################################  # لیست افزونه‌های نصب‌شده در IDE ها (مرتب‌شده بر اساس شناسه)  **راهنما:** برای هر افزونه مشخص شده که در کدام ادیتورها نصب است: - ✅ **VS Code** | ✅ **Cursor** | ✅ **Antigravity**  در صورتی که تیک یک ادیتور وجود ندا...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#####################################################################################################################################&lt;br /&gt;
&lt;br /&gt;
# لیست افزونه‌های نصب‌شده در IDE ها (مرتب‌شده بر اساس شناسه)&lt;br /&gt;
&lt;br /&gt;
**راهنما:** برای هر افزونه مشخص شده که در کدام ادیتورها نصب است:&lt;br /&gt;
- ✅ **VS Code** | ✅ **Cursor** | ✅ **Antigravity**&lt;br /&gt;
&lt;br /&gt;
در صورتی که تیک یک ادیتور وجود نداشته باشد، آن افزونه در آن ادیتور نصب نشده است.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 1. anthropic.claude-code&lt;br /&gt;
- **نام:** Claude Code (Anthropic)&lt;br /&gt;
- **نصب‌شده در:** ✅ VS Code | ✅ Cursor | ✅ Antigravity&lt;br /&gt;
- **دستور نصب:**&lt;br /&gt;
  ```&lt;br /&gt;
  code --install-extension anthropic.claude-code&lt;br /&gt;
  ```&lt;br /&gt;
- **آدرس Marketplace:** https://marketplace.visualstudio.com/items?itemName=anthropic.claude-code&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 2. anysphere.remote-ssh&lt;br /&gt;
- **نام:** Remote SSH (Anysphere)&lt;br /&gt;
- **نسخه:** 1.1.14&lt;br /&gt;
- **نصب‌شده در:** — VS Code | ✅ Cursor | — Antigravity&lt;br /&gt;
- **دستور نصب:**&lt;br /&gt;
  ```&lt;br /&gt;
  code --install-extension anysphere.remote-ssh&lt;br /&gt;
  ```&lt;br /&gt;
- **آدرس Marketplace:** https://marketplace.visualstudio.com/items?itemName=anysphere.remote-ssh&lt;br /&gt;
- **توضیح:** اتصال به سرورهای راه دور از طریق SSH&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 3. anysphere.remote-wsl&lt;br /&gt;
- **نام:** Remote WSL (Anysphere)&lt;br /&gt;
- **نسخه:** 1.0.13&lt;br /&gt;
- **نصب‌شده در:** — VS Code | ✅ Cursor | — Antigravity&lt;br /&gt;
- **دستور نصب:**&lt;br /&gt;
  ```&lt;br /&gt;
  code --install-extension anysphere.remote-wsl&lt;br /&gt;
  ```&lt;br /&gt;
- **آدرس Marketplace:** https://marketplace.visualstudio.com/items?itemName=anysphere.remote-wsl&lt;br /&gt;
- **توضیح:** اتصال به Windows Subsystem for Linux (WSL)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 4. bivipi.ag-manager&lt;br /&gt;
- **نام:** AG Manager (BiViPi)&lt;br /&gt;
- **نسخه:** 1.4.0&lt;br /&gt;
- **نصب‌شده در:** — VS Code | ✅ Cursor | ✅ Antigravity&lt;br /&gt;
- **دستور نصب:**&lt;br /&gt;
  ```&lt;br /&gt;
  code --install-extension bivipi.ag-manager&lt;br /&gt;
  ```&lt;br /&gt;
- **آدرس Marketplace:** https://marketplace.visualstudio.com/items?itemName=bivipi.ag-manager&lt;br /&gt;
- **توضیح:** مدیریت Agent ها&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 5. blackboxapp.blackbox&lt;br /&gt;
- **نام:** Blackbox AI&lt;br /&gt;
- **نصب‌شده در:** ✅ VS Code | — Cursor | — Antigravity&lt;br /&gt;
- **دستور نصب:**&lt;br /&gt;
  ```&lt;br /&gt;
  code --install-extension blackboxapp.blackbox&lt;br /&gt;
  ```&lt;br /&gt;
- **آدرس Marketplace:** https://marketplace.visualstudio.com/items?itemName=blackboxapp.blackbox&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 6. blackboxapp.blackboxagent&lt;br /&gt;
- **نام:** Blackbox Agent&lt;br /&gt;
- **نصب‌شده در:** ✅ VS Code | — Cursor | — Antigravity&lt;br /&gt;
- **دستور نصب:**&lt;br /&gt;
  ```&lt;br /&gt;
  code --install-extension blackboxapp.blackboxagent&lt;br /&gt;
  ```&lt;br /&gt;
- **آدرس Marketplace:** https://marketplace.visualstudio.com/items?itemName=blackboxapp.blackboxagent&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 7. continue.continue&lt;br /&gt;
- **نام:** Continue&lt;br /&gt;
- **نصب‌شده در:** ✅ VS Code | — Cursor | — Antigravity&lt;br /&gt;
- **دستور نصب:**&lt;br /&gt;
  ```&lt;br /&gt;
  code --install-extension continue.continue&lt;br /&gt;
  ```&lt;br /&gt;
- **آدرس Marketplace:** https://marketplace.visualstudio.com/items?itemName=continue.continue&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 8. erennyuksell.ag-multi-account-switchboard&lt;br /&gt;
- **نام:** AG Multi Account Switchboard&lt;br /&gt;
- **نسخه:** 3.2.1&lt;br /&gt;
- **نصب‌شده در:** — VS Code | — Cursor | ✅ Antigravity&lt;br /&gt;
- **دستور نصب:**&lt;br /&gt;
  ```&lt;br /&gt;
  code --install-extension erennyuksell.ag-multi-account-switchboard&lt;br /&gt;
  ```&lt;br /&gt;
- **آدرس Marketplace:** https://marketplace.visualstudio.com/items?itemName=erennyuksell.ag-multi-account-switchboard&lt;br /&gt;
- **توضیح:** مدیریت و جابه‌جایی بین چند اکانت Agent&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 9. golang.go&lt;br /&gt;
- **نام:** Go (golang)&lt;br /&gt;
- **نسخه:** 0.56.0&lt;br /&gt;
- **نصب‌شده در:** — VS Code | — Cursor | ✅ Antigravity&lt;br /&gt;
- **دستور نصب:**&lt;br /&gt;
  ```&lt;br /&gt;
  code --install-extension golang.go&lt;br /&gt;
  ```&lt;br /&gt;
- **آدرس Marketplace:** https://marketplace.visualstudio.com/items?itemName=golang.go&lt;br /&gt;
- **توضیح:** پشتیبانی زبان Go&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 10. leandrosilvaferreira.claude-agents-monitor&lt;br /&gt;
- **نام:** Claude Agents Monitor&lt;br /&gt;
- **نسخه:** 0.4.7&lt;br /&gt;
- **نصب‌شده در:** — VS Code | — Cursor | ✅ Antigravity&lt;br /&gt;
- **دستور نصب:**&lt;br /&gt;
  ```&lt;br /&gt;
  code --install-extension leandrosilvaferreira.claude-agents-monitor&lt;br /&gt;
  ```&lt;br /&gt;
- **آدرس Marketplace:** https://marketplace.visualstudio.com/items?itemName=leandrosilvaferreira.claude-agents-monitor&lt;br /&gt;
- **توضیح:** مانیتور کردن Agent های Claude&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 11. llvm-vs-code-extensions.vscode-clangd&lt;br /&gt;
- **نام:** clangd (LLVM)&lt;br /&gt;
- **نسخه:** 0.6.0&lt;br /&gt;
- **نصب‌شده در:** — VS Code | — Cursor | ✅ Antigravity&lt;br /&gt;
- **دستور نصب:**&lt;br /&gt;
  ```&lt;br /&gt;
  code --install-extension llvm-vs-code-extensions.vscode-clangd&lt;br /&gt;
  ```&lt;br /&gt;
- **آدرس Marketplace:** https://marketplace.visualstudio.com/items?itemName=llvm-vs-code-extensions.vscode-clangd&lt;br /&gt;
- **توضیح:** پشتیبانی زبان C/C++&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 12. lucasdonordeste.claude-control&lt;br /&gt;
- **نام:** Claude Control&lt;br /&gt;
- **نسخه:** 1.9.3&lt;br /&gt;
- **نصب‌شده در:** — VS Code | ✅ Cursor | ✅ Antigravity&lt;br /&gt;
- **دستور نصب:**&lt;br /&gt;
  ```&lt;br /&gt;
  code --install-extension lucasdonordeste.claude-control&lt;br /&gt;
  ```&lt;br /&gt;
- **آدرس Marketplace:** https://marketplace.visualstudio.com/items?itemName=lucasdonordeste.claude-control&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 13. lucasdonordeste.claude-control-panel&lt;br /&gt;
- **نام:** Claude Control Panel&lt;br /&gt;
- **نصب‌شده در:** ✅ VS Code | — Cursor | — Antigravity&lt;br /&gt;
- **دستور نصب:**&lt;br /&gt;
  ```&lt;br /&gt;
  code --install-extension lucasdonordeste.claude-control-panel&lt;br /&gt;
  ```&lt;br /&gt;
- **آدرس Marketplace:** https://marketplace.visualstudio.com/items?itemName=lucasdonordeste.claude-control-panel&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 14. meta.pyrefly&lt;br /&gt;
- **نام:** Pyright (Meta)&lt;br /&gt;
- **نسخه:** 1.2.0&lt;br /&gt;
- **نصب‌شده در:** — VS Code | — Cursor | ✅ Antigravity&lt;br /&gt;
- **دستور نصب:**&lt;br /&gt;
  ```&lt;br /&gt;
  code --install-extension meta.pyrefly&lt;br /&gt;
  ```&lt;br /&gt;
- **آدرس Marketplace:** https://marketplace.visualstudio.com/items?itemName=meta.pyrefly&lt;br /&gt;
- **توضیح:** تایپ چکر Python متعلق به Meta&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 15. ms-azuretools.vscode-containers&lt;br /&gt;
- **نام:** Dev Containers&lt;br /&gt;
- **نصب‌شده در:** ✅ VS Code | — Cursor | — Antigravity&lt;br /&gt;
- **دستور نصب:**&lt;br /&gt;
  ```&lt;br /&gt;
  code --install-extension ms-azuretools.vscode-containers&lt;br /&gt;
  ```&lt;br /&gt;
- **آدرس Marketplace:** https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-containers&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 16. ms-dotnettools.csdevkit&lt;br /&gt;
- **نام:** C# Dev Kit&lt;br /&gt;
- **نصب‌شده در:** ✅ VS Code | — Cursor | — Antigravity&lt;br /&gt;
- **دستور نصب:**&lt;br /&gt;
  ```&lt;br /&gt;
  code --install-extension ms-dotnettools.csdevkit&lt;br /&gt;
  ```&lt;br /&gt;
- **آدرس Marketplace:** https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csdevkit&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 17. ms-dotnettools.csharp&lt;br /&gt;
- **نام:** C# (Microsoft)&lt;br /&gt;
- **نصب‌شده در:** ✅ VS Code | — Cursor | — Antigravity&lt;br /&gt;
- **دستور نصب:**&lt;br /&gt;
  ```&lt;br /&gt;
  code --install-extension ms-dotnettools.csharp&lt;br /&gt;
  ```&lt;br /&gt;
- **آدرس Marketplace:** https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csharp&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 18. ms-dotnettools.vscode-dotnet-runtime&lt;br /&gt;
- **نام:** .NET Runtime&lt;br /&gt;
- **نصب‌شده در:** ✅ VS Code | — Cursor | — Antigravity&lt;br /&gt;
- **دستور نصب:**&lt;br /&gt;
  ```&lt;br /&gt;
  code --install-extension ms-dotnettools.vscode-dotnet-runtime&lt;br /&gt;
  ```&lt;br /&gt;
- **آدرس Marketplace:** https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.vscode-dotnet-runtime&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 19. ms-python.debugpy&lt;br /&gt;
- **نام:** Python Debugger (debugpy)&lt;br /&gt;
- **نسخه:** 2026.6.0&lt;br /&gt;
- **نصب‌شده در:** — VS Code | — Cursor | ✅ Antigravity&lt;br /&gt;
- **دستور نصب:**&lt;br /&gt;
  ```&lt;br /&gt;
  code --install-extension ms-python.debugpy&lt;br /&gt;
  ```&lt;br /&gt;
- **آدرس Marketplace:** https://marketplace.visualstudio.com/items?itemName=ms-python.debugpy&lt;br /&gt;
- **توضیح:** دیباگر Python&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 20. ms-python.python&lt;br /&gt;
- **نام:** Python (Microsoft)&lt;br /&gt;
- **نسخه:** 2026.4.0&lt;br /&gt;
- **نصب‌شده در:** — VS Code | — Cursor | ✅ Antigravity&lt;br /&gt;
- **دستور نصب:**&lt;br /&gt;
  ```&lt;br /&gt;
  code --install-extension ms-python.python&lt;br /&gt;
  ```&lt;br /&gt;
- **آدرس Marketplace:** https://marketplace.visualstudio.com/items?itemName=ms-python.python&lt;br /&gt;
- **توضیح:** افزونه رسمی Python مایکروسافت&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 21. ms-python.vscode-python-envs&lt;br /&gt;
- **نام:** Python Environment Manager&lt;br /&gt;
- **نسخه:** 1.20.1&lt;br /&gt;
- **نصب‌شده در:** — VS Code | — Cursor | ✅ Antigravity&lt;br /&gt;
- **دستور نصب:**&lt;br /&gt;
  ```&lt;br /&gt;
  code --install-extension ms-python.vscode-python-envs&lt;br /&gt;
  ```&lt;br /&gt;
- **آدرس Marketplace:** https://marketplace.visualstudio.com/items?itemName=ms-python.vscode-python-envs&lt;br /&gt;
- **توضیح:** مدیریت محیط‌های (Environment) Python&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 22. ms-vscode.powershell&lt;br /&gt;
- **نام:** PowerShell (Microsoft)&lt;br /&gt;
- **نسخه:** 2025.4.0&lt;br /&gt;
- **نصب‌شده در:** — VS Code | — Cursor | ✅ Antigravity&lt;br /&gt;
- **دستور نصب:**&lt;br /&gt;
  ```&lt;br /&gt;
  code --install-extension ms-vscode.powershell&lt;br /&gt;
  ```&lt;br /&gt;
- **آدرس Marketplace:** https://marketplace.visualstudio.com/items?itemName=ms-vscode.powershell&lt;br /&gt;
- **توضیح:** پشتیبانی زبان PowerShell&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 23. nrigalle.claude-trace&lt;br /&gt;
- **نام:** Claude Trace&lt;br /&gt;
- **نسخه:** 1.8.2&lt;br /&gt;
- **نصب‌شده در:** ✅ VS Code | ✅ Cursor | ✅ Antigravity&lt;br /&gt;
- **دستور نصب:**&lt;br /&gt;
  ```&lt;br /&gt;
  code --install-extension nrigalle.claude-trace&lt;br /&gt;
  ```&lt;br /&gt;
- **آدرس Marketplace:** https://marketplace.visualstudio.com/items?itemName=nrigalle.claude-trace&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 24. openai.chatgpt&lt;br /&gt;
- **نام:** ChatGPT (OpenAI)&lt;br /&gt;
- **نسخه:** 26.721.30844&lt;br /&gt;
- **نصب‌شده در:** ✅ VS Code | ✅ Cursor | ✅ Antigravity&lt;br /&gt;
- **دستور نصب:**&lt;br /&gt;
  ```&lt;br /&gt;
  code --install-extension openai.chatgpt&lt;br /&gt;
  ```&lt;br /&gt;
- **آدرس Marketplace:** https://marketplace.visualstudio.com/items?itemName=openai.chatgpt&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 25. saoudrizwan.claude-dev&lt;br /&gt;
- **نام:** Claude Dev&lt;br /&gt;
- **نسخه:** 4.1.6&lt;br /&gt;
- **نصب‌شده در:** ✅ VS Code | ✅ Cursor | ✅ Antigravity&lt;br /&gt;
- **دستور نصب:**&lt;br /&gt;
  ```&lt;br /&gt;
  code --install-extension saoudrizwan.claude-dev&lt;br /&gt;
  ```&lt;br /&gt;
- **آدرس Marketplace:** https://marketplace.visualstudio.com/items?itemName=saoudrizwan.claude-dev&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 26. shopify.ruby-lsp&lt;br /&gt;
- **نام:** Ruby LSP (Shopify)&lt;br /&gt;
- **نسخه:** 0.10.6&lt;br /&gt;
- **نصب‌شده در:** — VS Code | — Cursor | ✅ Antigravity&lt;br /&gt;
- **دستور نصب:**&lt;br /&gt;
  ```&lt;br /&gt;
  code --install-extension shopify.ruby-lsp&lt;br /&gt;
  ```&lt;br /&gt;
- **آدرس Marketplace:** https://marketplace.visualstudio.com/items?itemName=shopify.ruby-lsp&lt;br /&gt;
- **توضیح:** پشتیبانی زبان Ruby&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 27. wannanbigpig.codex-accounts-manager&lt;br /&gt;
- **نام:** Codex Accounts Manager&lt;br /&gt;
- **نصب‌شده در:** ✅ VS Code | — Cursor | — Antigravity&lt;br /&gt;
- **دستور نصب:**&lt;br /&gt;
  ```&lt;br /&gt;
  code --install-extension wannanbigpig.codex-accounts-manager&lt;br /&gt;
  ```&lt;br /&gt;
- **آدرس Marketplace:** https://marketplace.visualstudio.com/items?itemName=wannanbigpig.codex-accounts-manager&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 28. yossisa.cursor-usage&lt;br /&gt;
- **نام:** Cursor Usage&lt;br /&gt;
- **نسخه:** 1.3.0&lt;br /&gt;
- **نصب‌شده در:** — VS Code | ✅ Cursor | — Antigravity&lt;br /&gt;
- **دستور نصب:**&lt;br /&gt;
  ```&lt;br /&gt;
  code --install-extension yossisa.cursor-usage&lt;br /&gt;
  ```&lt;br /&gt;
- **آدرس Marketplace:** https://marketplace.visualstudio.com/items?itemName=yossisa.cursor-usage&lt;br /&gt;
- **توضیح:** نمایش آمار و میزان استفاده از Cursor&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
💡 **نکته کاربردی:** فرمت عمومی آدرس Marketplace:&lt;br /&gt;
```&lt;br /&gt;
https://marketplace.visualstudio.com/items?itemName={IDENTIFIER}&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Ubuntu_zabbix_agent2&amp;diff=184</id>
		<title>Ubuntu zabbix agent2</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Ubuntu_zabbix_agent2&amp;diff=184"/>
		<updated>2026-08-01T05:50:12Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; sudo apt update &lt;br /&gt;
 sudo apt upgrade -y &lt;br /&gt;
 sudo apt-get dist-upgrade -u&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#Install and configure Zabbix for your platform&lt;br /&gt;
&lt;br /&gt;
for 22.04&lt;br /&gt;
 wget https://repo.zabbix.com/zabbix/6.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.4-1+ubuntu22.04_all.deb –no-check-certificate&lt;br /&gt;
&lt;br /&gt;
for 24.04&lt;br /&gt;
 wget https://repo.zabbix.com/zabbix/6.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest%2Bubuntu24.04_all.deb –no-check-certificate&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
dpkg :&lt;br /&gt;
 dpkg -i zabbix-release_6.4-1+ubuntu22.04_all.deb&lt;br /&gt;
&lt;br /&gt;
 apt update&lt;br /&gt;
&lt;br /&gt;
 apt install zabbix-agent2 zabbix-agent2-plugin-*&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/zabbix/zabbix_agent2.conf &lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
Server=&amp;lt;Zabbix_Server_IP&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ServerActive=&amp;lt;Zabbix_Server_IP&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hostname=&amp;lt;Hostname_Of_Ubuntu_Client&amp;gt;&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 systemctl restart zabbix-agent2&lt;br /&gt;
&lt;br /&gt;
 systemctl enable zabbix-agent2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
firewall&lt;br /&gt;
 sudo ufw allow from 78.157.42.213 to any port 10050 proto tcp&lt;br /&gt;
or&lt;br /&gt;
 sudo ufw allow 10050/tcp&lt;br /&gt;
reload&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
check status&lt;br /&gt;
 sudo ufw status verbose&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
for delete rule&lt;br /&gt;
 sudo ufw status numbered&lt;br /&gt;
&lt;br /&gt;
inter your row number&lt;br /&gt;
 sudo ufw delete X&lt;br /&gt;
reload&lt;br /&gt;
 sudo ufw reload&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Ubuntu_zabbix_agent2&amp;diff=183</id>
		<title>Ubuntu zabbix agent2</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Ubuntu_zabbix_agent2&amp;diff=183"/>
		<updated>2026-08-01T05:29:21Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; sudo apt update &lt;br /&gt;
 sudo apt upgrade -y &lt;br /&gt;
 sudo apt-get dist-upgrade -u&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#Install and configure Zabbix for your platform&lt;br /&gt;
&lt;br /&gt;
for 22.04&lt;br /&gt;
 wget https://repo.zabbix.com/zabbix/6.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.4-1+ubuntu22.04_all.deb –no-check-certificate&lt;br /&gt;
&lt;br /&gt;
for 24.04&lt;br /&gt;
 wget https://repo.zabbix.com/zabbix/6.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest%2Bubuntu24.04_all.deb –no-check-certificate&lt;br /&gt;
&lt;br /&gt;
 dpkg -i zabbix-release_6.4-1+ubuntu22.04_all.deb&lt;br /&gt;
&lt;br /&gt;
 apt update&lt;br /&gt;
&lt;br /&gt;
 apt install zabbix-agent2 zabbix-agent2-plugin-*&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/zabbix/zabbix_agent2.conf &lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
Server=&amp;lt;Zabbix_Server_IP&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ServerActive=&amp;lt;Zabbix_Server_IP&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hostname=&amp;lt;Hostname_Of_Ubuntu_Client&amp;gt;&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 systemctl restart zabbix-agent2&lt;br /&gt;
&lt;br /&gt;
 systemctl enable zabbix-agent2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
firewall&lt;br /&gt;
 sudo ufw allow from 78.157.42.213 to any port 10050 proto tcp&lt;br /&gt;
or&lt;br /&gt;
 sudo ufw allow 10050/tcp&lt;br /&gt;
reload&lt;br /&gt;
 sudo ufw reload&lt;br /&gt;
check status&lt;br /&gt;
 sudo ufw status verbose&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
for delete rule&lt;br /&gt;
 sudo ufw status numbered&lt;br /&gt;
&lt;br /&gt;
inter your row number&lt;br /&gt;
 sudo ufw delete X&lt;br /&gt;
reload&lt;br /&gt;
 sudo ufw reload&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Ubuntu_zabbix_agent2&amp;diff=182</id>
		<title>Ubuntu zabbix agent2</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Ubuntu_zabbix_agent2&amp;diff=182"/>
		<updated>2026-08-01T04:59:35Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; sudo apt update &lt;br /&gt;
 sudo apt upgrade -y &lt;br /&gt;
 sudo apt-get dist-upgrade -u&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#Install and configure Zabbix for your platform&lt;br /&gt;
&lt;br /&gt;
for 22.04&lt;br /&gt;
 wget https://repo.zabbix.com/zabbix/6.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.4-1+ubuntu22.04_all.deb –no-check-certificate&lt;br /&gt;
&lt;br /&gt;
for 24.04&lt;br /&gt;
 wget https://repo.zabbix.com/zabbix/6.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest%2Bubuntu24.04_all.deb –no-check-certificate&lt;br /&gt;
&lt;br /&gt;
 dpkg -i zabbix-release_6.4-1+ubuntu22.04_all.deb&lt;br /&gt;
&lt;br /&gt;
 apt update&lt;br /&gt;
&lt;br /&gt;
 apt install zabbix-agent2 zabbix-agent2-plugin-*&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/zabbix/zabbix_agent2.conf &lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
Server=&amp;lt;Zabbix_Server_IP&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ServerActive=&amp;lt;Zabbix_Server_IP&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hostname=&amp;lt;Hostname_Of_Ubuntu_Client&amp;gt;&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 systemctl restart zabbix-agent2&lt;br /&gt;
&lt;br /&gt;
 systemctl enable zabbix-agent2&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Google_policies_country&amp;diff=181</id>
		<title>Google policies country</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Google_policies_country&amp;diff=181"/>
		<updated>2026-07-20T10:33:32Z</updated>

		<summary type="html">&lt;p&gt;Karavi: Replaced content with &amp;quot;  this link   https://policies.google.com/country-association-form  check box True  I travel often  check Other reason  I usually travel to Germany for business purposes, so you can check my office IP address .&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
this link &lt;br /&gt;
 https://policies.google.com/country-association-form&lt;br /&gt;
&lt;br /&gt;
check box True&lt;br /&gt;
 I travel often&lt;br /&gt;
&lt;br /&gt;
check Other reason&lt;br /&gt;
 I usually travel to Germany for business purposes, so you can check my office IP address .&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Google_policies_country&amp;diff=180</id>
		<title>Google policies country</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Google_policies_country&amp;diff=180"/>
		<updated>2026-07-20T10:23:24Z</updated>

		<summary type="html">&lt;p&gt;Karavi: Created page with &amp;quot;  this link   https://policies.google.com/country-association-form    توی این ویدیو می‌ریم سراغ یکی از بزرگترین چالش‌های کاربران ایرانی هوش مصنوعی گوگل یعنی خطای لوکیشن و مشکل لاگین در آنتی‌گرویتی (AntiGravity). 🚫  اگر شما هم موقع ورود با پیام عدم دسترسی به خاطر کشور یا لوکیشن روبرو می‌شید، این و...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
this link &lt;br /&gt;
 https://policies.google.com/country-association-form&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
توی این ویدیو می‌ریم سراغ یکی از بزرگترین چالش‌های کاربران ایرانی هوش مصنوعی گوگل یعنی خطای لوکیشن و مشکل لاگین در آنتی‌گرویتی (AntiGravity). 🚫&lt;br /&gt;
&lt;br /&gt;
اگر شما هم موقع ورود با پیام عدم دسترسی به خاطر کشور یا لوکیشن روبرو می‌شید، این ویدیو دقیقاً برای شماست. خیلی از روش‌هایی که توی اینترنت گفته شده یا کار نمی‌کنن یا هزینه‌های زیادی دارن، اما توی این آموزش یاد می‌گیرید چطور کاملاً رایگان و با یک ترفند ساده، لوکیشن اکانت گوگل خودتون رو برای همیشه تغییر بدید و از سد تحریم‌ها عبور کنید.&lt;br /&gt;
&lt;br /&gt;
پیام خطا:&lt;br /&gt;
Sorry, this account is ineligible to use Antigravity&lt;br /&gt;
Your current account is not eligible for Antigravity. Try signing in with another personal Google account.&lt;br /&gt;
Learn more by visiting our FAQ.&lt;br /&gt;
Sign in with a different account&lt;br /&gt;
&lt;br /&gt;
توی این ویدیو چی می‌بینید؟&lt;br /&gt;
&lt;br /&gt;
🔹 بررسی خطا: • مشاهده مستقیم خطای لوکیشن موقع ساین‌این (Sign-in) در AntiGravity. • توضیح اینکه چرا وی‌پی‌ان‌های معمولی گاهی جواب نمی‌دن.&lt;br /&gt;
&lt;br /&gt;
🔹 آموزش تغییر لوکیشن اکانت گوگل: • معرفی سرویس رسمی گوگل برای مدیریت لوکیشن. • نحوه انتخاب کشور (آمریکا) و ایالت مناسب بر اساس وی‌پی‌ان شما. • ترفند ارسال درخواست به گوگل (گزینه I travel often) برای تایید سریع‌تر.&lt;br /&gt;
&lt;br /&gt;
🔹 نکات فنی: • معرفی وی‌پی‌ان‌های معتبری که آی‌پی واقعی شما رو لو نمی‌دن (ExpressVPN, PureVPN, NordVPN). • اهمیت هماهنگی ایالت انتخابی با سرور وی‌پی‌ان.&lt;br /&gt;
&lt;br /&gt;
🔹 تست نهایی و نتیجه: • بررسی ایمیل تایید گوگل بعد از چند ساعت. • ورود موفقیت‌آمیز به نرم‌افزار AntiGravity بدون هیچ خطایی.&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Ubuntu_To_Ubuntu_Connection_Test&amp;diff=179</id>
		<title>Ubuntu To Ubuntu Connection Test</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Ubuntu_To_Ubuntu_Connection_Test&amp;diff=179"/>
		<updated>2026-07-06T16:41:16Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Mikrotik Ubuntu L2TPv3 — Testing Hub and Remote Ubuntu ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
این صفحه راهنمای کامل تست و عیب‌یابی تونل L2TPv3 بین &#039;&#039;&#039;Hub Ubuntu&#039;&#039;&#039; و &#039;&#039;&#039;Remote Ubuntu&#039;&#039;&#039; است. هر روش تست با دستور، جدول تفسیر نتیجه و توضیح مفصل ارائه شده است. IPهای واقعی با placeholder جایگزین شده‌اند تا در wiki عمومی قابل انتشار باشد. ترتیب اجرا از ساده (لایه تونل) به پیشرفته (throughput و capture) پیشنهاد می‌شود.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;مرتبط:&#039;&#039;&#039; [[Mikrotik_Ubuntu_L2TPv3]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Topology (این سناریو) ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! نقش !! Public IP (placeholder) !! Tunnel IP (placeholder) !! Interface&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Hub || &amp;lt;code&amp;gt;HUB_PUBLIC_IP&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;HUB_TUNNEL_IP&amp;lt;/code&amp;gt;/30 || l2tpeth1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Remote || &amp;lt;code&amp;gt;REMOTE_PUBLIC_IP&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;REMOTE_TUNNEL_IP&amp;lt;/code&amp;gt;/30 || l2tpeth0&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;مثال subnet تونل (قابل تغییر در طرح IP شما):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;HUB_TUNNEL_IP&amp;lt;/code&amp;gt; = 10.0.1.1&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;REMOTE_TUNNEL_IP&amp;lt;/code&amp;gt; = 10.0.1.2&lt;br /&gt;
&lt;br /&gt;
* Subnet NAT روی Hub: &amp;lt;code&amp;gt;10.0.1.0/30&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites (پیش‌نیاز قبل از تست) ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
قبل از اجرای تست‌ها موارد زیر باید برقرار باشند:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* سرویس &amp;lt;code&amp;gt;ql2tpd&amp;lt;/code&amp;gt; روی هر دو سرور در وضعیت &amp;lt;code&amp;gt;active (running)&amp;lt;/code&amp;gt; باشد&lt;br /&gt;
&lt;br /&gt;
* اینترفیس تونل IP داشته باشد: Hub روی &amp;lt;code&amp;gt;l2tpeth1&amp;lt;/code&amp;gt;، Remote روی &amp;lt;code&amp;gt;l2tpeth0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* روی Hub قوانین NAT و FORWARD برای subnet تونل Remote اعمال شده باشد&lt;br /&gt;
&lt;br /&gt;
* روی Remote policy routing با &amp;lt;code&amp;gt;from REMOTE_TUNNEL_IP lookup 100&amp;lt;/code&amp;gt; فعال باشد&lt;br /&gt;
&lt;br /&gt;
* ابزارهای تست: &amp;lt;code&amp;gt;curl&amp;lt;/code&amp;gt;، &amp;lt;code&amp;gt;iperf3&amp;lt;/code&amp;gt;، &amp;lt;code&amp;gt;tcpdump&amp;lt;/code&amp;gt; (در صورت نبود: &amp;lt;code&amp;gt;apt install -y iperf3 tcpdump&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
* برای تست IP عمومی از سرویس قابل دسترس در شبکه خودتان استفاده کنید (مثال: &amp;lt;code&amp;gt;https://api.ipnote.ir/myip&amp;lt;/code&amp;gt;) — در ایران از سرویس‌های فیلترنشده استفاده کنید&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;توضیح:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
تست‌های این صفحه فرض می‌کنند تونل L2TPv3 با encapsulation IP (پروتکل ۱۱۵) یا UDP (پورت ۱۷۰۱) بین Hub و Remote برقرار شده است. اگر هنوز اینترفیس &amp;lt;code&amp;gt;l2tpeth*&amp;lt;/code&amp;gt; ساخته نشده یا در حالت DOWN است، ابتدا بخش عیب‌یابی پروتکل ۱۱۵ (Step 6) را اجرا کنید. selective routing روی Remote به این معناست که فقط ترافیک با source برابر &amp;lt;code&amp;gt;REMOTE_TUNNEL_IP&amp;lt;/code&amp;gt; از تونل خارج می‌شود و بقیه ترافیک سرور (از جمله SSH و پنل مدیریت) از IP عمومی &amp;lt;code&amp;gt;REMOTE_PUBLIC_IP&amp;lt;/code&amp;gt; می‌رود. بنابراین تست «اینترنت عادی» و «از تونل» را همیشه جدا انجام دهید. Hub باید &amp;lt;code&amp;gt;ip_forward&amp;lt;/code&amp;gt; فعال و MASQUERADE برای subnet تونل Remote داشته باشد؛ بدون آن ping به &amp;lt;code&amp;gt;HUB_TUNNEL_IP&amp;lt;/code&amp;gt; ممکن است OK باشد ولی خروج به اینترنت از تونل fail شود.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Step 1 — Ping tunnel endpoints (تست لایه تونل) ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
این ساده‌ترین تست است و فقط ارتباط IP بین دو انتهای pseudowire را می‌سنجد، بدون دخالت NAT یا اینترنت.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== From Remote to Hub ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ping -c 4 HUB_TUNNEL_IP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== From Hub to Remote ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ping -c 4 REMOTE_TUNNEL_IP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! نتیجه !! تفسیر&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| 0% packet loss || تونل برقرار است — به مرحله بعد بروید&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| 100% packet loss || ql2tpd، فایروال proto 115، IP اینترفیس یا peer down را بررسی کنید&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;توضیح:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
دستور ping بین &amp;lt;code&amp;gt;HUB_TUNNEL_IP&amp;lt;/code&amp;gt; و &amp;lt;code&amp;gt;REMOTE_TUNNEL_IP&amp;lt;/code&amp;gt; مستقیماً روی subnet تونل اجرا می‌شود و نیازی به NAT روی Hub ندارد. اگر این تست موفق باشد یعنی session L2TPv3 برقرار شده، اینترفیس‌های &amp;lt;code&amp;gt;l2tpeth0&amp;lt;/code&amp;gt; و &amp;lt;code&amp;gt;l2tpeth1&amp;lt;/code&amp;gt; آدرس گرفته‌اند و بسته ICMP از یک طرف به طرف دیگر از داخل تونل رد می‌شود. تأخیر (RTT) معمولاً برابر فاصله جغرافیایی بین دو سرور عمومی است؛ مثلاً اگر Hub در اروپا و Remote در ایران باشد، RTT حدود ۶۰ تا ۹۰ میلی‌ثانیه طبیعی است. اگر ping صفر درصد loss دارد ولی تست‌های بعدی (خروج به اینترنت) fail می‌شوند، مشکل در لایه تونل نیست بلکه در NAT، forward یا policy routing است. همیشه ping را از هر دو جهت بزنید تا مطمئن شوید مسیر برگشت هم باز است.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Step 2 — IP egress test (تمایز اینترنت عادی و تونل) ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Normal internet (بدون تونل) — run on Remote ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 curl -4 -s &amp;quot;https://api.ipnote.ir/myip&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Forced via tunnel — run on Remote ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 curl -4 --interface l2tpeth0 -s &amp;quot;https://api.ipnote.ir/myip&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! خروجی curl !! معنی&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| REMOTE_PUBLIC_IP || ترافیک از WAN مستقیم خارج شده&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| HUB_PUBLIC_IP || ترافیک از تونل و NAT Hub خارج شده&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| timeout / خطا || policy routing Remote یا NAT Hub ناقص است&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;توضیح:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
این تست مهم‌ترین معیار selective routing روی سرور Remote است. دستور اول بدون bind به اینترفیس تونل اجرا می‌شود و باید IP عمومی خود Remote را نشان دهد؛ این تأیید می‌کند سرور به‌طور عادی به اینترنت دسترسی دارد. دستور دوم با &amp;lt;code&amp;gt;--interface l2tpeth0&amp;lt;/code&amp;gt; اجبار می‌کند اتصال HTTPS از اینترفیس تونل برود؛ در این حالت kernel باید source address برابر &amp;lt;code&amp;gt;REMOTE_TUNNEL_IP&amp;lt;/code&amp;gt; انتخاب کند و با rule &amp;lt;code&amp;gt;from REMOTE_TUNNEL_IP lookup 100&amp;lt;/code&amp;gt; بسته از Hub NAT شده و با IP &amp;lt;code&amp;gt;HUB_PUBLIC_IP&amp;lt;/code&amp;gt; به اینترنت برود. اگر خروجی دوم &amp;lt;code&amp;gt;HUB_PUBLIC_IP&amp;lt;/code&amp;gt; نیست، یا policy routing روی Remote ناقص است یا NAT/forward روی Hub. این تست را قبل از هر تنظیم x-ui انجام دهید؛ اگر در OS درست کار کند ولی کلاینت VPN اشتباه است، مشکل در routing ruleهای پنل 3x-ui است نه L2TP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Step 2b — Latency breakdown with curl (تفکیک DNS، TCP، TLS) ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Via tunnel ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 curl -4 --interface l2tpeth0 -s -o /dev/null -w &amp;quot;DNS:%{time_namelookup}s  TCP:%{time_connect}s  TLS:%{time_appconnect}s  Total:%{time_total}s\n&amp;quot; &amp;quot;https://api.ipnote.ir/myip&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Direct (بدون تونل) — مقایسه ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 curl -4 -s -o /dev/null -w &amp;quot;DNS:%{time_namelookup}s  TCP:%{time_connect}s  TLS:%{time_appconnect}s  Total:%{time_total}s\n&amp;quot; &amp;quot;https://api.ipnote.ir/myip&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Quick total via tunnel ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 curl -4 --interface l2tpeth0 -s -o /dev/null -w &amp;quot;Total:%{time_total}s\n&amp;quot; &amp;quot;https://api.ipnote.ir/myip&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! فیلد !! معنی !! اگر زیاد باشد&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| time_namelookup || زمان DNS resolve || DNS کند یا فیلتر — rule DNS در x-ui را چک کنید&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| time_connect || زمان TCP connect || مسیر تونل یا RTT بالا&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| time_appconnect || پایان TLS handshake || latency مسیر Hub&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| time_total || کل درخواست || معمولاً ۰.۴ تا ۱ ثانیه از تونل طبیعی است&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;توضیح:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
این تست به شما کمک می‌کند «کندی» را از «خرابی» جدا کنید. وقتی &amp;lt;code&amp;gt;time_namelookup&amp;lt;/code&amp;gt; زیر چند میلی‌ثانیه است، DNS مقصر کندی نیست. تفاوت &amp;lt;code&amp;gt;time_total&amp;lt;/code&amp;gt; بین مسیر مستقیم (مثلاً ۰.۰۶ ثانیه) و مسیر تونل (مثلاً ۰.۴۷ ثانیه) به‌خاطر bug نیست؛ ترافیک از Hub در کشور دیگر خارج می‌شود و یک hop و RTT اضافه دارد. این trade-off عمدی selective routing است: IP خروجی &amp;lt;code&amp;gt;HUB_PUBLIC_IP&amp;lt;/code&amp;gt; با هزینه latency بیشتر. توجه کنید &amp;lt;code&amp;gt;curl --interface&amp;lt;/code&amp;gt; فقط اتصال TCP را bind می‌کند و resolve ممکن است هنوز از resolver سیستم برود؛ برای تست DNS واقعی کلاینت x-ui به rule پورت ۵۳ → outbound تونل نیاز دارید. اگر Total چند ثانیه یا بیشتر است در حالی که iperf خوب است، سراغ DNS و routing پنل بروید نه MTU تونل.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Step 3 — Ping internet via tunnel (ICMP به اینترنت از source تونل) ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ping -4 -I l2tpeth0 -c 4 8.8.8.8&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;اجرا روی:&#039;&#039;&#039; Remote&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! نتیجه !! تفسیر&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| پاسخ از 8.8.8.8 || forward و NAT روی Hub فعال است&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| 100% loss ولی ping HUB_TUNNEL_IP OK || تقریباً قطعی مشکل NAT یا FORWARD روی Hub&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Network unreachable || policy routing یا route در table 100 ناقص است&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;توضیح:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
برخلاف ping به &amp;lt;code&amp;gt;HUB_TUNNEL_IP&amp;lt;/code&amp;gt; که فقط داخل subnet تونل است، این تست بسته ICMP را با source &amp;lt;code&amp;gt;REMOTE_TUNNEL_IP&amp;lt;/code&amp;gt; به آدرس اینترنتی (مثلاً 8.8.8.8) می‌فرستد. بسته از تونل به Hub می‌رسد، Hub باید آن را forward کند، NAT (MASQUERADE) بزند و از WAN خارج کند؛ پاسخ ICMP باید برگردد و دوباره از تونل به Remote برسد. اگر Step 1 موفق و این تست ۱۰۰٪ loss است، تقریباً همیشه مشکل روی Hub است: &amp;lt;code&amp;gt;net.ipv4.ip_forward=0&amp;lt;/code&amp;gt;، نبود rule MASQUERADE برای subnet تونل، یا FORWARD بین &amp;lt;code&amp;gt;l2tpeth1&amp;lt;/code&amp;gt; و &amp;lt;code&amp;gt;WAN_INTERFACE_HUB&amp;lt;/code&amp;gt; بسته است. گاهی &amp;lt;code&amp;gt;rp_filter&amp;lt;/code&amp;gt; strict روی Hub یا اینترفیس تونل باعث drop نامتقارن می‌شود؛ مقدار ۰ برای تونل و WAN توصیه می‌شود. برخی شبکه‌ها ICMP را محدود می‌کنند؛ در آن صورت به Step 2 (curl) تکیه کنید.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Step 4 — Throughput test with iperf3 (تست سرعت بین دو سرور) ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Install (یک‌بار روی هر دو سرور) ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 apt install -y iperf3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Server on Hub ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 iperf3 -s -B HUB_TUNNEL_IP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Upload Remote → Hub ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 iperf3 -c HUB_TUNNEL_IP -B REMOTE_TUNNEL_IP -t 10&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Download Hub → Remote (reverse) ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 iperf3 -c HUB_TUNNEL_IP -B REMOTE_TUNNEL_IP -t 10 -R&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Parallel streams ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 iperf3 -c HUB_TUNNEL_IP -B REMOTE_TUNNEL_IP -t 10 -P 4&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! شاخص !! مقدار قابل قبول (تقریبی) !! تفسیر&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Throughput || صدها Mbps تا نزدیک 1 Gbps || بسته به لینک فیزیکی دو سرور&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Retr (retransmits) || نزدیک 0 || بالا = MTU، congestion، یا نیاز به BBR&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| -R vs بدون -R || هر دو بالا || اگر فقط -R کند است، TCP tuning (BBR) روی Hub و Remote&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;توضیح:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
iperf3 تنها تستی است که throughput واقعی TCP روی تونل را اندازه می‌گیرد، نه فقط latency اولین اتصال. سرور iperf باید روی Hub و فقط روی &amp;lt;code&amp;gt;HUB_TUNNEL_IP&amp;lt;/code&amp;gt; bind شود تا ترافیک تست از WAN عبور نکند. کلاینت روی Remote با &amp;lt;code&amp;gt;-B REMOTE_TUNNEL_IP&amp;lt;/code&amp;gt; اطمینان می‌دهد تمام جریان از policy table 100 و تونل می‌رود. تست بدون &amp;lt;code&amp;gt;-R&amp;lt;/code&amp;gt; جهت Upload (Remote به Hub) را می‌سنجد؛ با &amp;lt;code&amp;gt;-R&amp;lt;/code&amp;gt; Hub ارسال می‌کند و جهت Download را می‌سنجد — در تونل‌های با RTT بالا بدون BBR ممکن است Download کندتر باشد. &amp;lt;code&amp;gt;-P 4&amp;lt;/code&amp;gt; چهار TCP موازی باز می‌کند و سقف واقعی لینک را بهتر نشان می‌دهد. Retr بالای چند صد در ۱۰ ثانیه با throughput خوب معمولاً قابل چشم‌پوشی است؛ Retr زیاد با throughput پایین یعنی MTU 1400، MSS clamp، یا congestion control را بررسی کنید. اگر iperf نزدیک ۱ Gbps است ولی کاربر x-ui کند است، مشکل throughput تونل نیست.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Step 5 — tcpdump on tunnel interface (مشاهده ترافیک زنده) ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Install ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 apt install -y tcpdump&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Capture ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 tcpdump -ni l2tpeth0 host REMOTE_TUNNEL_IP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;اجرا روی:&#039;&#039;&#039; Remote — هنگام اتصال کلاینت 3x-ui یا اجرای &amp;lt;code&amp;gt;curl --interface l2tpeth0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! مشاهده !! معنی&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| پکت‌های &amp;lt;code&amp;gt;REMOTE_TUNNEL_IP →&amp;lt;/code&amp;gt; IP خارجی || outbound از تونل فعال است (x-ui یا curl)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| پکت‌های &amp;lt;code&amp;gt;→ REMOTE_TUNNEL_IP&amp;lt;/code&amp;gt; || مسیر برگشت و NAT Hub سالم است&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| TCP 443 با تبادل داده || اتصال واقعی برقرار — Telegram، Google، Microsoft و غیره&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| UDP پورت 3478 || STUN/WebRTC (تماس ویدیو) از تونل — طبیعی&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| هیچ پکتی هنگام استفاده کلاینت || inboundTag یا routing rule در 3x-ui اشتباه است&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ARP از HUB_TUNNEL_IP || همسایگی لایه ۲ روی pseudowire — طبیعی&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;توضیح:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
tcpdump روی &amp;lt;code&amp;gt;l2tpeth0&amp;lt;/code&amp;gt; با فیلتر &amp;lt;code&amp;gt;host REMOTE_TUNNEL_IP&amp;lt;/code&amp;gt; دقیقاً نشان می‌دهد آیا ترافیک با source تونل از پنل 3x-ui (outbound &amp;lt;code&amp;gt;l2tp-out&amp;lt;/code&amp;gt; با &amp;lt;code&amp;gt;sendThrough&amp;lt;/code&amp;gt;) عبور می‌کند یا نه. اگر هنگام باز کردن سایت در کلاینت VPN پکت‌های TCP یا UDP با source &amp;lt;code&amp;gt;REMOTE_TUNNEL_IP&amp;lt;/code&amp;gt; می‌بینید، outbound کار می‌کند حتی اگر پنل آمار ۰ بایت نشان دهد — برخی نسخه‌های پنل برای outbound نوع freedom آمار را درست به‌روز نمی‌کنند. دیدن پکت برگشتی از مقصد (مثلاً :443) یعنی Hub NAT و forward درست است. UDP به پورت 3478 معمولاً مربوط به STUN برای تماس صوتی/تصویری است و از تونل رد شدن آن طبیعی است. اگر هیچ پکتی نیست ولی curl با &amp;lt;code&amp;gt;--interface l2tpeth0&amp;lt;/code&amp;gt; کار می‌کند، کلاینت به inbound اشتباه وصل شده یا rule به outbound دیگری می‌رود. برای خروج از capture: Ctrl+C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Step 6 — L2TP protocol 115 capture (عیب‌یابی برقراری تونل) ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ابتدا نام اینترفیس WAN را پیدا کنید:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ip route get 1.1.1.1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== On Hub ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 tcpdump -ni WAN_INTERFACE_HUB host REMOTE_PUBLIC_IP and proto 115&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== On Remote ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 tcpdump -ni WAN_INTERFACE_REMOTE host HUB_PUBLIC_IP and proto 115&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
سپس روی هر دو سرور (در ترمینال جدا):&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 systemctl restart ql2tpd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! مشاهده !! تفسیر&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| پکت proto 115 دوطرفه || L2TP در حال مذاکره — اگر l2tpeth DOWN است config ID را چک کنید&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| هیچ پکت 115 || فایروال ufw، iptables، یا cloud firewall پروتکل 115 را بلاک می‌کند&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| فقط یک طرف || فایروال یک‌طرفه یا asymmetric routing&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;توضیح:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
وقتی &amp;lt;code&amp;gt;ql2tpd&amp;lt;/code&amp;gt; در لاگ می‌نویسد &amp;lt;code&amp;gt;quiescent tunnel&amp;lt;/code&amp;gt; ولی &amp;lt;code&amp;gt;l2tpeth*&amp;lt;/code&amp;gt; در حالت DOWN است یا ping تونل ۱۰۰٪ loss دارد، باید ببینید آیا اصلاً پکت L2TPv3 با encapsulation IP (پروتکل ۱۱۵) بین دو سرور رد و بدل می‌شود. این تست روی اینترفیس WAN واقعی است نه l2tpeth — نام اینترفیس روی هر سرور متفاوت است (مثلاً eth0 روی Hub و ens160 روی VMware). tcpdump را روی هر دو سرور همزمان اجرا کنید و ql2tpd را restart کنید. اگر هیچ پکتی نیست، در ufw دستور &amp;lt;code&amp;gt;ufw allow proto 115&amp;lt;/code&amp;gt; و در پنل cloud firewall اجازه protocol 115 بین IPهای عمومی را بدهید. در برخی دیتاسنترها فقط TCP/UDP مجاز است؛ در آن صورت encap را به UDP پورت ۱۷۰۱ روی هر دو طرف تغییر دهید (فقط تونل Hub–Remote، نه لزوماً MikroTik). خطای &amp;lt;code&amp;gt;dataplane down: no such device&amp;lt;/code&amp;gt; هنگام restart معمولاً بی‌ضرر است.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Step 7 — Policy routing checklist (Remote) ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ip rule show | grep REMOTE_TUNNEL_IP&lt;br /&gt;
&lt;br /&gt;
 ip route show table 100&lt;br /&gt;
&lt;br /&gt;
 ip -br addr show l2tpeth0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! خروجی مورد انتظار !! اگر نیست&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;code&amp;gt;from REMOTE_TUNNEL_IP lookup 100&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;ip rule add from REMOTE_TUNNEL_IP lookup 100 priority 100&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;code&amp;gt;default via HUB_TUNNEL_IP dev l2tpeth0&amp;lt;/code&amp;gt; در table 100 || route default را در table 100 اضافه کنید&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| REMOTE_TUNNEL_IP/30 روی l2tpeth0 || IP و &amp;lt;code&amp;gt;ip link set l2tpeth0 up&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;توضیح:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
selective routing روی Remote بدون تغییر default route اصلی (که از &amp;lt;code&amp;gt;REMOTE_PUBLIC_IP&amp;lt;/code&amp;gt; خارج می‌شود) با policy routing انجام می‌شود. table 100 یک routing table جداگانه است که فقط وقتی source بسته برابر &amp;lt;code&amp;gt;REMOTE_TUNNEL_IP&amp;lt;/code&amp;gt; باشد استفاده می‌شود — دقیقاً همان کاری که Xray با &amp;lt;code&amp;gt;sendThrough: &amp;quot;REMOTE_TUNNEL_IP&amp;quot;&amp;lt;/code&amp;gt; انجام می‌دهد. نباید default route اصلی را به تونل هدایت کنید چون تمام ترافیک سرور شامل SSH و پنل از تونل می‌رود. rule باید با priority مناسب (مثلاً ۱۰۰) قبل از main table اعمال شود. پس از reboot اسکریپت &amp;lt;code&amp;gt;/etc/networkd-dispatcher/routable.d/l2tp-remote-policy.sh&amp;lt;/code&amp;gt; باید همین ruleها را دوباره اعمال کند. اگر &amp;lt;code&amp;gt;ip rule&amp;lt;/code&amp;gt; درست است ولی curl از تونل fail می‌شود، مشکل در Hub NAT است نه Remote routing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Step 8 — NAT and forward checklist (Hub) ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 sysctl net.ipv4.ip_forward&lt;br /&gt;
&lt;br /&gt;
 iptables -t nat -L POSTROUTING -n -v | grep 10.0.1&lt;br /&gt;
&lt;br /&gt;
 iptables -L FORWARD -n -v | grep l2tpeth1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 WAN detection:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ip route get 1.1.1.1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! خروجی مورد انتظار !! اگر نیست&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;code&amp;gt;ip_forward = 1&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;sysctl -w net.ipv4.ip_forward=1&amp;lt;/code&amp;gt; و فایل sysctl.d&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| MASQUERADE برای subnet تونل به WAN_INTERFACE_HUB || iptables NAT POSTROUTING&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| FORWARD l2tpeth1 ↔ WAN || iptables FORWARD ACCEPT&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;توضیح:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hub نقش gateway برای ترافیک تونل Remote را دارد. وقتی بسته‌ای با source در subnet تونل Remote (مثلاً 10.0.1.0/30) از &amp;lt;code&amp;gt;l2tpeth1&amp;lt;/code&amp;gt; وارد Hub می‌شود و مقصدش اینترنت است، kernel باید forwarding فعال داشته باشد و iptables آن را NAT کند تا مقصد پاسخ را به IP عمومی Hub بفرستد و Hub بتواند پاسخ را به تونل برگرداند. فقط NAT برای subnet تونل Remote اعمال کنید — تونل‌های MikroTik ممکن است مسیر خودشان را داشته باشند. &amp;lt;code&amp;gt;IFACE&amp;lt;/code&amp;gt; در دستورات iptables باید اینترفیس WAN واقعی Hub باشد (از &amp;lt;code&amp;gt;ip route get 1.1.1.1&amp;lt;/code&amp;gt;). پس از تنظیم، &amp;lt;code&amp;gt;netfilter-persistent save&amp;lt;/code&amp;gt; بزنید. MSS clamp روی FORWARD TCP توصیه می‌شود تا با MTU 1400 تونل سازگار باشد. بدون این بخش، ping به &amp;lt;code&amp;gt;HUB_TUNNEL_IP&amp;lt;/code&amp;gt; OK و ping به 8.8.8.8 از تونل fail می‌ماند.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Step 9 — 3x-ui / Xray outbound verification (تأیید پنل) ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
پس از تأیید OS با Step 2 و Step 5، پنل 3x-ui را تنظیم کنید.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Outbound JSON (مثال) ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
  &amp;quot;tag&amp;quot;: &amp;quot;l2tp-out&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
  &amp;quot;protocol&amp;quot;: &amp;quot;freedom&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
  &amp;quot;sendThrough&amp;quot;: &amp;quot;REMOTE_TUNNEL_IP&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
  &amp;quot;settings&amp;quot;: { &amp;quot;domainStrategy&amp;quot;: &amp;quot;UseIPv4&amp;quot; },&lt;br /&gt;
&lt;br /&gt;
  &amp;quot;mux&amp;quot;: { &amp;quot;enabled&amp;quot;: false }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Routing rules (ترتیب مهم) ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# inbound مشخص → l2tp-out&lt;br /&gt;
&lt;br /&gt;
# port 53 udp,tcp → l2tp-out&lt;br /&gt;
&lt;br /&gt;
# بقیه → direct&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;توضیح:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
اگر تست‌های OS (curl با interface، iperf، tcpdump) موفق هستند ولی تجربه کاربر نهایی بد است، تمرکز روی 3x-ui است. outbound &amp;lt;code&amp;gt;l2tp-out&amp;lt;/code&amp;gt; باید protocol freedom با &amp;lt;code&amp;gt;sendThrough&amp;lt;/code&amp;gt; برابر IP تونل Remote باشد؛ mux را false بگذارید. حداقل دو routing rule لازم است: یکی inboundTag دقیق inbound مورد نظر به l2tp-out، و دیگری DNS (پورت ۵۳) به l2tp-out — بدون rule DNS برخی سایت‌ها کند باز می‌شوند یا timeout می‌خورند چون resolve از مسیر مستقیم می‌رود. ruleهای l2tp-out باید بالای direct و geoip باشند. آمار صفر در پنل به‌معنی قطع ترافیک نیست؛ tcpdump (Step 5) معیار قطعی است. IP کلاینت از سرویس myip باید &amp;lt;code&amp;gt;HUB_PUBLIC_IP&amp;lt;/code&amp;gt; باشد. latency حدود نیم ثانیه برای اولین HTTPS از تونل طبیعی است و با iperf 900 Mbps تناقض ندارد.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Step 10 — TCP tuning note (BBR — اختیاری برای کیفیت) ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
فایل &amp;lt;code&amp;gt;/etc/sysctl.d/99-tcp-tune.conf&amp;lt;/code&amp;gt; با BBR روی Hub و Remote — پس از تأیید تونل.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;توضیح:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
تنظیم BBR و بافرهای TCP روی throughput بعد از برقراری اتصال اثر دارد، نه روی ping یا اولین DNS resolve. اگر iperf در جهت Download (&amp;lt;code&amp;gt;-R&amp;lt;/code&amp;gt;) بسیار کندتر از Upload است در حالی که Upload بالاست، فعال‌سازی &amp;lt;code&amp;gt;net.ipv4.tcp_congestion_control=bbr&amp;lt;/code&amp;gt; و &amp;lt;code&amp;gt;net.core.default_qdisc=fq&amp;lt;/code&amp;gt; روی هر دو سرور توصیه می‌شود. این تنظیمات جایگزین NAT یا policy routing نمی‌شوند. اگر curl از تونل timeout می‌خورد، BBR کمکی نمی‌کند — اول Step 7 و 8 را کامل کنید. پس از اعمال sysctl، یک بار iperf -R را تکرار کنید و Retr و bitrate را مقایسه کنید. BBR برای ترافیک x-ui کلاینت وقتی تونل از نظر OS تأیید شده مفید است.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting decision tree (درخت تصمیم عیب‌یابی) ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! علامت !! احتمال اول !! اقدام&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ping تونل fail || L2TP / proto 115 || Step 1، Step 6&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ping تونل OK، ping 8.8.8.8 از تونل fail || NAT Hub || Step 8&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| curl مستقیم OK، curl --interface fail || policy routing || Step 7&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| curl --interface → HUB_PUBLIC_IP || OS سالم — x-ui || Step 5، Step 9&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| iperf کند فقط -R || TCP tuning || Step 10&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| همه OS OK، کلاینت کند || DNS rule / latency مسیر Hub || Step 2b، Step 9&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| tcpdump هنگام کلاینت خالی || inboundTag / routing || Step 9&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Expected results summary (جدول خلاصه) ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Test !! Server !! Expected on success&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ping HUB_TUNNEL_IP || Remote || 0% packet loss&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ping REMOTE_TUNNEL_IP || Hub || 0% packet loss&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| curl (no interface) || Remote || REMOTE_PUBLIC_IP&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| curl --interface l2tpeth0 || Remote || HUB_PUBLIC_IP&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| curl timing via tunnel || Remote || Total ~0.4–1s (مسیر Hub)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| curl timing direct || Remote || معمولاً کمتر از tunnel&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ping -I l2tpeth0 8.8.8.8 || Remote || 0% packet loss&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| iperf3 upload || Remote || high Mbps, low Retr&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| iperf3 -R download || Remote || high Mbps, low Retr (با BBR)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| tcpdump l2tpeth0 || Remote || پکت REMOTE_TUNNEL_IP هنگام کلاینت&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Client IP (x-ui) || Client || HUB_PUBLIC_IP&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Placeholder reference (جدول جایگزین‌ها) ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Placeholder !! توضیح !! مثال subnet (غیر عمومی)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;code&amp;gt;HUB_PUBLIC_IP&amp;lt;/code&amp;gt; || IP عمومی سرور Hub || —&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;code&amp;gt;REMOTE_PUBLIC_IP&amp;lt;/code&amp;gt; || IP عمومی سرور Remote || —&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;code&amp;gt;HUB_TUNNEL_IP&amp;lt;/code&amp;gt; || IP تونل روی Hub || 10.0.1.1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;code&amp;gt;REMOTE_TUNNEL_IP&amp;lt;/code&amp;gt; || IP تونل روی Remote || 10.0.1.2&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;code&amp;gt;WAN_INTERFACE_HUB&amp;lt;/code&amp;gt; || اینترفیس WAN Hub || eth0&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;code&amp;gt;WAN_INTERFACE_REMOTE&amp;lt;/code&amp;gt; || اینترفیس WAN Remote || ens160&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Recommended test order (ترتیب پیشنهادی) ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Prerequisites و نصب iperf3/tcpdump&lt;br /&gt;
&lt;br /&gt;
# Step 1 — ping تونل دوطرفه&lt;br /&gt;
&lt;br /&gt;
# Step 2 — curl IP مستقیم vs تونل&lt;br /&gt;
&lt;br /&gt;
# Step 2b — curl timing (اختیاری — تفکیک کندی)&lt;br /&gt;
&lt;br /&gt;
# Step 3 — ping 8.8.8.8 از تونل&lt;br /&gt;
&lt;br /&gt;
# Step 8 — اگر Step 3 fail&lt;br /&gt;
&lt;br /&gt;
# Step 7 — اگر Step 2 interface fail&lt;br /&gt;
&lt;br /&gt;
# Step 4 — iperf3 throughput&lt;br /&gt;
&lt;br /&gt;
# Step 10 — BBR اگر -R کند است&lt;br /&gt;
&lt;br /&gt;
# Step 5 — tcpdump هنگام کلاینت 3x-ui&lt;br /&gt;
&lt;br /&gt;
# Step 9 — تنظیم و تأیید پنل&lt;br /&gt;
&lt;br /&gt;
# Step 6 — فقط اگر تونل اصلاً up نمی‌شود&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:L2TPv3]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Ubuntu]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Networking]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Testing]]&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Ubuntu_To_Ubuntu_Connection_Test&amp;diff=178</id>
		<title>Ubuntu To Ubuntu Connection Test</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Ubuntu_To_Ubuntu_Connection_Test&amp;diff=178"/>
		<updated>2026-07-06T16:30:11Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Mikrotik Ubuntu L2TPv3 — Testing Hub and Remote Ubuntu ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
این صفحه راهنمای کامل تست و عیب‌یابی تونل L2TPv3 بین &#039;&#039;&#039;Hub Ubuntu&#039;&#039;&#039; و &#039;&#039;&#039;Remote Ubuntu&#039;&#039;&#039; است. هر روش تست با دستور، جدول تفسیر نتیجه و توضیح مفصل (حداقل ۱۰۰ کلمه) ارائه شده تا بتوانید بدون IP واقعی در محیط عمومی wiki منتشر کنید. ترتیب اجرا از ساده (لایه تونل) به پیشرفته (throughput و capture) پیشنهاد می‌شود.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;مرتبط:&#039;&#039;&#039; [[Mikrotik_Ubuntu_L2TPv3]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Topology (این سناریو) ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! نقش !! Public IP (placeholder) !! Tunnel IP (placeholder) !! Interface&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Hub || &amp;lt;code&amp;gt;HUB_PUBLIC_IP&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;HUB_TUNNEL_IP&amp;lt;/code&amp;gt;/30 || l2tpeth1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Remote || &amp;lt;code&amp;gt;REMOTE_PUBLIC_IP&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;REMOTE_TUNNEL_IP&amp;lt;/code&amp;gt;/30 || l2tpeth0&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;مثال subnet تونل (قابل تغییر در طرح IP شما):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;HUB_TUNNEL_IP&amp;lt;/code&amp;gt; = 10.0.1.1&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;REMOTE_TUNNEL_IP&amp;lt;/code&amp;gt; = 10.0.1.2&lt;br /&gt;
&lt;br /&gt;
* Subnet NAT روی Hub: &amp;lt;code&amp;gt;10.0.1.0/30&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites (پیش‌نیاز قبل از تست) ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
قبل از اجرای تست‌ها موارد زیر باید برقرار باشند:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* سرویس &amp;lt;code&amp;gt;ql2tpd&amp;lt;/code&amp;gt; روی هر دو سرور در وضعیت &amp;lt;code&amp;gt;active (running)&amp;lt;/code&amp;gt; باشد&lt;br /&gt;
&lt;br /&gt;
* اینترفیس تونل IP داشته باشد: Hub روی &amp;lt;code&amp;gt;l2tpeth1&amp;lt;/code&amp;gt;، Remote روی &amp;lt;code&amp;gt;l2tpeth0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* روی Hub قوانین NAT و FORWARD برای subnet تونل Remote اعمال شده باشد&lt;br /&gt;
&lt;br /&gt;
* روی Remote policy routing با &amp;lt;code&amp;gt;from REMOTE_TUNNEL_IP lookup 100&amp;lt;/code&amp;gt; فعال باشد&lt;br /&gt;
&lt;br /&gt;
* ابزارهای تست: &amp;lt;code&amp;gt;curl&amp;lt;/code&amp;gt;، &amp;lt;code&amp;gt;iperf3&amp;lt;/code&amp;gt;، &amp;lt;code&amp;gt;tcpdump&amp;lt;/code&amp;gt; (در صورت نبود: &amp;lt;code&amp;gt;apt install -y iperf3 tcpdump&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
* برای تست IP عمومی از سرویس قابل دسترس در شبکه خودتان استفاده کنید (مثال: &amp;lt;code&amp;gt;https://api.ipnote.ir/myip&amp;lt;/code&amp;gt;) — در ایران از سرویس‌های فیلترنشده استفاده کنید&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;توضیح پیش‌نیاز (۱۰۰+ کلمه):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
تست‌های این صفحه فرض می‌کنند تونل L2TPv3 با encapsulation IP (پروتکل ۱۱۵) یا UDP (پورت ۱۷۰۱) بین Hub و Remote برقرار شده است. اگر هنوز اینترفیس &amp;lt;code&amp;gt;l2tpeth*&amp;lt;/code&amp;gt; ساخته نشده یا در حالت DOWN است، ابتدا بخش عیب‌یابی پروتکل ۱۱۵ (Step 6) را اجرا کنید. selective routing روی Remote به این معناست که فقط ترافیک با source برابر &amp;lt;code&amp;gt;REMOTE_TUNNEL_IP&amp;lt;/code&amp;gt; از تونل خارج می‌شود و بقیه ترافیک سرور (از جمله SSH و پنل مدیریت) از IP عمومی &amp;lt;code&amp;gt;REMOTE_PUBLIC_IP&amp;lt;/code&amp;gt; می‌رود. بنابراین تست «اینترنت عادی» و «از تونل» را همیشه جدا انجام دهید. Hub باید &amp;lt;code&amp;gt;ip_forward&amp;lt;/code&amp;gt; فعال و MASQUERADE برای subnet تونل Remote داشته باشد؛ بدون آن ping به &amp;lt;code&amp;gt;HUB_TUNNEL_IP&amp;lt;/code&amp;gt; ممکن است OK باشد ولی خروج به اینترنت از تونل fail شود.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Step 1 — Ping tunnel endpoints (تست لایه تونل) ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
این ساده‌ترین تست است و فقط ارتباط IP بین دو انتهای pseudowire را می‌سنجد، بدون دخالت NAT یا اینترنت.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== From Remote to Hub ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ping -c 4 HUB_TUNNEL_IP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== From Hub to Remote ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ping -c 4 REMOTE_TUNNEL_IP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! نتیجه !! تفسیر&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| 0% packet loss || تونل برقرار است — به مرحله بعد بروید&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| 100% packet loss || ql2tpd، فایروال proto 115، IP اینترفیس یا peer down را بررسی کنید&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;توضیح (۱۰۰+ کلمه):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
دستور ping بین &amp;lt;code&amp;gt;HUB_TUNNEL_IP&amp;lt;/code&amp;gt; و &amp;lt;code&amp;gt;REMOTE_TUNNEL_IP&amp;lt;/code&amp;gt; مستقیماً روی subnet تونل اجرا می‌شود و نیازی به NAT روی Hub ندارد. اگر این تست موفق باشد یعنی session L2TPv3 برقرار شده، اینترفیس‌های &amp;lt;code&amp;gt;l2tpeth0&amp;lt;/code&amp;gt; و &amp;lt;code&amp;gt;l2tpeth1&amp;lt;/code&amp;gt; آدرس گرفته‌اند و بسته ICMP از یک طرف به طرف دیگر از داخل تونل رد می‌شود. تأخیر (RTT) معمولاً برابر فاصله جغرافیایی بین دو سرور عمومی است؛ مثلاً اگر Hub در اروپا و Remote در ایران باشد، RTT حدود ۶۰ تا ۹۰ میلی‌ثانیه طبیعی است. اگر ping صفر درصد loss دارد ولی تست‌های بعدی (خروج به اینترنت) fail می‌شوند، مشکل در لایه تونل نیست بلکه در NAT، forward یا policy routing است. همیشه ping را از هر دو جهت بزنید تا مطمئن شوید مسیر برگشت هم باز است.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Step 2 — IP egress test (تمایز اینترنت عادی و تونل) ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Normal internet (بدون تونل) — run on Remote ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 curl -4 -s &amp;quot;https://api.ipnote.ir/myip&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Forced via tunnel — run on Remote ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 curl -4 --interface l2tpeth0 -s &amp;quot;https://api.ipnote.ir/myip&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! خروجی curl !! معنی&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| REMOTE_PUBLIC_IP || ترافیک از WAN مستقیم خارج شده&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| HUB_PUBLIC_IP || ترافیک از تونل و NAT Hub خارج شده&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| timeout / خطا || policy routing Remote یا NAT Hub ناقص است&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;توضیح (۱۰۰+ کلمه):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
این تست مهم‌ترین معیار selective routing روی سرور Remote است. دستور اول بدون bind به اینترفیس تونل اجرا می‌شود و باید IP عمومی خود Remote را نشان دهد؛ این تأیید می‌کند سرور به‌طور عادی به اینترنت دسترسی دارد. دستور دوم با &amp;lt;code&amp;gt;--interface l2tpeth0&amp;lt;/code&amp;gt; اجبار می‌کند اتصال HTTPS از اینترفیس تونل برود؛ در این حالت kernel باید source address برابر &amp;lt;code&amp;gt;REMOTE_TUNNEL_IP&amp;lt;/code&amp;gt; انتخاب کند و با rule &amp;lt;code&amp;gt;from REMOTE_TUNNEL_IP lookup 100&amp;lt;/code&amp;gt; بسته از Hub NAT شده و با IP &amp;lt;code&amp;gt;HUB_PUBLIC_IP&amp;lt;/code&amp;gt; به اینترنت برود. اگر خروجی دوم &amp;lt;code&amp;gt;HUB_PUBLIC_IP&amp;lt;/code&amp;gt; نیست، یا policy routing روی Remote ناقص است یا NAT/forward روی Hub. این تست را قبل از هر تنظیم x-ui انجام دهید؛ اگر در OS درست کار کند ولی کلاینت VPN اشتباه است، مشکل در routing ruleهای پنل 3x-ui است نه L2TP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Step 2b — Latency breakdown with curl (تفکیک DNS، TCP، TLS) ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Via tunnel ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 curl -4 --interface l2tpeth0 -s -o /dev/null -w &amp;quot;DNS:%{time_namelookup}s  TCP:%{time_connect}s  TLS:%{time_appconnect}s  Total:%{time_total}s\n&amp;quot; &amp;quot;https://api.ipnote.ir/myip&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Direct (بدون تونل) — مقایسه ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 curl -4 -s -o /dev/null -w &amp;quot;DNS:%{time_namelookup}s  TCP:%{time_connect}s  TLS:%{time_appconnect}s  Total:%{time_total}s\n&amp;quot; &amp;quot;https://api.ipnote.ir/myip&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Quick total via tunnel ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 curl -4 --interface l2tpeth0 -s -o /dev/null -w &amp;quot;Total:%{time_total}s\n&amp;quot; &amp;quot;https://api.ipnote.ir/myip&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! فیلد !! معنی !! اگر زیاد باشد&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| time_namelookup || زمان DNS resolve || DNS کند یا فیلتر — rule DNS در x-ui را چک کنید&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| time_connect || زمان TCP connect || مسیر تونل یا RTT بالا&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| time_appconnect || پایان TLS handshake || latency مسیر Hub&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| time_total || کل درخواست || معمولاً ۰.۴ تا ۱ ثانیه از تونل طبیعی است&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;توضیح (۱۰۰+ کلمه):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
این تست به شما کمک می‌کند «کندی» را از «خرابی» جدا کنید. وقتی &amp;lt;code&amp;gt;time_namelookup&amp;lt;/code&amp;gt; زیر چند میلی‌ثانیه است، DNS مقصر کندی نیست. تفاوت &amp;lt;code&amp;gt;time_total&amp;lt;/code&amp;gt; بین مسیر مستقیم (مثلاً ۰.۰۶ ثانیه) و مسیر تونل (مثلاً ۰.۴۷ ثانیه) به‌خاطر bug نیست؛ ترافیک از Hub در کشور دیگر خارج می‌شود و یک hop و RTT اضافه دارد. این trade-off عمدی selective routing است: IP خروجی &amp;lt;code&amp;gt;HUB_PUBLIC_IP&amp;lt;/code&amp;gt; با هزینه latency بیشتر. توجه کنید &amp;lt;code&amp;gt;curl --interface&amp;lt;/code&amp;gt; فقط اتصال TCP را bind می‌کند و resolve ممکن است هنوز از resolver سیستم برود؛ برای تست DNS واقعی کلاینت x-ui به rule پورت ۵۳ → outbound تونل نیاز دارید. اگر Total چند ثانیه یا بیشتر است در حالی که iperf خوب است، سراغ DNS و routing پنل بروید نه MTU تونل.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Step 3 — Ping internet via tunnel (ICMP به اینترنت از source تونل) ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ping -4 -I l2tpeth0 -c 4 8.8.8.8&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;اجرا روی:&#039;&#039;&#039; Remote&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! نتیجه !! تفسیر&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| پاسخ از 8.8.8.8 || forward و NAT روی Hub فعال است&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| 100% loss ولی ping HUB_TUNNEL_IP OK || تقریباً قطعی مشکل NAT یا FORWARD روی Hub&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Network unreachable || policy routing یا route در table 100 ناقص است&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;توضیح (۱۰۰+ کلمه):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
برخلاف ping به &amp;lt;code&amp;gt;HUB_TUNNEL_IP&amp;lt;/code&amp;gt; که فقط داخل subnet تونل است، این تست بسته ICMP را با source &amp;lt;code&amp;gt;REMOTE_TUNNEL_IP&amp;lt;/code&amp;gt; به آدرس اینترنتی (مثلاً 8.8.8.8) می‌فرستد. بسته از تونل به Hub می‌رسد، Hub باید آن را forward کند، NAT (MASQUERADE) بزند و از WAN خارج کند؛ پاسخ ICMP باید برگردد و دوباره از تونل به Remote برسد. اگر Step 1 موفق و این تست ۱۰۰٪ loss است، تقریباً همیشه مشکل روی Hub است: &amp;lt;code&amp;gt;net.ipv4.ip_forward=0&amp;lt;/code&amp;gt;، نبود rule MASQUERADE برای subnet تونل، یا FORWARD بین &amp;lt;code&amp;gt;l2tpeth1&amp;lt;/code&amp;gt; و &amp;lt;code&amp;gt;WAN_INTERFACE_HUB&amp;lt;/code&amp;gt; بسته است. گاهی &amp;lt;code&amp;gt;rp_filter&amp;lt;/code&amp;gt; strict روی Hub یا اینترفیس تونل باعث drop نامتقارن می‌شود؛ مقدار ۰ برای تونل و WAN توصیه می‌شود. برخی شبکه‌ها ICMP را محدود می‌کنند؛ در آن صورت به Step 2 (curl) تکیه کنید.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Step 4 — Throughput test with iperf3 (تست سرعت بین دو سرور) ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Install (یک‌بار روی هر دو سرور) ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 apt install -y iperf3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Server on Hub ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 iperf3 -s -B HUB_TUNNEL_IP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Upload Remote → Hub ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 iperf3 -c HUB_TUNNEL_IP -B REMOTE_TUNNEL_IP -t 10&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Download Hub → Remote (reverse) ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 iperf3 -c HUB_TUNNEL_IP -B REMOTE_TUNNEL_IP -t 10 -R&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Parallel streams ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 iperf3 -c HUB_TUNNEL_IP -B REMOTE_TUNNEL_IP -t 10 -P 4&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! شاخص !! مقدار قابل قبول (تقریبی) !! تفسیر&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Throughput || صدها Mbps تا نزدیک 1 Gbps || بسته به لینک فیزیکی دو سرور&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Retr (retransmits) || نزدیک 0 || بالا = MTU، congestion، یا نیاز به BBR&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| -R vs بدون -R || هر دو بالا || اگر فقط -R کند است، TCP tuning (BBR) روی Hub و Remote&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;توضیح (۱۰۰+ کلمه):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
iperf3 تنها تستی است که throughput واقعی TCP روی تونل را اندازه می‌گیرد، نه فقط latency اولین اتصال. سرور iperf باید روی Hub و فقط روی &amp;lt;code&amp;gt;HUB_TUNNEL_IP&amp;lt;/code&amp;gt; bind شود تا ترافیک تست از WAN عبور نکند. کلاینت روی Remote با &amp;lt;code&amp;gt;-B REMOTE_TUNNEL_IP&amp;lt;/code&amp;gt; اطمینان می‌دهد تمام جریان از policy table 100 و تونل می‌رود. تست بدون &amp;lt;code&amp;gt;-R&amp;lt;/code&amp;gt; جهت Upload (Remote به Hub) را می‌سنجد؛ با &amp;lt;code&amp;gt;-R&amp;lt;/code&amp;gt; Hub ارسال می‌کند و جهت Download را می‌سنجد — در تونل‌های با RTT بالا بدون BBR ممکن است Download کندتر باشد. &amp;lt;code&amp;gt;-P 4&amp;lt;/code&amp;gt; چهار TCP موازی باز می‌کند و سقف واقعی لینک را بهتر نشان می‌دهد. Retr بالای چند صد در ۱۰ ثانیه با throughput خوب معمولاً قابل چشم‌پوشی است؛ Retr زیاد با throughput پایین یعنی MTU 1400، MSS clamp، یا congestion control را بررسی کنید. اگر iperf نزدیک ۱ Gbps است ولی کاربر x-ui کند است، مشکل throughput تونل نیست.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Step 5 — tcpdump on tunnel interface (مشاهده ترافیک زنده) ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Install ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 apt install -y tcpdump&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Capture ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 tcpdump -ni l2tpeth0 host REMOTE_TUNNEL_IP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;اجرا روی:&#039;&#039;&#039; Remote — هنگام اتصال کلاینت 3x-ui یا اجرای &amp;lt;code&amp;gt;curl --interface l2tpeth0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! مشاهده !! معنی&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| پکت‌های &amp;lt;code&amp;gt;REMOTE_TUNNEL_IP →&amp;lt;/code&amp;gt; IP خارجی || outbound از تونل فعال است (x-ui یا curl)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| پکت‌های &amp;lt;code&amp;gt;→ REMOTE_TUNNEL_IP&amp;lt;/code&amp;gt; || مسیر برگشت و NAT Hub سالم است&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| TCP 443 با تبادل داده || اتصال واقعی برقرار — Telegram، Google، Microsoft و غیره&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| UDP پورت 3478 || STUN/WebRTC (تماس ویدیو) از تونل — طبیعی&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| هیچ پکتی هنگام استفاده کلاینت || inboundTag یا routing rule در 3x-ui اشتباه است&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ARP از HUB_TUNNEL_IP || همسایگی لایه ۲ روی pseudowire — طبیعی&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;توضیح (۱۰۰+ کلمه):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
tcpdump روی &amp;lt;code&amp;gt;l2tpeth0&amp;lt;/code&amp;gt; با فیلتر &amp;lt;code&amp;gt;host REMOTE_TUNNEL_IP&amp;lt;/code&amp;gt; دقیقاً نشان می‌دهد آیا ترافیک با source تونل از پنل 3x-ui (outbound &amp;lt;code&amp;gt;l2tp-out&amp;lt;/code&amp;gt; با &amp;lt;code&amp;gt;sendThrough&amp;lt;/code&amp;gt;) عبور می‌کند یا نه. اگر هنگام باز کردن سایت در کلاینت VPN پکت‌های TCP یا UDP با source &amp;lt;code&amp;gt;REMOTE_TUNNEL_IP&amp;lt;/code&amp;gt; می‌بینید، outbound کار می‌کند حتی اگر پنل آمار ۰ بایت نشان دهد — برخی نسخه‌های پنل برای outbound نوع freedom آمار را درست به‌روز نمی‌کنند. دیدن پکت برگشتی از مقصد (مثلاً :443) یعنی Hub NAT و forward درست است. UDP به پورت 3478 معمولاً مربوط به STUN برای تماس صوتی/تصویری است و از تونل رد شدن آن طبیعی است. اگر هیچ پکتی نیست ولی curl با &amp;lt;code&amp;gt;--interface l2tpeth0&amp;lt;/code&amp;gt; کار می‌کند، کلاینت به inbound اشتباه وصل شده یا rule به outbound دیگری می‌رود. برای خروج از capture: Ctrl+C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Step 6 — L2TP protocol 115 capture (عیب‌یابی برقراری تونل) ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ابتدا نام اینترفیس WAN را پیدا کنید:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ip route get 1.1.1.1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== On Hub ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 tcpdump -ni WAN_INTERFACE_HUB host REMOTE_PUBLIC_IP and proto 115&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== On Remote ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 tcpdump -ni WAN_INTERFACE_REMOTE host HUB_PUBLIC_IP and proto 115&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
سپس روی هر دو سرور (در ترمینال جدا):&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 systemctl restart ql2tpd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! مشاهده !! تفسیر&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| پکت proto 115 دوطرفه || L2TP در حال مذاکره — اگر l2tpeth DOWN است config ID را چک کنید&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| هیچ پکت 115 || فایروال ufw، iptables، یا cloud firewall پروتکل 115 را بلاک می‌کند&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| فقط یک طرف || فایروال یک‌طرفه یا asymmetric routing&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;توضیح (۱۰۰+ کلمه):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
وقتی &amp;lt;code&amp;gt;ql2tpd&amp;lt;/code&amp;gt; در لاگ می‌نویسد &amp;lt;code&amp;gt;quiescent tunnel&amp;lt;/code&amp;gt; ولی &amp;lt;code&amp;gt;l2tpeth*&amp;lt;/code&amp;gt; در حالت DOWN است یا ping تونل ۱۰۰٪ loss دارد، باید ببینید آیا اصلاً پکت L2TPv3 با encapsulation IP (پروتکل ۱۱۵) بین دو سرور رد و بدل می‌شود. این تست روی اینترفیس WAN واقعی است نه l2tpeth — نام اینترفیس روی هر سرور متفاوت است (مثلاً eth0 روی Hub و ens160 روی VMware). tcpdump را روی هر دو سرور همزمان اجرا کنید و ql2tpd را restart کنید. اگر هیچ پکتی نیست، در ufw دستور &amp;lt;code&amp;gt;ufw allow proto 115&amp;lt;/code&amp;gt; و در پنل cloud firewall اجازه protocol 115 بین IPهای عمومی را بدهید. در برخی دیتاسنترها فقط TCP/UDP مجاز است؛ در آن صورت encap را به UDP پورت ۱۷۰۱ روی هر دو طرف تغییر دهید (فقط تونل Hub–Remote، نه لزوماً MikroTik). خطای &amp;lt;code&amp;gt;dataplane down: no such device&amp;lt;/code&amp;gt; هنگام restart معمولاً بی‌ضرر است.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Step 7 — Policy routing checklist (Remote) ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ip rule show | grep REMOTE_TUNNEL_IP&lt;br /&gt;
&lt;br /&gt;
 ip route show table 100&lt;br /&gt;
&lt;br /&gt;
 ip -br addr show l2tpeth0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! خروجی مورد انتظار !! اگر نیست&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;code&amp;gt;from REMOTE_TUNNEL_IP lookup 100&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;ip rule add from REMOTE_TUNNEL_IP lookup 100 priority 100&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;code&amp;gt;default via HUB_TUNNEL_IP dev l2tpeth0&amp;lt;/code&amp;gt; در table 100 || route default را در table 100 اضافه کنید&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| REMOTE_TUNNEL_IP/30 روی l2tpeth0 || IP و &amp;lt;code&amp;gt;ip link set l2tpeth0 up&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;توضیح (۱۰۰+ کلمه):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
selective routing روی Remote بدون تغییر default route اصلی (که از &amp;lt;code&amp;gt;REMOTE_PUBLIC_IP&amp;lt;/code&amp;gt; خارج می‌شود) با policy routing انجام می‌شود. table 100 یک routing table جداگانه است که فقط وقتی source بسته برابر &amp;lt;code&amp;gt;REMOTE_TUNNEL_IP&amp;lt;/code&amp;gt; باشد استفاده می‌شود — دقیقاً همان کاری که Xray با &amp;lt;code&amp;gt;sendThrough: &amp;quot;REMOTE_TUNNEL_IP&amp;quot;&amp;lt;/code&amp;gt; انجام می‌دهد. نباید default route اصلی را به تونل هدایت کنید چون تمام ترافیک سرور شامل SSH و پنل از تونل می‌رود. rule باید با priority مناسب (مثلاً ۱۰۰) قبل از main table اعمال شود. پس از reboot اسکریپت &amp;lt;code&amp;gt;/etc/networkd-dispatcher/routable.d/l2tp-remote-policy.sh&amp;lt;/code&amp;gt; باید همین ruleها را دوباره اعمال کند. اگر &amp;lt;code&amp;gt;ip rule&amp;lt;/code&amp;gt; درست است ولی curl از تونل fail می‌شود، مشکل در Hub NAT است نه Remote routing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Step 8 — NAT and forward checklist (Hub) ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 sysctl net.ipv4.ip_forward&lt;br /&gt;
&lt;br /&gt;
 iptables -t nat -L POSTROUTING -n -v | grep 10.0.1&lt;br /&gt;
&lt;br /&gt;
 iptables -L FORWARD -n -v | grep l2tpeth1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 WAN detection:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ip route get 1.1.1.1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! خروجی مورد انتظار !! اگر نیست&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;code&amp;gt;ip_forward = 1&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;sysctl -w net.ipv4.ip_forward=1&amp;lt;/code&amp;gt; و فایل sysctl.d&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| MASQUERADE برای subnet تونل به WAN_INTERFACE_HUB || iptables NAT POSTROUTING&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| FORWARD l2tpeth1 ↔ WAN || iptables FORWARD ACCEPT&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;توضیح (۱۰۰+ کلمه):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hub نقش gateway برای ترافیک تونل Remote را دارد. وقتی بسته‌ای با source در subnet تونل Remote (مثلاً 10.0.1.0/30) از &amp;lt;code&amp;gt;l2tpeth1&amp;lt;/code&amp;gt; وارد Hub می‌شود و مقصدش اینترنت است، kernel باید forwarding فعال داشته باشد و iptables آن را NAT کند تا مقصد پاسخ را به IP عمومی Hub بفرستد و Hub بتواند پاسخ را به تونل برگرداند. فقط NAT برای subnet تونل Remote اعمال کنید — تونل‌های MikroTik ممکن است مسیر خودشان را داشته باشند. &amp;lt;code&amp;gt;IFACE&amp;lt;/code&amp;gt; در دستورات iptables باید اینترفیس WAN واقعی Hub باشد (از &amp;lt;code&amp;gt;ip route get 1.1.1.1&amp;lt;/code&amp;gt;). پس از تنظیم، &amp;lt;code&amp;gt;netfilter-persistent save&amp;lt;/code&amp;gt; بزنید. MSS clamp روی FORWARD TCP توصیه می‌شود تا با MTU 1400 تونل سازگار باشد. بدون این بخش، ping به &amp;lt;code&amp;gt;HUB_TUNNEL_IP&amp;lt;/code&amp;gt; OK و ping به 8.8.8.8 از تونل fail می‌ماند.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Step 9 — 3x-ui / Xray outbound verification (تأیید پنل) ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
پس از تأیید OS با Step 2 و Step 5، پنل 3x-ui را تنظیم کنید.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Outbound JSON (مثال) ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
  &amp;quot;tag&amp;quot;: &amp;quot;l2tp-out&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
  &amp;quot;protocol&amp;quot;: &amp;quot;freedom&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
  &amp;quot;sendThrough&amp;quot;: &amp;quot;REMOTE_TUNNEL_IP&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
  &amp;quot;settings&amp;quot;: { &amp;quot;domainStrategy&amp;quot;: &amp;quot;UseIPv4&amp;quot; },&lt;br /&gt;
&lt;br /&gt;
  &amp;quot;mux&amp;quot;: { &amp;quot;enabled&amp;quot;: false }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Routing rules (ترتیب مهم) ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# inbound مشخص → l2tp-out&lt;br /&gt;
&lt;br /&gt;
# port 53 udp,tcp → l2tp-out&lt;br /&gt;
&lt;br /&gt;
# بقیه → direct&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;توضیح (۱۰۰+ کلمه):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
اگر تست‌های OS (curl با interface، iperf، tcpdump) موفق هستند ولی تجربه کاربر نهایی بد است، تمرکز روی 3x-ui است. outbound &amp;lt;code&amp;gt;l2tp-out&amp;lt;/code&amp;gt; باید protocol freedom با &amp;lt;code&amp;gt;sendThrough&amp;lt;/code&amp;gt; برابر IP تونل Remote باشد؛ mux را false بگذارید. حداقل دو routing rule لازم است: یکی inboundTag دقیق inbound مورد نظر به l2tp-out، و دیگری DNS (پورت ۵۳) به l2tp-out — بدون rule DNS برخی سایت‌ها کند باز می‌شوند یا timeout می‌خورند چون resolve از مسیر مستقیم می‌رود. ruleهای l2tp-out باید بالای direct و geoip باشند. آمار صفر در پنل به‌معنی قطع ترافیک نیست؛ tcpdump (Step 5) معیار قطعی است. IP کلاینت از سرویس myip باید &amp;lt;code&amp;gt;HUB_PUBLIC_IP&amp;lt;/code&amp;gt; باشد. latency حدود نیم ثانیه برای اولین HTTPS از تونل طبیعی است و با iperf 900 Mbps تناقض ندارد.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Step 10 — TCP tuning note (BBR — اختیاری برای کیفیت) ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
فایل &amp;lt;code&amp;gt;/etc/sysctl.d/99-tcp-tune.conf&amp;lt;/code&amp;gt; با BBR روی Hub و Remote — پس از تأیید تونل.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;توضیح (۱۰۰+ کلمه):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
تنظیم BBR و بافرهای TCP روی throughput بعد از برقراری اتصال اثر دارد، نه روی ping یا اولین DNS resolve. اگر iperf در جهت Download (&amp;lt;code&amp;gt;-R&amp;lt;/code&amp;gt;) بسیار کندتر از Upload است در حالی که Upload بالاست، فعال‌سازی &amp;lt;code&amp;gt;net.ipv4.tcp_congestion_control=bbr&amp;lt;/code&amp;gt; و &amp;lt;code&amp;gt;net.core.default_qdisc=fq&amp;lt;/code&amp;gt; روی هر دو سرور توصیه می‌شود. این تنظیمات جایگزین NAT یا policy routing نمی‌شوند. اگر curl از تونل timeout می‌خورد، BBR کمکی نمی‌کند — اول Step 7 و 8 را کامل کنید. پس از اعمال sysctl، یک بار iperf -R را تکرار کنید و Retr و bitrate را مقایسه کنید. BBR برای ترافیک x-ui کلاینت وقتی تونل از نظر OS تأیید شده مفید است.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting decision tree (درخت تصمیم عیب‌یابی) ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! علامت !! احتمال اول !! اقدام&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ping تونل fail || L2TP / proto 115 || Step 1، Step 6&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ping تونل OK، ping 8.8.8.8 از تونل fail || NAT Hub || Step 8&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| curl مستقیم OK، curl --interface fail || policy routing || Step 7&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| curl --interface → HUB_PUBLIC_IP || OS سالم — x-ui || Step 5، Step 9&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| iperf کند فقط -R || TCP tuning || Step 10&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| همه OS OK، کلاینت کند || DNS rule / latency مسیر Hub || Step 2b، Step 9&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| tcpdump هنگام کلاینت خالی || inboundTag / routing || Step 9&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Expected results summary (جدول خلاصه) ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Test !! Server !! Expected on success&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ping HUB_TUNNEL_IP || Remote || 0% packet loss&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ping REMOTE_TUNNEL_IP || Hub || 0% packet loss&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| curl (no interface) || Remote || REMOTE_PUBLIC_IP&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| curl --interface l2tpeth0 || Remote || HUB_PUBLIC_IP&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| curl timing via tunnel || Remote || Total ~0.4–1s (مسیر Hub)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| curl timing direct || Remote || معمولاً کمتر از tunnel&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ping -I l2tpeth0 8.8.8.8 || Remote || 0% packet loss&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| iperf3 upload || Remote || high Mbps, low Retr&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| iperf3 -R download || Remote || high Mbps, low Retr (با BBR)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| tcpdump l2tpeth0 || Remote || پکت REMOTE_TUNNEL_IP هنگام کلاینت&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Client IP (x-ui) || Client || HUB_PUBLIC_IP&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Placeholder reference (جدول جایگزین‌ها) ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Placeholder !! توضیح !! مثال subnet (غیر عمومی)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;code&amp;gt;HUB_PUBLIC_IP&amp;lt;/code&amp;gt; || IP عمومی سرور Hub || —&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;code&amp;gt;REMOTE_PUBLIC_IP&amp;lt;/code&amp;gt; || IP عمومی سرور Remote || —&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;code&amp;gt;HUB_TUNNEL_IP&amp;lt;/code&amp;gt; || IP تونل روی Hub || 10.0.1.1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;code&amp;gt;REMOTE_TUNNEL_IP&amp;lt;/code&amp;gt; || IP تونل روی Remote || 10.0.1.2&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;code&amp;gt;WAN_INTERFACE_HUB&amp;lt;/code&amp;gt; || اینترفیس WAN Hub || eth0&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;code&amp;gt;WAN_INTERFACE_REMOTE&amp;lt;/code&amp;gt; || اینترفیس WAN Remote || ens160&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Recommended test order (ترتیب پیشنهادی) ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Prerequisites و نصب iperf3/tcpdump&lt;br /&gt;
&lt;br /&gt;
# Step 1 — ping تونل دوطرفه&lt;br /&gt;
&lt;br /&gt;
# Step 2 — curl IP مستقیم vs تونل&lt;br /&gt;
&lt;br /&gt;
# Step 2b — curl timing (اختیاری — تفکیک کندی)&lt;br /&gt;
&lt;br /&gt;
# Step 3 — ping 8.8.8.8 از تونل&lt;br /&gt;
&lt;br /&gt;
# Step 8 — اگر Step 3 fail&lt;br /&gt;
&lt;br /&gt;
# Step 7 — اگر Step 2 interface fail&lt;br /&gt;
&lt;br /&gt;
# Step 4 — iperf3 throughput&lt;br /&gt;
&lt;br /&gt;
# Step 10 — BBR اگر -R کند است&lt;br /&gt;
&lt;br /&gt;
# Step 5 — tcpdump هنگام کلاینت 3x-ui&lt;br /&gt;
&lt;br /&gt;
# Step 9 — تنظیم و تأیید پنل&lt;br /&gt;
&lt;br /&gt;
# Step 6 — فقط اگر تونل اصلاً up نمی‌شود&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:L2TPv3]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Ubuntu]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Networking]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Testing]]&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Ubuntu_To_Ubuntu_Connection_Test&amp;diff=177</id>
		<title>Ubuntu To Ubuntu Connection Test</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Ubuntu_To_Ubuntu_Connection_Test&amp;diff=177"/>
		<updated>2026-07-06T15:47:00Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Mikrotik Ubuntu L2TPv3 — Testing Hub and Remote Ubuntu ==&lt;br /&gt;
&lt;br /&gt;
این صفحه دستورهای تست و عیب‌یابی تونل L2TPv3 بین &#039;&#039;&#039;Hub Ubuntu&#039;&#039;&#039; و &#039;&#039;&#039;Remote Ubuntu&#039;&#039;&#039; را پوشش می‌دهد. ترتیب اجرا از ساده به پیشرفته است.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;مرتبط:&#039;&#039;&#039; [[Mikrotik_Ubuntu_L2TPv3]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Topology (این سناریو) ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! نقش !! Public IP (placeholder) !! Tunnel IP (placeholder) !! Interface&lt;br /&gt;
|-&lt;br /&gt;
| Hub || &amp;lt;code&amp;gt;HUB_PUBLIC_IP&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;HUB_TUNNEL_IP&amp;lt;/code&amp;gt;/30 || l2tpeth1&lt;br /&gt;
|-&lt;br /&gt;
| Remote || &amp;lt;code&amp;gt;REMOTE_PUBLIC_IP&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;REMOTE_TUNNEL_IP&amp;lt;/code&amp;gt;/30 || l2tpeth0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;مثال subnet تونل (قابل تغییر در طرح IP شما):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;HUB_TUNNEL_IP&amp;lt;/code&amp;gt; = 10.0.1.1&lt;br /&gt;
* &amp;lt;code&amp;gt;REMOTE_TUNNEL_IP&amp;lt;/code&amp;gt; = 10.0.1.2&lt;br /&gt;
* Subnet NAT روی Hub: &amp;lt;code&amp;gt;10.0.1.0/30&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites (پیش‌نیاز قبل از تست) ===&lt;br /&gt;
&lt;br /&gt;
قبل از اجرای تست‌ها موارد زیر باید برقرار باشند:&lt;br /&gt;
&lt;br /&gt;
* سرویس &amp;lt;code&amp;gt;ql2tpd&amp;lt;/code&amp;gt; روی هر دو سرور در وضعیت &amp;lt;code&amp;gt;active (running)&amp;lt;/code&amp;gt; باشد&lt;br /&gt;
* اینترفیس تونل IP داشته باشد: Hub روی &amp;lt;code&amp;gt;l2tpeth1&amp;lt;/code&amp;gt;، Remote روی &amp;lt;code&amp;gt;l2tpeth0&amp;lt;/code&amp;gt;&lt;br /&gt;
* روی Hub قوانین NAT و FORWARD برای subnet تونل Remote اعمال شده باشد&lt;br /&gt;
* روی Remote policy routing با &amp;lt;code&amp;gt;from REMOTE_TUNNEL_IP lookup 100&amp;lt;/code&amp;gt; فعال باشد&lt;br /&gt;
* برای تست IP عمومی از سرویس قابل دسترس در شبکه خودتان استفاده کنید (مثال: &amp;lt;code&amp;gt;https://api.ipnote.ir/myip&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Step 1 — Ping tunnel endpoints (تست لایه تونل) ===&lt;br /&gt;
&lt;br /&gt;
بررسی می‌کند بسته ICMP بین دو انتهای تونل بدون خروج به اینترنت رد و بدل می‌شود.&lt;br /&gt;
&lt;br /&gt;
==== From Remote to Hub ====&lt;br /&gt;
&lt;br /&gt;
 ping -c 4 HUB_TUNNEL_IP&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;توضیح:&#039;&#039;&#039; اگر پاسخ با تأخیر پایدار و بدون packet loss دریافت شد، تونل L2TPv3 سالم است.&lt;br /&gt;
&lt;br /&gt;
==== From Hub to Remote ====&lt;br /&gt;
&lt;br /&gt;
 ping -c 4 REMOTE_TUNNEL_IP&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;توضیح:&#039;&#039;&#039; پینگ دوطرفه تأیید می‌کند هر دو سرور اینترفیس تونل را بالا نگه داشته‌اند.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! نتیجه !! تفسیر&lt;br /&gt;
|-&lt;br /&gt;
| 0% packet loss || تونل برقرار است — به مرحله بعد بروید&lt;br /&gt;
|-&lt;br /&gt;
| 100% packet loss || ql2tpd، فایروال proto 115 یا IP اینترفیس را بررسی کنید&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Step 2 — IP egress test (تمایز اینترنت عادی و تونل) ===&lt;br /&gt;
&lt;br /&gt;
مهم‌ترین تست روزمره برای selective routing روی سرور Remote.&lt;br /&gt;
&lt;br /&gt;
==== Normal internet (بدون تونل) — run on Remote ====&lt;br /&gt;
&lt;br /&gt;
 curl -4 -s &amp;quot;https://api.ipnote.ir/myip&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;توضیح:&#039;&#039;&#039; باید IP عمومی خود سرور Remote یعنی &amp;lt;code&amp;gt;REMOTE_PUBLIC_IP&amp;lt;/code&amp;gt; نمایش داده شود.&lt;br /&gt;
&lt;br /&gt;
==== Forced via tunnel — run on Remote ====&lt;br /&gt;
&lt;br /&gt;
 curl -4 --interface l2tpeth0 -s &amp;quot;https://api.ipnote.ir/myip&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;توضیح:&#039;&#039;&#039; باید IP عمومی Hub یعنی &amp;lt;code&amp;gt;HUB_PUBLIC_IP&amp;lt;/code&amp;gt; برگردد؛ یعنی NAT روی Hub درست است.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! خروجی curl !! معنی&lt;br /&gt;
|-&lt;br /&gt;
| REMOTE_PUBLIC_IP || ترافیک از WAN مستقیم خارج شده&lt;br /&gt;
|-&lt;br /&gt;
| HUB_PUBLIC_IP || ترافیک از تونل و NAT Hub خارج شده&lt;br /&gt;
|-&lt;br /&gt;
| timeout / خطا || policy routing Remote یا NAT Hub ناقص است&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Step 3 — Ping internet via tunnel (ICMP از source تونل) ===&lt;br /&gt;
&lt;br /&gt;
 ping -4 -I l2tpeth0 -c 4 8.8.8.8&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;اجرا روی:&#039;&#039;&#039; Remote&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;توضیح:&#039;&#039;&#039; بسته با source &amp;lt;code&amp;gt;REMOTE_TUNNEL_IP&amp;lt;/code&amp;gt; ارسال می‌شود و مسیر forward و NAT روی Hub را تأیید می‌کند.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! نتیجه !! تفسیر&lt;br /&gt;
|-&lt;br /&gt;
| پاسخ از 8.8.8.8 || forward و NAT روی Hub فعال است&lt;br /&gt;
|-&lt;br /&gt;
| 100% loss ولی ping HUB_TUNNEL_IP OK || تقریباً قطعی مشکل NAT یا FORWARD روی Hub است&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Step 4 — Throughput test with iperf3 (تست سرعت بین دو سرور) ===&lt;br /&gt;
&lt;br /&gt;
اندازه‌گیری throughput واقعی تونل؛ برای ارزیابی BBR و تنظیمات TCP مفید است.&lt;br /&gt;
&lt;br /&gt;
==== Install (یک‌بار روی هر دو سرور) ====&lt;br /&gt;
&lt;br /&gt;
 apt install -y iperf3&lt;br /&gt;
&lt;br /&gt;
==== Server on Hub ====&lt;br /&gt;
&lt;br /&gt;
 iperf3 -s -B HUB_TUNNEL_IP&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;توضیح:&#039;&#039;&#039; iperf3 فقط روی آدرس تونل Hub گوش می‌دهد تا ترافیک تست از WAN عبور نکند.&lt;br /&gt;
&lt;br /&gt;
==== Upload Remote → Hub ====&lt;br /&gt;
&lt;br /&gt;
 iperf3 -c HUB_TUNNEL_IP -B REMOTE_TUNNEL_IP -t 10&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;اجرا روی:&#039;&#039;&#039; Remote&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;توضیح:&#039;&#039;&#039; سرعت ارسال از Remote به Hub را در ده ثانیه اندازه می‌گیرد؛ Retr باید نزدیک صفر باشد.&lt;br /&gt;
&lt;br /&gt;
==== Download Hub → Remote (reverse) ====&lt;br /&gt;
&lt;br /&gt;
 iperf3 -c HUB_TUNNEL_IP -B REMOTE_TUNNEL_IP -t 10 -R&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;اجرا روی:&#039;&#039;&#039; Remote&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;توضیح:&#039;&#039;&#039; جهت دانلود را تست می‌کند؛ بدون BBR معمولاً کندتر از آپلود است.&lt;br /&gt;
&lt;br /&gt;
==== Parallel streams ====&lt;br /&gt;
&lt;br /&gt;
 iperf3 -c HUB_TUNNEL_IP -B REMOTE_TUNNEL_IP -t 10 -P 4&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;توضیح:&#039;&#039;&#039; چهار اتصال همزمان throughput کل تونل را بهتر نشان می‌دهد.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! شاخص !! مقدار قابل قبول (تقریبی)&lt;br /&gt;
|-&lt;br /&gt;
| Throughput || صدها Mbps بسته به لینک&lt;br /&gt;
|-&lt;br /&gt;
| Retr || نزدیک 0 — بالا یعنی ازدحام یا MTU&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Step 5 — Live packet capture (tcpdump روی تونل) ===&lt;br /&gt;
&lt;br /&gt;
 tcpdump -ni l2tpeth0 host REMOTE_TUNNEL_IP&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;اجرا روی:&#039;&#039;&#039; Remote&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;توضیح:&#039;&#039;&#039; هنگام اتصال کلاینت x-ui یا &amp;lt;code&amp;gt;curl --interface l2tpeth0&amp;lt;/code&amp;gt; باید پکت با source &amp;lt;code&amp;gt;REMOTE_TUNNEL_IP&amp;lt;/code&amp;gt; دیده شود.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! مشاهده !! معنی&lt;br /&gt;
|-&lt;br /&gt;
| پکت REMOTE_TUNNEL_IP → اینترنت || outbound از تونل فعال است&lt;br /&gt;
|-&lt;br /&gt;
| هیچ پکتی || routing rule یا inboundTag در x-ui اشتباه است&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Step 6 — L2TP protocol 115 capture (عیب‌یابی برقراری تونل) ===&lt;br /&gt;
&lt;br /&gt;
وقتی اینترفیس &amp;lt;code&amp;gt;l2tpeth&amp;lt;/code&amp;gt; ساخته می‌شود ولی DOWN است یا ping صفر است.&lt;br /&gt;
&lt;br /&gt;
ابتدا نام اینترفیس WAN را پیدا کنید:&lt;br /&gt;
&lt;br /&gt;
 ip route get 1.1.1.1&lt;br /&gt;
&lt;br /&gt;
مقدار بعد از &amp;lt;code&amp;gt;dev&amp;lt;/code&amp;gt; را در دستورات زیر جایگزین کنید.&lt;br /&gt;
&lt;br /&gt;
==== On Hub ====&lt;br /&gt;
&lt;br /&gt;
 tcpdump -ni WAN_INTERFACE_HUB host REMOTE_PUBLIC_IP and proto 115&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;توضیح:&#039;&#039;&#039; پکت‌های L2TPv3 با encapsulation IP بین Hub و Remote را روی WAN Hub نمایش می‌دهد.&lt;br /&gt;
&lt;br /&gt;
==== On Remote ====&lt;br /&gt;
&lt;br /&gt;
 tcpdump -ni WAN_INTERFACE_REMOTE host HUB_PUBLIC_IP and proto 115&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;توضیح:&#039;&#039;&#039; نام اینترفیس WAN روی Remote ممکن است &amp;lt;code&amp;gt;eth0&amp;lt;/code&amp;gt;، &amp;lt;code&amp;gt;ens160&amp;lt;/code&amp;gt; یا غیره باشد.&lt;br /&gt;
&lt;br /&gt;
سپس روی هر دو سرور:&lt;br /&gt;
&lt;br /&gt;
 systemctl restart ql2tpd&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;توضیح:&#039;&#039;&#039; اگر هیچ پکت 115 دیده نشد، فایروال datacenter پروتکل 115 را بلاک می‌کند.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Step 7 — Quick checklist policy routing (Remote) ===&lt;br /&gt;
&lt;br /&gt;
 ip rule show | grep REMOTE_TUNNEL_IP&lt;br /&gt;
 ip route show table 100&lt;br /&gt;
 ip -br addr show l2tpeth0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;توضیح:&#039;&#039;&#039; بدون rule &amp;lt;code&amp;gt;from REMOTE_TUNNEL_IP lookup 100&amp;lt;/code&amp;gt; و default در table 100، x-ui outbound کار نمی‌کند.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Step 8 — Quick checklist NAT on Hub ===&lt;br /&gt;
&lt;br /&gt;
 sysctl net.ipv4.ip_forward&lt;br /&gt;
 iptables -t nat -L POSTROUTING -n -v | grep 10.0.1&lt;br /&gt;
 iptables -L FORWARD -n -v | grep l2tpeth1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;توضیح:&#039;&#039;&#039; &amp;lt;code&amp;gt;ip_forward=1&amp;lt;/code&amp;gt; و MASQUERADE برای subnet تونل Remote الزامی است.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Expected results summary (جدول خلاصه) ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Test !! Server !! Expected on success&lt;br /&gt;
|-&lt;br /&gt;
| ping HUB_TUNNEL_IP || Remote || 0% packet loss&lt;br /&gt;
|-&lt;br /&gt;
| ping REMOTE_TUNNEL_IP || Hub || 0% packet loss&lt;br /&gt;
|-&lt;br /&gt;
| curl (no interface) || Remote || REMOTE_PUBLIC_IP&lt;br /&gt;
|-&lt;br /&gt;
| curl --interface l2tpeth0 || Remote || HUB_PUBLIC_IP&lt;br /&gt;
|-&lt;br /&gt;
| ping -I l2tpeth0 8.8.8.8 || Remote || 0% packet loss&lt;br /&gt;
|-&lt;br /&gt;
| iperf3 -c HUB_TUNNEL_IP -B REMOTE_TUNNEL_IP || Remote || high throughput, low Retr&lt;br /&gt;
|-&lt;br /&gt;
| Client IP (x-ui via l2tp-out) || Client || HUB_PUBLIC_IP&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Placeholder reference (جدول جایگزین‌ها) ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Placeholder !! توضیح !! مثال (فقط در استقرار خودتان)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;HUB_PUBLIC_IP&amp;lt;/code&amp;gt; || IP عمومی سرور Hub || —&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;REMOTE_PUBLIC_IP&amp;lt;/code&amp;gt; || IP عمومی سرور Remote || —&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;HUB_TUNNEL_IP&amp;lt;/code&amp;gt; || IP تونل روی Hub || 10.0.1.1&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;REMOTE_TUNNEL_IP&amp;lt;/code&amp;gt; || IP تونل روی Remote || 10.0.1.2&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;WAN_INTERFACE_HUB&amp;lt;/code&amp;gt; || اینترفیس WAN Hub || eth0&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;WAN_INTERFACE_REMOTE&amp;lt;/code&amp;gt; || اینترفیس WAN Remote || ens160&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Recommended test order (ترتیب پیشنهادی) ===&lt;br /&gt;
&lt;br /&gt;
# Ping tunnel endpoints (Step 1)&lt;br /&gt;
# curl IP test (Step 2)&lt;br /&gt;
# ping 8.8.8.8 via tunnel (Step 3)&lt;br /&gt;
# iperf3 throughput (Step 4) — optional for quality&lt;br /&gt;
# tcpdump — if x-ui issue (Step 5)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Category:L2TPv3]]&lt;br /&gt;
[[Category:Ubuntu]]&lt;br /&gt;
[[Category:Networking]]&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Ubuntu_To_Ubuntu_Connection_Test&amp;diff=176</id>
		<title>Ubuntu To Ubuntu Connection Test</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Ubuntu_To_Ubuntu_Connection_Test&amp;diff=176"/>
		<updated>2026-07-06T15:45:08Z</updated>

		<summary type="html">&lt;p&gt;Karavi: Created page with &amp;quot;== Mikrotik Ubuntu L2TPv3 — Testing Hub and s23 ==  این صفحه دستورهای تست و عیب‌یابی تونل L2TPv3 بین &amp;#039;&amp;#039;&amp;#039;Hub Ubuntu&amp;#039;&amp;#039;&amp;#039; و &amp;#039;&amp;#039;&amp;#039;Remote s23&amp;#039;&amp;#039;&amp;#039; را پوشش می‌دهد. ترتیب اجرا از ساده به پیشرفته است.  &amp;#039;&amp;#039;&amp;#039;مرتبط:&amp;#039;&amp;#039;&amp;#039; Mikrotik_Ubuntu_L2TPv3  ----  === Topology (این سناریو) ===  {| class=&amp;quot;wikitable&amp;quot; |- ! نقش !! Hostname !! Public IP !! Tunnel IP !! Interface |- | Hub || m5-ubuntu-4gb-nbg1 |...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Mikrotik Ubuntu L2TPv3 — Testing Hub and s23 ==&lt;br /&gt;
&lt;br /&gt;
این صفحه دستورهای تست و عیب‌یابی تونل L2TPv3 بین &#039;&#039;&#039;Hub Ubuntu&#039;&#039;&#039; و &#039;&#039;&#039;Remote s23&#039;&#039;&#039; را پوشش می‌دهد. ترتیب اجرا از ساده به پیشرفته است.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;مرتبط:&#039;&#039;&#039; [[Mikrotik_Ubuntu_L2TPv3]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Topology (این سناریو) ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! نقش !! Hostname !! Public IP !! Tunnel IP !! Interface&lt;br /&gt;
|-&lt;br /&gt;
| Hub || m5-ubuntu-4gb-nbg1 || 157.90.26.4 || 10.0.1.1/30 || l2tpeth1&lt;br /&gt;
|-&lt;br /&gt;
| Remote || s23 || 78.157.42.206 || 10.0.1.2/30 || l2tpeth0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites (پیش‌نیاز قبل از تست) ===&lt;br /&gt;
&lt;br /&gt;
قبل از اجرای تست‌ها موارد زیر باید برقرار باشند:&lt;br /&gt;
&lt;br /&gt;
* سرویس &amp;lt;code&amp;gt;ql2tpd&amp;lt;/code&amp;gt; روی هر دو سرور در وضعیت &amp;lt;code&amp;gt;active (running)&amp;lt;/code&amp;gt; باشد&lt;br /&gt;
* اینترفیس تونل IP داشته باشد: Hub روی &amp;lt;code&amp;gt;l2tpeth1&amp;lt;/code&amp;gt;، s23 روی &amp;lt;code&amp;gt;l2tpeth0&amp;lt;/code&amp;gt;&lt;br /&gt;
* روی Hub قوانین NAT و FORWARD برای subnet &amp;lt;code&amp;gt;10.0.1.0/30&amp;lt;/code&amp;gt; اعمال شده باشد&lt;br /&gt;
* روی s23 policy routing با &amp;lt;code&amp;gt;from 10.0.1.2 lookup 100&amp;lt;/code&amp;gt; فعال باشد&lt;br /&gt;
* برای تست IP در ایران از &amp;lt;code&amp;gt;https://api.ipnote.ir/myip&amp;lt;/code&amp;gt; استفاده کنید (نه ifconfig.me)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Step 1 — Ping tunnel endpoints (تست لایه تونل) ===&lt;br /&gt;
&lt;br /&gt;
بررسی می‌کند بسته ICMP بین دو انتهای تونل بدون خروج به اینترنت رد و بدل می‌شود.&lt;br /&gt;
&lt;br /&gt;
==== From s23 to Hub ====&lt;br /&gt;
&lt;br /&gt;
 ping -c 4 10.0.1.1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;توضیح:&#039;&#039;&#039; اگر پاسخ با تأخیر پایدار حدود ۷۰ms و بدون packet loss دریافت شد، تونل L2TPv3 سالم است.&lt;br /&gt;
&lt;br /&gt;
==== From Hub to s23 ====&lt;br /&gt;
&lt;br /&gt;
 ping -c 4 10.0.1.2&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;توضیح:&#039;&#039;&#039; پینگ دوطرفه تأیید می‌کند هر دو سرور اینترفیس تونل را بالا نگه داشته‌اند.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! نتیجه !! تفسیر&lt;br /&gt;
|-&lt;br /&gt;
| 0% packet loss || تونل برقرار است — به مرحله بعد بروید&lt;br /&gt;
|-&lt;br /&gt;
| 100% packet loss || ql2tpd، فایروال proto 115 یا IP اینترفیس را بررسی کنید&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Step 2 — IP egress test (تمایز اینترنت عادی و تونل) ===&lt;br /&gt;
&lt;br /&gt;
مهم‌ترین تست روزمره برای selective routing روی سرور s23.&lt;br /&gt;
&lt;br /&gt;
==== Normal internet (بدون تونل) — run on s23 ====&lt;br /&gt;
&lt;br /&gt;
 curl -4 -s &amp;quot;https://api.ipnote.ir/myip&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;توضیح:&#039;&#039;&#039; باید IP عمومی خود سرور s23 یعنی &amp;lt;code&amp;gt;78.157.42.206&amp;lt;/code&amp;gt; نمایش داده شود.&lt;br /&gt;
&lt;br /&gt;
==== Forced via tunnel — run on s23 ====&lt;br /&gt;
&lt;br /&gt;
 curl -4 --interface l2tpeth0 -s &amp;quot;https://api.ipnote.ir/myip&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;توضیح:&#039;&#039;&#039; باید IP عمومی Hub یعنی &amp;lt;code&amp;gt;157.90.26.4&amp;lt;/code&amp;gt; برگردد؛ یعنی NAT روی Hub درست است.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! خروجی curl !! معنی&lt;br /&gt;
|-&lt;br /&gt;
| 78.157.42.206 || ترافیک از WAN مستقیم خارج شده&lt;br /&gt;
|-&lt;br /&gt;
| 157.90.26.4 || ترافیک از تونل و NAT Hub خارج شده&lt;br /&gt;
|-&lt;br /&gt;
| timeout / خطا || policy routing s23 یا NAT Hub ناقص است&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Step 3 — Ping internet via tunnel (ICMP از source تونل) ===&lt;br /&gt;
&lt;br /&gt;
 ping -4 -I l2tpeth0 -c 4 8.8.8.8&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;اجرا روی:&#039;&#039;&#039; s23&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;توضیح:&#039;&#039;&#039; بسته با source &amp;lt;code&amp;gt;10.0.1.2&amp;lt;/code&amp;gt; ارسال می‌شود و مسیر forward و NAT روی Hub را تأیید می‌کند.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! نتیجه !! تفسیر&lt;br /&gt;
|-&lt;br /&gt;
| پاسخ از 8.8.8.8 || forward و NAT روی Hub فعال است&lt;br /&gt;
|-&lt;br /&gt;
| 100% loss ولی ping 10.0.1.1 OK || تقریباً قطعی مشکل NAT یا FORWARD روی Hub است&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Step 4 — Throughput test with iperf3 (تست سرعت بین دو سرور) ===&lt;br /&gt;
&lt;br /&gt;
اندازه‌گیری throughput واقعی تونل؛ برای ارزیابی BBR و تنظیمات TCP مفید است.&lt;br /&gt;
&lt;br /&gt;
==== Install (یک‌بار روی هر دو سرور) ====&lt;br /&gt;
&lt;br /&gt;
 apt install -y iperf3&lt;br /&gt;
&lt;br /&gt;
==== Server on Hub ====&lt;br /&gt;
&lt;br /&gt;
 iperf3 -s -B 10.0.1.1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;توضیح:&#039;&#039;&#039; iperf3 فقط روی آدرس تونل Hub گوش می‌دهد تا ترافیک تست از WAN عبور نکند.&lt;br /&gt;
&lt;br /&gt;
==== Upload s23 → Hub ====&lt;br /&gt;
&lt;br /&gt;
 iperf3 -c 10.0.1.1 -B 10.0.1.2 -t 10&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;اجرا روی:&#039;&#039;&#039; s23&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;توضیح:&#039;&#039;&#039; سرعت ارسال از Remote به Hub را در ده ثانیه اندازه می‌گیرد؛ Retr باید نزدیک صفر باشد.&lt;br /&gt;
&lt;br /&gt;
==== Download Hub → s23 (reverse) ====&lt;br /&gt;
&lt;br /&gt;
 iperf3 -c 10.0.1.1 -B 10.0.1.2 -t 10 -R&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;اجرا روی:&#039;&#039;&#039; s23&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;توضیح:&#039;&#039;&#039; جهت دانلود را تست می‌کند؛ بدون BBR معمولاً کندتر از آپلود است.&lt;br /&gt;
&lt;br /&gt;
==== Parallel streams ====&lt;br /&gt;
&lt;br /&gt;
 iperf3 -c 10.0.1.1 -B 10.0.1.2 -t 10 -P 4&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;توضیح:&#039;&#039;&#039; چهار اتصال همزمان throughput کل تونل را بهتر نشان می‌دهد.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! شاخص !! مقدار قابل قبول (تقریبی)&lt;br /&gt;
|-&lt;br /&gt;
| Throughput || صدها Mbps بسته به لینک&lt;br /&gt;
|-&lt;br /&gt;
| Retr || نزدیک 0 — بالا یعنی ازدحام یا MTU&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Step 5 — Live packet capture (tcpdump روی تونل) ===&lt;br /&gt;
&lt;br /&gt;
 tcpdump -ni l2tpeth0 host 10.0.1.2&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;اجرا روی:&#039;&#039;&#039; s23&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;توضیح:&#039;&#039;&#039; هنگام اتصال کلاینت x-ui یا &amp;lt;code&amp;gt;curl --interface l2tpeth0&amp;lt;/code&amp;gt; باید پکت با source &amp;lt;code&amp;gt;10.0.1.2&amp;lt;/code&amp;gt; دیده شود.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! مشاهده !! معنی&lt;br /&gt;
|-&lt;br /&gt;
| پکت 10.0.1.2 → اینترنت || outbound از تونل فعال است&lt;br /&gt;
|-&lt;br /&gt;
| هیچ پکتی || routing rule یا inboundTag در x-ui اشتباه است&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Step 6 — L2TP protocol 115 capture (عیب‌یابی برقراری تونل) ===&lt;br /&gt;
&lt;br /&gt;
وقتی اینترفیس &amp;lt;code&amp;gt;l2tpeth&amp;lt;/code&amp;gt; ساخته می‌شود ولی DOWN است یا ping صفر است.&lt;br /&gt;
&lt;br /&gt;
==== On Hub ====&lt;br /&gt;
&lt;br /&gt;
 tcpdump -ni eth0 host 78.157.42.206 and proto 115&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;توضیح:&#039;&#039;&#039; پکت‌های L2TPv3 با encapsulation IP بین Hub و s23 را روی WAN Hub نمایش می‌دهد.&lt;br /&gt;
&lt;br /&gt;
==== On s23 ====&lt;br /&gt;
&lt;br /&gt;
 tcpdump -ni ens160 host 157.90.26.4 and proto 115&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;توضیح:&#039;&#039;&#039; اینترفیس WAN روی s23 معمولاً &amp;lt;code&amp;gt;ens160&amp;lt;/code&amp;gt; است نه &amp;lt;code&amp;gt;eth0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
سپس روی هر دو سرور:&lt;br /&gt;
&lt;br /&gt;
 systemctl restart ql2tpd&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;توضیح:&#039;&#039;&#039; اگر هیچ پکت 115 دیده نشد، فایروال datacenter پروتکل 115 را بلاک می‌کند.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Step 7 — Quick checklist policy routing (s23) ===&lt;br /&gt;
&lt;br /&gt;
 ip rule show | grep 10.0.1.2&lt;br /&gt;
 ip route show table 100&lt;br /&gt;
 ip -br addr show l2tpeth0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;توضیح:&#039;&#039;&#039; بدون rule &amp;lt;code&amp;gt;from 10.0.1.2 lookup 100&amp;lt;/code&amp;gt; و default در table 100، x-ui outbound کار نمی‌کند.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Step 8 — Quick checklist NAT on Hub ===&lt;br /&gt;
&lt;br /&gt;
 sysctl net.ipv4.ip_forward&lt;br /&gt;
 iptables -t nat -L POSTROUTING -n -v | grep 10.0.1&lt;br /&gt;
 iptables -L FORWARD -n -v | grep l2tpeth1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;توضیح:&#039;&#039;&#039; &amp;lt;code&amp;gt;ip_forward=1&amp;lt;/code&amp;gt; و MASQUERADE برای &amp;lt;code&amp;gt;10.0.1.0/30&amp;lt;/code&amp;gt; الزامی است.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Expected results summary (جدول خلاصه) ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Test !! Server !! Expected on success&lt;br /&gt;
|-&lt;br /&gt;
| ping 10.0.1.1 || s23 || 0% packet loss&lt;br /&gt;
|-&lt;br /&gt;
| ping 10.0.1.2 || Hub || 0% packet loss&lt;br /&gt;
|-&lt;br /&gt;
| curl (no interface) || s23 || 78.157.42.206&lt;br /&gt;
|-&lt;br /&gt;
| curl --interface l2tpeth0 || s23 || 157.90.26.4&lt;br /&gt;
|-&lt;br /&gt;
| ping -I l2tpeth0 8.8.8.8 || s23 || 0% packet loss&lt;br /&gt;
|-&lt;br /&gt;
| iperf3 -c 10.0.1.1 -B 10.0.1.2 || s23 || high throughput, low Retr&lt;br /&gt;
|-&lt;br /&gt;
| Client IP (x-ui via l2tp-out) || Client || 157.90.26.4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Recommended test order (ترتیب پیشنهادی) ===&lt;br /&gt;
&lt;br /&gt;
# Ping tunnel endpoints (Step 1)&lt;br /&gt;
# curl IP test (Step 2)&lt;br /&gt;
# ping 8.8.8.8 via tunnel (Step 3)&lt;br /&gt;
# iperf3 throughput (Step 4) — optional for quality&lt;br /&gt;
# tcpdump — if x-ui issue (Step 5)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Category:L2TPv3]]&lt;br /&gt;
[[Category:Ubuntu]]&lt;br /&gt;
[[Category:Networking]]&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Mikrotik_Ubuntu_L2TPv3_one_server_six_mikrotik_two_ubuntu&amp;diff=175</id>
		<title>Mikrotik Ubuntu L2TPv3 one server six mikrotik two ubuntu</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Mikrotik_Ubuntu_L2TPv3_one_server_six_mikrotik_two_ubuntu&amp;diff=175"/>
		<updated>2026-07-06T06:45:28Z</updated>

		<summary type="html">&lt;p&gt;Karavi: Created page with &amp;quot;== L2TPv3 Tunnel: One Linux Server to 6 MikroTik Routers and 2 Ubuntu Servers (Template) ==  === IP Address Plan ===  {| class=&amp;quot;wikitable&amp;quot; |- ! # !! Peer type !! Peer public IP !! Server tunnel IP !! Client tunnel IP !! tid !! ptid !! sid !! psid !! Hub interface |- | 1 || MikroTik || MIKROTIK_1_IP || 10.0.1.1/30 || 10.0.1.2/30 || 101 || 201 || 1001 || 2001 || l2tpeth1 |- | 2 || MikroTik || MIKROTIK_2_IP || 10.0.2.1/30 || 10.0.2.2/30 || 102 || 202 || 1002 || 2002 || l2tp...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== L2TPv3 Tunnel: One Linux Server to 6 MikroTik Routers and 2 Ubuntu Servers (Template) ==&lt;br /&gt;
&lt;br /&gt;
=== IP Address Plan ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! # !! Peer type !! Peer public IP !! Server tunnel IP !! Client tunnel IP !! tid !! ptid !! sid !! psid !! Hub interface&lt;br /&gt;
|-&lt;br /&gt;
| 1 || MikroTik || MIKROTIK_1_IP || 10.0.1.1/30 || 10.0.1.2/30 || 101 || 201 || 1001 || 2001 || l2tpeth1&lt;br /&gt;
|-&lt;br /&gt;
| 2 || MikroTik || MIKROTIK_2_IP || 10.0.2.1/30 || 10.0.2.2/30 || 102 || 202 || 1002 || 2002 || l2tpeth2&lt;br /&gt;
|-&lt;br /&gt;
| 3 || MikroTik || MIKROTIK_3_IP || 10.0.3.1/30 || 10.0.3.2/30 || 103 || 203 || 1003 || 2003 || l2tpeth3&lt;br /&gt;
|-&lt;br /&gt;
| 4 || MikroTik || MIKROTIK_4_IP || 10.0.4.1/30 || 10.0.4.2/30 || 104 || 204 || 1004 || 2004 || l2tpeth4&lt;br /&gt;
|-&lt;br /&gt;
| 5 || MikroTik || MIKROTIK_5_IP || 10.0.5.1/30 || 10.0.5.2/30 || 105 || 205 || 1005 || 2005 || l2tpeth5&lt;br /&gt;
|-&lt;br /&gt;
| 6 || MikroTik || MIKROTIK_6_IP || 10.0.6.1/30 || 10.0.6.2/30 || 106 || 206 || 1006 || 2006 || l2tpeth6&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Ubuntu || UBUNTU_1_IP || 10.0.7.1/30 || 10.0.7.2/30 || 107 || 207 || 1007 || 2007 || l2tpeth7&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Ubuntu || UBUNTU_2_IP || 10.0.8.1/30 || 10.0.8.2/30 || 108 || 208 || 1008 || 2008 || l2tpeth8&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Linux Hub Server Setup ===&lt;br /&gt;
&lt;br /&gt;
Run all steps below on the central Ubuntu server (hub) with public IP &amp;lt;code&amp;gt;SERVER_IP&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Step 1 — Install packages ====&lt;br /&gt;
&lt;br /&gt;
 apt install -y linux-modules-extra-$(uname -r) go-l2tp&lt;br /&gt;
&lt;br /&gt;
==== Step 2 — Load kernel modules ====&lt;br /&gt;
&lt;br /&gt;
 modprobe l2tp_eth l2tp_ip l2tp_netlink&lt;br /&gt;
 echo -e &amp;quot;l2tp_eth\nl2tp_ip\nl2tp_netlink&amp;quot; &amp;gt; /etc/modules-load.d/l2tp.conf&lt;br /&gt;
&lt;br /&gt;
==== Step 3 — Verify modules loaded ====&lt;br /&gt;
&lt;br /&gt;
 lsmod | grep l2tp&lt;br /&gt;
&lt;br /&gt;
Expected output:&lt;br /&gt;
&lt;br /&gt;
 l2tp_eth&lt;br /&gt;
 l2tp_ip&lt;br /&gt;
 l2tp_netlink&lt;br /&gt;
 l2tp_core&lt;br /&gt;
&lt;br /&gt;
==== Step 4 — Create ql2tpd configuration ====&lt;br /&gt;
&lt;br /&gt;
 mkdir -p /etc/ql2tpd&lt;br /&gt;
 cat &amp;gt; /etc/ql2tpd/ql2tpd.toml &amp;lt;&amp;lt; &#039;EOF&#039;&lt;br /&gt;
 [tunnel.t1]&lt;br /&gt;
   version = &amp;quot;l2tpv3&amp;quot;&lt;br /&gt;
   encap = &amp;quot;ip&amp;quot;&lt;br /&gt;
   local = &amp;quot;SERVER_IP:0&amp;quot;&lt;br /&gt;
   peer = &amp;quot;MIKROTIK_1_IP:0&amp;quot;&lt;br /&gt;
   tid = 101&lt;br /&gt;
   ptid = 201&lt;br /&gt;
   [tunnel.t1.session.s1]&lt;br /&gt;
     pseudowire = &amp;quot;eth&amp;quot;&lt;br /&gt;
     sid = 1001&lt;br /&gt;
     psid = 2001&lt;br /&gt;
     interface_name = &amp;quot;l2tpeth1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 [tunnel.t2]&lt;br /&gt;
   version = &amp;quot;l2tpv3&amp;quot;&lt;br /&gt;
   encap = &amp;quot;ip&amp;quot;&lt;br /&gt;
   local = &amp;quot;SERVER_IP:0&amp;quot;&lt;br /&gt;
   peer = &amp;quot;MIKROTIK_2_IP:0&amp;quot;&lt;br /&gt;
   tid = 102&lt;br /&gt;
   ptid = 202&lt;br /&gt;
   [tunnel.t2.session.s1]&lt;br /&gt;
     pseudowire = &amp;quot;eth&amp;quot;&lt;br /&gt;
     sid = 1002&lt;br /&gt;
     psid = 2002&lt;br /&gt;
     interface_name = &amp;quot;l2tpeth2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 [tunnel.t3]&lt;br /&gt;
   version = &amp;quot;l2tpv3&amp;quot;&lt;br /&gt;
   encap = &amp;quot;ip&amp;quot;&lt;br /&gt;
   local = &amp;quot;SERVER_IP:0&amp;quot;&lt;br /&gt;
   peer = &amp;quot;MIKROTIK_3_IP:0&amp;quot;&lt;br /&gt;
   tid = 103&lt;br /&gt;
   ptid = 203&lt;br /&gt;
   [tunnel.t3.session.s1]&lt;br /&gt;
     pseudowire = &amp;quot;eth&amp;quot;&lt;br /&gt;
     sid = 1003&lt;br /&gt;
     psid = 2003&lt;br /&gt;
     interface_name = &amp;quot;l2tpeth3&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 [tunnel.t4]&lt;br /&gt;
   version = &amp;quot;l2tpv3&amp;quot;&lt;br /&gt;
   encap = &amp;quot;ip&amp;quot;&lt;br /&gt;
   local = &amp;quot;SERVER_IP:0&amp;quot;&lt;br /&gt;
   peer = &amp;quot;MIKROTIK_4_IP:0&amp;quot;&lt;br /&gt;
   tid = 104&lt;br /&gt;
   ptid = 204&lt;br /&gt;
   [tunnel.t4.session.s1]&lt;br /&gt;
     pseudowire = &amp;quot;eth&amp;quot;&lt;br /&gt;
     sid = 1004&lt;br /&gt;
     psid = 2004&lt;br /&gt;
     interface_name = &amp;quot;l2tpeth4&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 [tunnel.t5]&lt;br /&gt;
   version = &amp;quot;l2tpv3&amp;quot;&lt;br /&gt;
   encap = &amp;quot;ip&amp;quot;&lt;br /&gt;
   local = &amp;quot;SERVER_IP:0&amp;quot;&lt;br /&gt;
   peer = &amp;quot;MIKROTIK_5_IP:0&amp;quot;&lt;br /&gt;
   tid = 105&lt;br /&gt;
   ptid = 205&lt;br /&gt;
   [tunnel.t5.session.s1]&lt;br /&gt;
     pseudowire = &amp;quot;eth&amp;quot;&lt;br /&gt;
     sid = 1005&lt;br /&gt;
     psid = 2005&lt;br /&gt;
     interface_name = &amp;quot;l2tpeth5&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 [tunnel.t6]&lt;br /&gt;
   version = &amp;quot;l2tpv3&amp;quot;&lt;br /&gt;
   encap = &amp;quot;ip&amp;quot;&lt;br /&gt;
   local = &amp;quot;SERVER_IP:0&amp;quot;&lt;br /&gt;
   peer = &amp;quot;MIKROTIK_6_IP:0&amp;quot;&lt;br /&gt;
   tid = 106&lt;br /&gt;
   ptid = 206&lt;br /&gt;
   [tunnel.t6.session.s1]&lt;br /&gt;
     pseudowire = &amp;quot;eth&amp;quot;&lt;br /&gt;
     sid = 1006&lt;br /&gt;
     psid = 2006&lt;br /&gt;
     interface_name = &amp;quot;l2tpeth6&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 [tunnel.t7]&lt;br /&gt;
   version = &amp;quot;l2tpv3&amp;quot;&lt;br /&gt;
   encap = &amp;quot;ip&amp;quot;&lt;br /&gt;
   local = &amp;quot;SERVER_IP:0&amp;quot;&lt;br /&gt;
   peer = &amp;quot;UBUNTU_1_IP:0&amp;quot;&lt;br /&gt;
   tid = 107&lt;br /&gt;
   ptid = 207&lt;br /&gt;
   [tunnel.t7.session.s1]&lt;br /&gt;
     pseudowire = &amp;quot;eth&amp;quot;&lt;br /&gt;
     sid = 1007&lt;br /&gt;
     psid = 2007&lt;br /&gt;
     interface_name = &amp;quot;l2tpeth7&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 [tunnel.t8]&lt;br /&gt;
   version = &amp;quot;l2tpv3&amp;quot;&lt;br /&gt;
   encap = &amp;quot;ip&amp;quot;&lt;br /&gt;
   local = &amp;quot;SERVER_IP:0&amp;quot;&lt;br /&gt;
   peer = &amp;quot;UBUNTU_2_IP:0&amp;quot;&lt;br /&gt;
   tid = 108&lt;br /&gt;
   ptid = 208&lt;br /&gt;
   [tunnel.t8.session.s1]&lt;br /&gt;
     pseudowire = &amp;quot;eth&amp;quot;&lt;br /&gt;
     sid = 1008&lt;br /&gt;
     psid = 2008&lt;br /&gt;
     interface_name = &amp;quot;l2tpeth8&amp;quot;&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
==== Step 5 — Create systemd service ====&lt;br /&gt;
&lt;br /&gt;
 cat &amp;gt; /etc/systemd/system/ql2tpd.service &amp;lt;&amp;lt; &#039;EOF&#039;&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=L2TPv3 Static Tunnel&lt;br /&gt;
 After=network.target&lt;br /&gt;
&lt;br /&gt;
 [Service]&lt;br /&gt;
 ExecStart=/usr/sbin/ql2tpd -config /etc/ql2tpd/ql2tpd.toml&lt;br /&gt;
 Restart=always&lt;br /&gt;
&lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 systemctl daemon-reload&lt;br /&gt;
 systemctl enable --now ql2tpd&lt;br /&gt;
&lt;br /&gt;
==== Step 6 — Assign tunnel IPs ====&lt;br /&gt;
&lt;br /&gt;
 sleep 2&lt;br /&gt;
 ip addr add 10.0.1.1/30 dev l2tpeth1 &amp;amp;&amp;amp; ip link set l2tpeth1 up&lt;br /&gt;
 ip addr add 10.0.2.1/30 dev l2tpeth2 &amp;amp;&amp;amp; ip link set l2tpeth2 up&lt;br /&gt;
 ip addr add 10.0.3.1/30 dev l2tpeth3 &amp;amp;&amp;amp; ip link set l2tpeth3 up&lt;br /&gt;
 ip addr add 10.0.4.1/30 dev l2tpeth4 &amp;amp;&amp;amp; ip link set l2tpeth4 up&lt;br /&gt;
 ip addr add 10.0.5.1/30 dev l2tpeth5 &amp;amp;&amp;amp; ip link set l2tpeth5 up&lt;br /&gt;
 ip addr add 10.0.6.1/30 dev l2tpeth6 &amp;amp;&amp;amp; ip link set l2tpeth6 up&lt;br /&gt;
 ip addr add 10.0.7.1/30 dev l2tpeth7 &amp;amp;&amp;amp; ip link set l2tpeth7 up&lt;br /&gt;
 ip addr add 10.0.8.1/30 dev l2tpeth8 &amp;amp;&amp;amp; ip link set l2tpeth8 up&lt;br /&gt;
&lt;br /&gt;
==== Step 7 — Persist IPs after reboot ====&lt;br /&gt;
&lt;br /&gt;
 cat &amp;gt; /etc/networkd-dispatcher/routable.d/l2tp-ip.sh &amp;lt;&amp;lt; &#039;EOF&#039;&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 sleep 3&lt;br /&gt;
 ip addr add 10.0.1.1/30 dev l2tpeth1 2&amp;gt;/dev/null &amp;amp;&amp;amp; ip link set l2tpeth1 up 2&amp;gt;/dev/null&lt;br /&gt;
 ip addr add 10.0.2.1/30 dev l2tpeth2 2&amp;gt;/dev/null &amp;amp;&amp;amp; ip link set l2tpeth2 up 2&amp;gt;/dev/null&lt;br /&gt;
 ip addr add 10.0.3.1/30 dev l2tpeth3 2&amp;gt;/dev/null &amp;amp;&amp;amp; ip link set l2tpeth3 up 2&amp;gt;/dev/null&lt;br /&gt;
 ip addr add 10.0.4.1/30 dev l2tpeth4 2&amp;gt;/dev/null &amp;amp;&amp;amp; ip link set l2tpeth4 up 2&amp;gt;/dev/null&lt;br /&gt;
 ip addr add 10.0.5.1/30 dev l2tpeth5 2&amp;gt;/dev/null &amp;amp;&amp;amp; ip link set l2tpeth5 up 2&amp;gt;/dev/null&lt;br /&gt;
 ip addr add 10.0.6.1/30 dev l2tpeth6 2&amp;gt;/dev/null &amp;amp;&amp;amp; ip link set l2tpeth6 up 2&amp;gt;/dev/null&lt;br /&gt;
 ip addr add 10.0.7.1/30 dev l2tpeth7 2&amp;gt;/dev/null &amp;amp;&amp;amp; ip link set l2tpeth7 up 2&amp;gt;/dev/null&lt;br /&gt;
 ip addr add 10.0.8.1/30 dev l2tpeth8 2&amp;gt;/dev/null &amp;amp;&amp;amp; ip link set l2tpeth8 up 2&amp;gt;/dev/null&lt;br /&gt;
 EOF&lt;br /&gt;
 chmod +x /etc/networkd-dispatcher/routable.d/l2tp-ip.sh&lt;br /&gt;
&lt;br /&gt;
==== Step 8 — Verify interfaces ====&lt;br /&gt;
&lt;br /&gt;
 ip addr show | grep l2tpeth&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== MikroTik Setup (Run on each router) ===&lt;br /&gt;
&lt;br /&gt;
Replace the placeholder values from the table above for each MikroTik.&lt;br /&gt;
&lt;br /&gt;
==== MikroTik 1 — &amp;lt;code&amp;gt;MIKROTIK_1_IP&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 /interface l2tp-ether add name=l2tpv3 connect-to=SERVER_IP local-address=MIKROTIK_1_IP local-tunnel-id=201 remote-tunnel-id=101 local-session-id=2001 remote-session-id=1001 l2tp-proto-version=l2tpv3-ip unmanaged-mode=yes disabled=no&lt;br /&gt;
 /ip address add address=10.0.1.2/30 interface=l2tpv3&lt;br /&gt;
&lt;br /&gt;
==== MikroTik 2 — &amp;lt;code&amp;gt;MIKROTIK_2_IP&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 /interface l2tp-ether add name=l2tpv3 connect-to=SERVER_IP local-address=MIKROTIK_2_IP local-tunnel-id=202 remote-tunnel-id=102 local-session-id=2002 remote-session-id=1002 l2tp-proto-version=l2tpv3-ip unmanaged-mode=yes disabled=no&lt;br /&gt;
 /ip address add address=10.0.2.2/30 interface=l2tpv3&lt;br /&gt;
&lt;br /&gt;
==== MikroTik 3 — &amp;lt;code&amp;gt;MIKROTIK_3_IP&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 /interface l2tp-ether add name=l2tpv3 connect-to=SERVER_IP local-address=MIKROTIK_3_IP local-tunnel-id=203 remote-tunnel-id=103 local-session-id=2003 remote-session-id=1003 l2tp-proto-version=l2tpv3-ip unmanaged-mode=yes disabled=no&lt;br /&gt;
 /ip address add address=10.0.3.2/30 interface=l2tpv3&lt;br /&gt;
&lt;br /&gt;
==== MikroTik 4 — &amp;lt;code&amp;gt;MIKROTIK_4_IP&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 /interface l2tp-ether add name=l2tpv3 connect-to=SERVER_IP local-address=MIKROTIK_4_IP local-tunnel-id=204 remote-tunnel-id=104 local-session-id=2004 remote-session-id=1004 l2tp-proto-version=l2tpv3-ip unmanaged-mode=yes disabled=no&lt;br /&gt;
 /ip address add address=10.0.4.2/30 interface=l2tpv3&lt;br /&gt;
&lt;br /&gt;
==== MikroTik 5 — &amp;lt;code&amp;gt;MIKROTIK_5_IP&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 /interface l2tp-ether add name=l2tpv3 connect-to=SERVER_IP local-address=MIKROTIK_5_IP local-tunnel-id=205 remote-tunnel-id=105 local-session-id=2005 remote-session-id=1005 l2tp-proto-version=l2tpv3-ip unmanaged-mode=yes disabled=no&lt;br /&gt;
 /ip address add address=10.0.5.2/30 interface=l2tpv3&lt;br /&gt;
&lt;br /&gt;
==== MikroTik 6 — &amp;lt;code&amp;gt;MIKROTIK_6_IP&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
 /interface l2tp-ether add name=l2tpv3 connect-to=SERVER_IP local-address=MIKROTIK_6_IP local-tunnel-id=206 remote-tunnel-id=106 local-session-id=2006 remote-session-id=1006 l2tp-proto-version=l2tpv3-ip unmanaged-mode=yes disabled=no&lt;br /&gt;
 /ip address add address=10.0.6.2/30 interface=l2tpv3&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu Remote Server Setup (Run on each Ubuntu peer) ===&lt;br /&gt;
&lt;br /&gt;
Each remote Ubuntu server runs its own &amp;lt;code&amp;gt;ql2tpd&amp;lt;/code&amp;gt; instance with a single static tunnel back to the hub. IDs on the remote side are the mirror of the hub tunnel row in the IP Address Plan table.&lt;br /&gt;
&lt;br /&gt;
Prerequisites on each remote Ubuntu server:&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 24.04 (kernel 6.8+)&lt;br /&gt;
* Root access&lt;br /&gt;
* IP protocol 115 allowed in firewall toward &amp;lt;code&amp;gt;SERVER_IP&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Ubuntu Remote 1 — &amp;lt;code&amp;gt;UBUNTU_1_IP&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1. Install packages&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 apt install -y linux-modules-extra-$(uname -r) go-l2tp&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. Load kernel modules&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 modprobe l2tp_eth l2tp_ip l2tp_netlink&lt;br /&gt;
 echo -e &amp;quot;l2tp_eth\nl2tp_ip\nl2tp_netlink&amp;quot; &amp;gt; /etc/modules-load.d/l2tp.conf&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. Create ql2tpd configuration&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 mkdir -p /etc/ql2tpd&lt;br /&gt;
 cat &amp;gt; /etc/ql2tpd/ql2tpd.toml &amp;lt;&amp;lt; &#039;EOF&#039;&lt;br /&gt;
 [tunnel.t1]&lt;br /&gt;
   version = &amp;quot;l2tpv3&amp;quot;&lt;br /&gt;
   encap = &amp;quot;ip&amp;quot;&lt;br /&gt;
   local = &amp;quot;UBUNTU_1_IP:0&amp;quot;&lt;br /&gt;
   peer = &amp;quot;SERVER_IP:0&amp;quot;&lt;br /&gt;
   tid = 207&lt;br /&gt;
   ptid = 107&lt;br /&gt;
   [tunnel.t1.session.s1]&lt;br /&gt;
     pseudowire = &amp;quot;eth&amp;quot;&lt;br /&gt;
     sid = 2007&lt;br /&gt;
     psid = 1007&lt;br /&gt;
     interface_name = &amp;quot;l2tpeth0&amp;quot;&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4. Create systemd service&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 cat &amp;gt; /etc/systemd/system/ql2tpd.service &amp;lt;&amp;lt; &#039;EOF&#039;&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=L2TPv3 Static Tunnel&lt;br /&gt;
 After=network.target&lt;br /&gt;
&lt;br /&gt;
 [Service]&lt;br /&gt;
 ExecStart=/usr/sbin/ql2tpd -config /etc/ql2tpd/ql2tpd.toml&lt;br /&gt;
 Restart=always&lt;br /&gt;
&lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 systemctl daemon-reload&lt;br /&gt;
 systemctl enable --now ql2tpd&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5. Assign tunnel IP&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 sleep 2&lt;br /&gt;
 ip addr add 10.0.7.2/30 dev l2tpeth0&lt;br /&gt;
 ip link set l2tpeth0 up&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6. Persist IP after reboot&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 cat &amp;gt; /etc/networkd-dispatcher/routable.d/l2tp-ip.sh &amp;lt;&amp;lt; &#039;EOF&#039;&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 sleep 3&lt;br /&gt;
 ip addr add 10.0.7.2/30 dev l2tpeth0 2&amp;gt;/dev/null&lt;br /&gt;
 ip link set l2tpeth0 up 2&amp;gt;/dev/null&lt;br /&gt;
 EOF&lt;br /&gt;
 chmod +x /etc/networkd-dispatcher/routable.d/l2tp-ip.sh&lt;br /&gt;
&lt;br /&gt;
==== Ubuntu Remote 2 — &amp;lt;code&amp;gt;UBUNTU_2_IP&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1. Install packages&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 apt install -y linux-modules-extra-$(uname -r) go-l2tp&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. Load kernel modules&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 modprobe l2tp_eth l2tp_ip l2tp_netlink&lt;br /&gt;
 echo -e &amp;quot;l2tp_eth\nl2tp_ip\nl2tp_netlink&amp;quot; &amp;gt; /etc/modules-load.d/l2tp.conf&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. Create ql2tpd configuration&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 mkdir -p /etc/ql2tpd&lt;br /&gt;
 cat &amp;gt; /etc/ql2tpd/ql2tpd.toml &amp;lt;&amp;lt; &#039;EOF&#039;&lt;br /&gt;
 [tunnel.t1]&lt;br /&gt;
   version = &amp;quot;l2tpv3&amp;quot;&lt;br /&gt;
   encap = &amp;quot;ip&amp;quot;&lt;br /&gt;
   local = &amp;quot;UBUNTU_2_IP:0&amp;quot;&lt;br /&gt;
   peer = &amp;quot;SERVER_IP:0&amp;quot;&lt;br /&gt;
   tid = 208&lt;br /&gt;
   ptid = 108&lt;br /&gt;
   [tunnel.t1.session.s1]&lt;br /&gt;
     pseudowire = &amp;quot;eth&amp;quot;&lt;br /&gt;
     sid = 2008&lt;br /&gt;
     psid = 1008&lt;br /&gt;
     interface_name = &amp;quot;l2tpeth0&amp;quot;&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4. Create systemd service&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 cat &amp;gt; /etc/systemd/system/ql2tpd.service &amp;lt;&amp;lt; &#039;EOF&#039;&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=L2TPv3 Static Tunnel&lt;br /&gt;
 After=network.target&lt;br /&gt;
&lt;br /&gt;
 [Service]&lt;br /&gt;
 ExecStart=/usr/sbin/ql2tpd -config /etc/ql2tpd/ql2tpd.toml&lt;br /&gt;
 Restart=always&lt;br /&gt;
&lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 systemctl daemon-reload&lt;br /&gt;
 systemctl enable --now ql2tpd&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5. Assign tunnel IP&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 sleep 2&lt;br /&gt;
 ip addr add 10.0.8.2/30 dev l2tpeth0&lt;br /&gt;
 ip link set l2tpeth0 up&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6. Persist IP after reboot&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 cat &amp;gt; /etc/networkd-dispatcher/routable.d/l2tp-ip.sh &amp;lt;&amp;lt; &#039;EOF&#039;&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 sleep 3&lt;br /&gt;
 ip addr add 10.0.8.2/30 dev l2tpeth0 2&amp;gt;/dev/null&lt;br /&gt;
 ip link set l2tpeth0 up 2&amp;gt;/dev/null&lt;br /&gt;
 EOF&lt;br /&gt;
 chmod +x /etc/networkd-dispatcher/routable.d/l2tp-ip.sh&lt;br /&gt;
&lt;br /&gt;
{{Note|On remote Ubuntu peers, &amp;lt;code&amp;gt;tid&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;ptid&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;sid&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;psid&amp;lt;/code&amp;gt; are swapped relative to the hub — same rule as MikroTik &amp;lt;code&amp;gt;local-tunnel-id&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;remote-tunnel-id&amp;lt;/code&amp;gt;.}}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Verification ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;From Linux hub server — ping all peers:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 ping 10.0.1.2 -c 2&lt;br /&gt;
 ping 10.0.2.2 -c 2&lt;br /&gt;
 ping 10.0.3.2 -c 2&lt;br /&gt;
 ping 10.0.4.2 -c 2&lt;br /&gt;
 ping 10.0.5.2 -c 2&lt;br /&gt;
 ping 10.0.6.2 -c 2&lt;br /&gt;
 ping 10.0.7.2 -c 2&lt;br /&gt;
 ping 10.0.8.2 -c 2&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;From each MikroTik — ping hub tunnel IP:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 /ping 10.0.X.1 count=4&lt;br /&gt;
&lt;br /&gt;
Replace &amp;lt;code&amp;gt;X&amp;lt;/code&amp;gt; with the MikroTik number (1–6).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;From each Ubuntu remote — ping hub tunnel IP:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 ping 10.0.7.1 -c 4    # Ubuntu Remote 1&lt;br /&gt;
 ping 10.0.8.1 -c 4    # Ubuntu Remote 2&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Cleanup ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Linux hub server:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 systemctl stop ql2tpd&lt;br /&gt;
 systemctl disable ql2tpd&lt;br /&gt;
 rm /etc/systemd/system/ql2tpd.service&lt;br /&gt;
 rm -rf /etc/ql2tpd&lt;br /&gt;
 rm -f /etc/networkd-dispatcher/routable.d/l2tp-ip.sh&lt;br /&gt;
 rm -f /etc/modules-load.d/l2tp.conf&lt;br /&gt;
 systemctl daemon-reload&lt;br /&gt;
 for i in 1 2 3 4 5 6 7 8; do ip link del l2tpeth$i 2&amp;gt;/dev/null; done&lt;br /&gt;
 modprobe -r l2tp_eth l2tp_ip l2tp_netlink 2&amp;gt;/dev/null&lt;br /&gt;
 apt remove -y go-l2tp&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Each MikroTik:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 /ip address remove [find interface=l2tpv3]&lt;br /&gt;
 /interface l2tp-ether remove l2tpv3&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Each Ubuntu remote server:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 systemctl stop ql2tpd&lt;br /&gt;
 systemctl disable ql2tpd&lt;br /&gt;
 rm /etc/systemd/system/ql2tpd.service&lt;br /&gt;
 rm -rf /etc/ql2tpd&lt;br /&gt;
 rm -f /etc/networkd-dispatcher/routable.d/l2tp-ip.sh&lt;br /&gt;
 rm -f /etc/modules-load.d/l2tp.conf&lt;br /&gt;
 systemctl daemon-reload&lt;br /&gt;
 ip link del l2tpeth0 2&amp;gt;/dev/null&lt;br /&gt;
 modprobe -r l2tp_eth l2tp_ip l2tp_netlink 2&amp;gt;/dev/null&lt;br /&gt;
 apt remove -y go-l2tp&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Symptom !! Cause !! Fix&lt;br /&gt;
|-&lt;br /&gt;
| Module l2tp_eth not found || Missing extra modules || apt install linux-modules-extra-$(uname -r)&lt;br /&gt;
|-&lt;br /&gt;
| Interface not created || ql2tpd not running || systemctl restart ql2tpd &amp;amp;&amp;amp; sleep 2&lt;br /&gt;
|-&lt;br /&gt;
| Link stays DOWN (MikroTik) || MikroTik sending control messages || Verify unmanaged-mode=yes is set&lt;br /&gt;
|-&lt;br /&gt;
| Link stays DOWN (Ubuntu remote) || Swapped or duplicate tunnel/session IDs || Verify tid/ptid/sid/psid mirror the hub row&lt;br /&gt;
|-&lt;br /&gt;
| No packets arriving || Firewall blocking proto 115 || Allow IP protocol 115 on hub, each MikroTik, and each Ubuntu remote&lt;br /&gt;
|-&lt;br /&gt;
| IP lost after reboot || Persistence script missing || Re-run hub Step 7 or remote Step 6&lt;br /&gt;
|-&lt;br /&gt;
| Wrong tunnel match || Duplicate or swapped IDs || Verify tid/ptid/sid/psid per IP Address Plan table&lt;br /&gt;
|-&lt;br /&gt;
| Hub pings MikroTik OK but not Ubuntu || Remote ql2tpd not started or wrong peer IP || systemctl status ql2tpd on remote; verify SERVER_IP and UBUNTU_X_IP in both configs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
&lt;br /&gt;
* Replace all &amp;lt;code&amp;gt;SERVER_IP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;MIKROTIK_X_IP&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;UBUNTU_X_IP&amp;lt;/code&amp;gt; placeholders with real public IP addresses before running.&lt;br /&gt;
* The hub runs one &amp;lt;code&amp;gt;ql2tpd&amp;lt;/code&amp;gt; with eight tunnels; each remote Ubuntu runs its own single-tunnel &amp;lt;code&amp;gt;ql2tpd&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Each tunnel must have unique &amp;lt;code&amp;gt;tid&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ptid&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;sid&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;psid&amp;lt;/code&amp;gt; values across the entire deployment.&lt;br /&gt;
* MikroTik &amp;lt;code&amp;gt;local-tunnel-id&amp;lt;/code&amp;gt; = hub &amp;lt;code&amp;gt;ptid&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;remote-tunnel-id&amp;lt;/code&amp;gt; = hub &amp;lt;code&amp;gt;tid&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Ubuntu remote &amp;lt;code&amp;gt;tid&amp;lt;/code&amp;gt; = hub &amp;lt;code&amp;gt;ptid&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;ptid&amp;lt;/code&amp;gt; = hub &amp;lt;code&amp;gt;tid&amp;lt;/code&amp;gt; (same mirroring rule).&lt;br /&gt;
* MikroTik &amp;lt;code&amp;gt;unmanaged-mode=yes&amp;lt;/code&amp;gt; is mandatory — without it the control protocol runs and the tunnel will not connect to &amp;lt;code&amp;gt;ql2tpd&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Ubuntu-to-Ubuntu legs also use static &amp;lt;code&amp;gt;ql2tpd&amp;lt;/code&amp;gt;; neither side runs the L2TPv3 control protocol.&lt;br /&gt;
* The tunnel carries raw Ethernet frames (pseudowire type: &amp;lt;code&amp;gt;eth&amp;lt;/code&amp;gt;), suitable for Layer 2 bridging between sites.&lt;br /&gt;
* Tested on Ubuntu 24.04 (kernel 6.8) and RouterOS 7.20.&lt;br /&gt;
* No encryption by default — wrap with IPsec for production use.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/go-l2tp/go-l2tp go-l2tp GitHub]&lt;br /&gt;
* [https://manpages.ubuntu.com/manpages/noble/man8/ql2tpd.8.html ql2tpd.toml man page]&lt;br /&gt;
* [https://datatracker.ietf.org/doc/html/rfc3931 RFC 3931 — L2TPv3]&lt;br /&gt;
* [https://datatracker.ietf.org/doc/html/rfc4719 RFC 4719 — L2TPv3 Ethernet Pseudowire]&lt;br /&gt;
* [[Mikrotik Ubuntu L2TPv3]]&lt;br /&gt;
* [[Mikrotik Ubuntu L2TPv3 one server six mikrotik]]&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Windows_update&amp;diff=174</id>
		<title>Windows update</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Windows_update&amp;diff=174"/>
		<updated>2026-06-29T07:37:56Z</updated>

		<summary type="html">&lt;p&gt;Karavi: Created page with &amp;quot;Open Command Prompt as Administrator:  Press Win + X, and select &amp;quot;Command Prompt (Admin)&amp;quot; or &amp;quot;Windows PowerShell (Admin).&amp;quot; Enter the Command:  Type the following command and press Enter:  sc stop wuauserv  sc config wuauserv start= disabled&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Open Command Prompt as Administrator:&lt;br /&gt;
&lt;br /&gt;
Press Win + X, and select &amp;quot;Command Prompt (Admin)&amp;quot; or &amp;quot;Windows PowerShell (Admin).&amp;quot;&lt;br /&gt;
Enter the Command:&lt;br /&gt;
&lt;br /&gt;
Type the following command and press Enter:&lt;br /&gt;
 sc stop wuauserv&lt;br /&gt;
 sc config wuauserv start= disabled&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Mikrotik_Ubuntu_L2TPv3_one_server_six_mikrotik&amp;diff=173</id>
		<title>Mikrotik Ubuntu L2TPv3 one server six mikrotik</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Mikrotik_Ubuntu_L2TPv3_one_server_six_mikrotik&amp;diff=173"/>
		<updated>2026-06-21T19:48:47Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== L2TPv3 Tunnel: One Linux Server to 6 MikroTik Routers (Template) ==&lt;br /&gt;
&lt;br /&gt;
=== IP Address Plan ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! # !! MikroTik IP !! Server Tunnel IP !! Client Tunnel IP !! tid !! ptid !! sid !! psid&lt;br /&gt;
|-&lt;br /&gt;
| 1 || MIKROTIK_1_IP || 10.0.1.1/30 || 10.0.1.2/30 || 101 || 201 || 1001 || 2001&lt;br /&gt;
|-&lt;br /&gt;
| 2 || MIKROTIK_2_IP || 10.0.2.1/30 || 10.0.2.2/30 || 102 || 202 || 1002 || 2002&lt;br /&gt;
|-&lt;br /&gt;
| 3 || MIKROTIK_3_IP || 10.0.3.1/30 || 10.0.3.2/30 || 103 || 203 || 1003 || 2003&lt;br /&gt;
|-&lt;br /&gt;
| 4 || MIKROTIK_4_IP || 10.0.4.1/30 || 10.0.4.2/30 || 104 || 204 || 1004 || 2004&lt;br /&gt;
|-&lt;br /&gt;
| 5 || MIKROTIK_5_IP || 10.0.5.1/30 || 10.0.5.2/30 || 105 || 205 || 1005 || 2005&lt;br /&gt;
|-&lt;br /&gt;
| 6 || MIKROTIK_6_IP || 10.0.6.1/30 || 10.0.6.2/30 || 106 || 206 || 1006 || 2006&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Linux Server Setup ===&lt;br /&gt;
&lt;br /&gt;
==== Step 1 — Install packages ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
apt install -y linux-modules-extra-$(uname -r) go-l2tp&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Step 2 — Load kernel modules ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
modprobe l2tp_eth l2tp_ip l2tp_netlink&lt;br /&gt;
echo -e &amp;quot;l2tp_eth\nl2tp_ip\nl2tp_netlink&amp;quot; &amp;gt; /etc/modules-load.d/l2tp.conf&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Step 3 — Verify modules loaded ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
lsmod | grep l2tp&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Expected output:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
l2tp_eth&lt;br /&gt;
l2tp_ip&lt;br /&gt;
l2tp_netlink&lt;br /&gt;
l2tp_core&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Step 4 — Create ql2tpd configuration ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir -p /etc/ql2tpd&lt;br /&gt;
cat &amp;gt; /etc/ql2tpd/ql2tpd.toml &amp;lt;&amp;lt; &#039;EOF&#039;&lt;br /&gt;
[tunnel.t1]&lt;br /&gt;
  version = &amp;quot;l2tpv3&amp;quot;&lt;br /&gt;
  encap = &amp;quot;ip&amp;quot;&lt;br /&gt;
  local = &amp;quot;SERVER_IP:0&amp;quot;&lt;br /&gt;
  peer = &amp;quot;MIKROTIK_1_IP:0&amp;quot;&lt;br /&gt;
  tid = 101&lt;br /&gt;
  ptid = 201&lt;br /&gt;
  [tunnel.t1.session.s1]&lt;br /&gt;
    pseudowire = &amp;quot;eth&amp;quot;&lt;br /&gt;
    sid = 1001&lt;br /&gt;
    psid = 2001&lt;br /&gt;
    interface_name = &amp;quot;l2tpeth1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[tunnel.t2]&lt;br /&gt;
  version = &amp;quot;l2tpv3&amp;quot;&lt;br /&gt;
  encap = &amp;quot;ip&amp;quot;&lt;br /&gt;
  local = &amp;quot;SERVER_IP:0&amp;quot;&lt;br /&gt;
  peer = &amp;quot;MIKROTIK_2_IP:0&amp;quot;&lt;br /&gt;
  tid = 102&lt;br /&gt;
  ptid = 202&lt;br /&gt;
  [tunnel.t2.session.s1]&lt;br /&gt;
    pseudowire = &amp;quot;eth&amp;quot;&lt;br /&gt;
    sid = 1002&lt;br /&gt;
    psid = 2002&lt;br /&gt;
    interface_name = &amp;quot;l2tpeth2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[tunnel.t3]&lt;br /&gt;
  version = &amp;quot;l2tpv3&amp;quot;&lt;br /&gt;
  encap = &amp;quot;ip&amp;quot;&lt;br /&gt;
  local = &amp;quot;SERVER_IP:0&amp;quot;&lt;br /&gt;
  peer = &amp;quot;MIKROTIK_3_IP:0&amp;quot;&lt;br /&gt;
  tid = 103&lt;br /&gt;
  ptid = 203&lt;br /&gt;
  [tunnel.t3.session.s1]&lt;br /&gt;
    pseudowire = &amp;quot;eth&amp;quot;&lt;br /&gt;
    sid = 1003&lt;br /&gt;
    psid = 2003&lt;br /&gt;
    interface_name = &amp;quot;l2tpeth3&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[tunnel.t4]&lt;br /&gt;
  version = &amp;quot;l2tpv3&amp;quot;&lt;br /&gt;
  encap = &amp;quot;ip&amp;quot;&lt;br /&gt;
  local = &amp;quot;SERVER_IP:0&amp;quot;&lt;br /&gt;
  peer = &amp;quot;MIKROTIK_4_IP:0&amp;quot;&lt;br /&gt;
  tid = 104&lt;br /&gt;
  ptid = 204&lt;br /&gt;
  [tunnel.t4.session.s1]&lt;br /&gt;
    pseudowire = &amp;quot;eth&amp;quot;&lt;br /&gt;
    sid = 1004&lt;br /&gt;
    psid = 2004&lt;br /&gt;
    interface_name = &amp;quot;l2tpeth4&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[tunnel.t5]&lt;br /&gt;
  version = &amp;quot;l2tpv3&amp;quot;&lt;br /&gt;
  encap = &amp;quot;ip&amp;quot;&lt;br /&gt;
  local = &amp;quot;SERVER_IP:0&amp;quot;&lt;br /&gt;
  peer = &amp;quot;MIKROTIK_5_IP:0&amp;quot;&lt;br /&gt;
  tid = 105&lt;br /&gt;
  ptid = 205&lt;br /&gt;
  [tunnel.t5.session.s1]&lt;br /&gt;
    pseudowire = &amp;quot;eth&amp;quot;&lt;br /&gt;
    sid = 1005&lt;br /&gt;
    psid = 2005&lt;br /&gt;
    interface_name = &amp;quot;l2tpeth5&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[tunnel.t6]&lt;br /&gt;
  version = &amp;quot;l2tpv3&amp;quot;&lt;br /&gt;
  encap = &amp;quot;ip&amp;quot;&lt;br /&gt;
  local = &amp;quot;SERVER_IP:0&amp;quot;&lt;br /&gt;
  peer = &amp;quot;MIKROTIK_6_IP:0&amp;quot;&lt;br /&gt;
  tid = 106&lt;br /&gt;
  ptid = 206&lt;br /&gt;
  [tunnel.t6.session.s1]&lt;br /&gt;
    pseudowire = &amp;quot;eth&amp;quot;&lt;br /&gt;
    sid = 1006&lt;br /&gt;
    psid = 2006&lt;br /&gt;
    interface_name = &amp;quot;l2tpeth6&amp;quot;&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Step 5 — Create systemd service ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat &amp;gt; /etc/systemd/system/ql2tpd.service &amp;lt;&amp;lt; &#039;EOF&#039;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=L2TPv3 Static Tunnel&lt;br /&gt;
After=network.target&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
ExecStart=/usr/sbin/ql2tpd -config /etc/ql2tpd/ql2tpd.toml&lt;br /&gt;
Restart=always&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
systemctl daemon-reload&lt;br /&gt;
systemctl enable --now ql2tpd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Step 6 — Assign tunnel IPs ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sleep 2&lt;br /&gt;
ip addr add 10.0.1.1/30 dev l2tpeth1 &amp;amp;&amp;amp; ip link set l2tpeth1 up&lt;br /&gt;
ip addr add 10.0.2.1/30 dev l2tpeth2 &amp;amp;&amp;amp; ip link set l2tpeth2 up&lt;br /&gt;
ip addr add 10.0.3.1/30 dev l2tpeth3 &amp;amp;&amp;amp; ip link set l2tpeth3 up&lt;br /&gt;
ip addr add 10.0.4.1/30 dev l2tpeth4 &amp;amp;&amp;amp; ip link set l2tpeth4 up&lt;br /&gt;
ip addr add 10.0.5.1/30 dev l2tpeth5 &amp;amp;&amp;amp; ip link set l2tpeth5 up&lt;br /&gt;
ip addr add 10.0.6.1/30 dev l2tpeth6 &amp;amp;&amp;amp; ip link set l2tpeth6 up&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Step 7 — Persist IPs after reboot ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat &amp;gt; /etc/networkd-dispatcher/routable.d/l2tp-ip.sh &amp;lt;&amp;lt; &#039;EOF&#039;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
sleep 3&lt;br /&gt;
ip addr add 10.0.1.1/30 dev l2tpeth1 2&amp;gt;/dev/null &amp;amp;&amp;amp; ip link set l2tpeth1 up 2&amp;gt;/dev/null&lt;br /&gt;
ip addr add 10.0.2.1/30 dev l2tpeth2 2&amp;gt;/dev/null &amp;amp;&amp;amp; ip link set l2tpeth2 up 2&amp;gt;/dev/null&lt;br /&gt;
ip addr add 10.0.3.1/30 dev l2tpeth3 2&amp;gt;/dev/null &amp;amp;&amp;amp; ip link set l2tpeth3 up 2&amp;gt;/dev/null&lt;br /&gt;
ip addr add 10.0.4.1/30 dev l2tpeth4 2&amp;gt;/dev/null &amp;amp;&amp;amp; ip link set l2tpeth4 up 2&amp;gt;/dev/null&lt;br /&gt;
ip addr add 10.0.5.1/30 dev l2tpeth5 2&amp;gt;/dev/null &amp;amp;&amp;amp; ip link set l2tpeth5 up 2&amp;gt;/dev/null&lt;br /&gt;
ip addr add 10.0.6.1/30 dev l2tpeth6 2&amp;gt;/dev/null &amp;amp;&amp;amp; ip link set l2tpeth6 up 2&amp;gt;/dev/null&lt;br /&gt;
EOF&lt;br /&gt;
chmod +x /etc/networkd-dispatcher/routable.d/l2tp-ip.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Step 8 — Verify interfaces ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ip addr show | grep l2tpeth&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== MikroTik Setup (Run on each router) ===&lt;br /&gt;
&lt;br /&gt;
Replace the placeholder values from the table above for each MikroTik.&lt;br /&gt;
&lt;br /&gt;
==== MikroTik 1 — &amp;lt;code&amp;gt;MIKROTIK_1_IP&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/interface l2tp-ether add name=l2tpv3 connect-to=SERVER_IP local-address=MIKROTIK_1_IP local-tunnel-id=201 remote-tunnel-id=101 local-session-id=2001 remote-session-id=1001 l2tp-proto-version=l2tpv3-ip unmanaged-mode=yes disabled=no&lt;br /&gt;
/ip address add address=10.0.1.2/30 interface=l2tpv3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== MikroTik 2 — &amp;lt;code&amp;gt;MIKROTIK_2_IP&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/interface l2tp-ether add name=l2tpv3 connect-to=SERVER_IP local-address=MIKROTIK_2_IP local-tunnel-id=202 remote-tunnel-id=102 local-session-id=2002 remote-session-id=1002 l2tp-proto-version=l2tpv3-ip unmanaged-mode=yes disabled=no&lt;br /&gt;
/ip address add address=10.0.2.2/30 interface=l2tpv3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== MikroTik 3 — &amp;lt;code&amp;gt;MIKROTIK_3_IP&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/interface l2tp-ether add name=l2tpv3 connect-to=SERVER_IP local-address=MIKROTIK_3_IP local-tunnel-id=203 remote-tunnel-id=103 local-session-id=2003 remote-session-id=1003 l2tp-proto-version=l2tpv3-ip unmanaged-mode=yes disabled=no&lt;br /&gt;
/ip address add address=10.0.3.2/30 interface=l2tpv3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== MikroTik 4 — &amp;lt;code&amp;gt;MIKROTIK_4_IP&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/interface l2tp-ether add name=l2tpv3 connect-to=SERVER_IP local-address=MIKROTIK_4_IP local-tunnel-id=204 remote-tunnel-id=104 local-session-id=2004 remote-session-id=1004 l2tp-proto-version=l2tpv3-ip unmanaged-mode=yes disabled=no&lt;br /&gt;
/ip address add address=10.0.4.2/30 interface=l2tpv3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== MikroTik 5 — &amp;lt;code&amp;gt;MIKROTIK_5_IP&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/interface l2tp-ether add name=l2tpv3 connect-to=SERVER_IP local-address=MIKROTIK_5_IP local-tunnel-id=205 remote-tunnel-id=105 local-session-id=2005 remote-session-id=1005 l2tp-proto-version=l2tpv3-ip unmanaged-mode=yes disabled=no&lt;br /&gt;
/ip address add address=10.0.5.2/30 interface=l2tpv3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== MikroTik 6 — &amp;lt;code&amp;gt;MIKROTIK_6_IP&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/interface l2tp-ether add name=l2tpv3 connect-to=SERVER_IP local-address=MIKROTIK_6_IP local-tunnel-id=206 remote-tunnel-id=106 local-session-id=2006 remote-session-id=1006 l2tp-proto-version=l2tpv3-ip unmanaged-mode=yes disabled=no&lt;br /&gt;
/ip address add address=10.0.6.2/30 interface=l2tpv3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Verification ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;From Linux server — ping all clients:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ping 10.0.1.2 -c 2&lt;br /&gt;
ping 10.0.2.2 -c 2&lt;br /&gt;
ping 10.0.3.2 -c 2&lt;br /&gt;
ping 10.0.4.2 -c 2&lt;br /&gt;
ping 10.0.5.2 -c 2&lt;br /&gt;
ping 10.0.6.2 -c 2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;From each MikroTik — ping server:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/ping 10.0.X.1 count=4&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Cleanup ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Linux server:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
systemctl stop ql2tpd&lt;br /&gt;
systemctl disable ql2tpd&lt;br /&gt;
rm /etc/systemd/system/ql2tpd.service&lt;br /&gt;
rm -rf /etc/ql2tpd&lt;br /&gt;
rm -f /etc/networkd-dispatcher/routable.d/l2tp-ip.sh&lt;br /&gt;
rm -f /etc/modules-load.d/l2tp.conf&lt;br /&gt;
systemctl daemon-reload&lt;br /&gt;
for i in 1 2 3 4 5 6; do ip link del l2tpeth$i 2&amp;gt;/dev/null; done&lt;br /&gt;
modprobe -r l2tp_eth l2tp_ip l2tp_netlink 2&amp;gt;/dev/null&lt;br /&gt;
apt remove -y go-l2tp&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Each MikroTik:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/ip address remove [find interface=l2tpv3]&lt;br /&gt;
/interface l2tp-ether remove l2tpv3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Symptom !! Cause !! Fix&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Module l2tp_eth not found&amp;lt;/code&amp;gt; || Missing extra modules || &amp;lt;code&amp;gt;apt install linux-modules-extra-$(uname -r)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Interface not created || &amp;lt;code&amp;gt;ql2tpd&amp;lt;/code&amp;gt; not running || &amp;lt;code&amp;gt;systemctl restart ql2tpd &amp;amp;&amp;amp; sleep 2&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Link stays DOWN || MikroTik sending control messages || Verify &amp;lt;code&amp;gt;unmanaged-mode=yes&amp;lt;/code&amp;gt; is set&lt;br /&gt;
|-&lt;br /&gt;
| No packets arriving || Firewall blocking proto 115 || Allow IP protocol 115 on both sides&lt;br /&gt;
|-&lt;br /&gt;
| IP lost after reboot || Persistence script missing || Re-run Step 7&lt;br /&gt;
|-&lt;br /&gt;
| Wrong tunnel match || Duplicate or swapped IDs || Verify tid/ptid/sid/psid per table above&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
&lt;br /&gt;
* Replace all &amp;lt;code&amp;gt;SERVER_IP&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;MIKROTIK_X_IP&amp;lt;/code&amp;gt; placeholders with real IP addresses before running.&lt;br /&gt;
* Each tunnel must have unique &amp;lt;code&amp;gt;tid&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ptid&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;sid&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;psid&amp;lt;/code&amp;gt; values.&lt;br /&gt;
* MikroTik &amp;lt;code&amp;gt;local-tunnel-id&amp;lt;/code&amp;gt; = server &amp;lt;code&amp;gt;ptid&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;remote-tunnel-id&amp;lt;/code&amp;gt; = server &amp;lt;code&amp;gt;tid&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;unmanaged-mode=yes&amp;lt;/code&amp;gt; is mandatory on MikroTik — without it the control protocol runs and the tunnel will not connect to &amp;lt;code&amp;gt;ql2tpd&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Tested on Ubuntu 24.04 (kernel 6.8) and RouterOS 7.20.&lt;br /&gt;
* No encryption by default — wrap with IPsec for production use.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/katalix/go-l2tp go-l2tp GitHub]&lt;br /&gt;
* [https://manpages.ubuntu.com/manpages/oracular/man5/ql2tpd.toml.5.html ql2tpd.toml man page]&lt;br /&gt;
* [https://www.rfc-editor.org/rfc/rfc3931 RFC 3931 — L2TPv3]&lt;br /&gt;
* [https://www.rfc-editor.org/rfc/rfc4719 RFC 4719 — L2TPv3 Ethernet Pseudowire]&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Mikrotik_Ubuntu_L2TPv3_one_server_six_mikrotik&amp;diff=172</id>
		<title>Mikrotik Ubuntu L2TPv3 one server six mikrotik</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Mikrotik_Ubuntu_L2TPv3_one_server_six_mikrotik&amp;diff=172"/>
		<updated>2026-06-21T19:44:32Z</updated>

		<summary type="html">&lt;p&gt;Karavi: Created page with &amp;quot;== L2TPv3 Tunnel: One Linux Server to Multiple MikroTik Routers ==  === Overview ===  This guide explains how to connect one Linux server to six MikroTik routers using static L2TPv3 tunnels via &amp;lt;code&amp;gt;ql2tpd&amp;lt;/code&amp;gt;.  {| class=&amp;quot;wikitable&amp;quot; ! # !! MikroTik IP !! Server Tunnel IP !! Client Tunnel IP !! tid !! ptid !! sid !! psid |- | 0 (existing) || 78.157.42.222 || 10.0.0.1/30 || 10.0.0.2/30 || 100 || 200 || 1000 || 2000 |- | 1 || 85.57.4.221 || 10.0.1.1/30 || 10.0.1.2/30 ||...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== L2TPv3 Tunnel: One Linux Server to Multiple MikroTik Routers ==&lt;br /&gt;
&lt;br /&gt;
=== Overview ===&lt;br /&gt;
&lt;br /&gt;
This guide explains how to connect one Linux server to six MikroTik routers using static L2TPv3 tunnels via &amp;lt;code&amp;gt;ql2tpd&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! # !! MikroTik IP !! Server Tunnel IP !! Client Tunnel IP !! tid !! ptid !! sid !! psid&lt;br /&gt;
|-&lt;br /&gt;
| 0 (existing) || 78.157.42.222 || 10.0.0.1/30 || 10.0.0.2/30 || 100 || 200 || 1000 || 2000&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 85.57.4.221 || 10.0.1.1/30 || 10.0.1.2/30 || 101 || 201 || 1001 || 2001&lt;br /&gt;
|-&lt;br /&gt;
| 2 || 85.57.4.222 || 10.0.2.1/30 || 10.0.2.2/30 || 102 || 202 || 1002 || 2002&lt;br /&gt;
|-&lt;br /&gt;
| 3 || 85.57.4.223 || 10.0.3.1/30 || 10.0.3.2/30 || 103 || 203 || 1003 || 2003&lt;br /&gt;
|-&lt;br /&gt;
| 4 || 85.57.4.224 || 10.0.4.1/30 || 10.0.4.2/30 || 104 || 204 || 1004 || 2004&lt;br /&gt;
|-&lt;br /&gt;
| 5 || 85.57.4.225 || 10.0.5.1/30 || 10.0.5.2/30 || 105 || 205 || 1005 || 2005&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Linux Server Setup (&amp;lt;code&amp;gt;157.90.26.4&amp;lt;/code&amp;gt;) ===&lt;br /&gt;
&lt;br /&gt;
==== 1. Update ql2tpd configuration ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat &amp;gt; /etc/ql2tpd/ql2tpd.toml &amp;lt;&amp;lt; &#039;EOF&#039;&lt;br /&gt;
[tunnel.t1]&lt;br /&gt;
  version = &amp;quot;l2tpv3&amp;quot;&lt;br /&gt;
  encap = &amp;quot;ip&amp;quot;&lt;br /&gt;
  local = &amp;quot;157.90.26.4:0&amp;quot;&lt;br /&gt;
  peer = &amp;quot;78.157.42.222:0&amp;quot;&lt;br /&gt;
  tid = 100&lt;br /&gt;
  ptid = 200&lt;br /&gt;
  [tunnel.t1.session.s1]&lt;br /&gt;
    pseudowire = &amp;quot;eth&amp;quot;&lt;br /&gt;
    sid = 1000&lt;br /&gt;
    psid = 2000&lt;br /&gt;
    interface_name = &amp;quot;l2tpeth0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[tunnel.t2]&lt;br /&gt;
  version = &amp;quot;l2tpv3&amp;quot;&lt;br /&gt;
  encap = &amp;quot;ip&amp;quot;&lt;br /&gt;
  local = &amp;quot;157.90.26.4:0&amp;quot;&lt;br /&gt;
  peer = &amp;quot;85.57.4.221:0&amp;quot;&lt;br /&gt;
  tid = 101&lt;br /&gt;
  ptid = 201&lt;br /&gt;
  [tunnel.t2.session.s1]&lt;br /&gt;
    pseudowire = &amp;quot;eth&amp;quot;&lt;br /&gt;
    sid = 1001&lt;br /&gt;
    psid = 2001&lt;br /&gt;
    interface_name = &amp;quot;l2tpeth1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[tunnel.t3]&lt;br /&gt;
  version = &amp;quot;l2tpv3&amp;quot;&lt;br /&gt;
  encap = &amp;quot;ip&amp;quot;&lt;br /&gt;
  local = &amp;quot;157.90.26.4:0&amp;quot;&lt;br /&gt;
  peer = &amp;quot;85.57.4.222:0&amp;quot;&lt;br /&gt;
  tid = 102&lt;br /&gt;
  ptid = 202&lt;br /&gt;
  [tunnel.t3.session.s1]&lt;br /&gt;
    pseudowire = &amp;quot;eth&amp;quot;&lt;br /&gt;
    sid = 1002&lt;br /&gt;
    psid = 2002&lt;br /&gt;
    interface_name = &amp;quot;l2tpeth2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[tunnel.t4]&lt;br /&gt;
  version = &amp;quot;l2tpv3&amp;quot;&lt;br /&gt;
  encap = &amp;quot;ip&amp;quot;&lt;br /&gt;
  local = &amp;quot;157.90.26.4:0&amp;quot;&lt;br /&gt;
  peer = &amp;quot;85.57.4.223:0&amp;quot;&lt;br /&gt;
  tid = 103&lt;br /&gt;
  ptid = 203&lt;br /&gt;
  [tunnel.t4.session.s1]&lt;br /&gt;
    pseudowire = &amp;quot;eth&amp;quot;&lt;br /&gt;
    sid = 1003&lt;br /&gt;
    psid = 2003&lt;br /&gt;
    interface_name = &amp;quot;l2tpeth3&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[tunnel.t5]&lt;br /&gt;
  version = &amp;quot;l2tpv3&amp;quot;&lt;br /&gt;
  encap = &amp;quot;ip&amp;quot;&lt;br /&gt;
  local = &amp;quot;157.90.26.4:0&amp;quot;&lt;br /&gt;
  peer = &amp;quot;85.57.4.224:0&amp;quot;&lt;br /&gt;
  tid = 104&lt;br /&gt;
  ptid = 204&lt;br /&gt;
  [tunnel.t5.session.s1]&lt;br /&gt;
    pseudowire = &amp;quot;eth&amp;quot;&lt;br /&gt;
    sid = 1004&lt;br /&gt;
    psid = 2004&lt;br /&gt;
    interface_name = &amp;quot;l2tpeth4&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[tunnel.t6]&lt;br /&gt;
  version = &amp;quot;l2tpv3&amp;quot;&lt;br /&gt;
  encap = &amp;quot;ip&amp;quot;&lt;br /&gt;
  local = &amp;quot;157.90.26.4:0&amp;quot;&lt;br /&gt;
  peer = &amp;quot;85.57.4.225:0&amp;quot;&lt;br /&gt;
  tid = 105&lt;br /&gt;
  ptid = 205&lt;br /&gt;
  [tunnel.t6.session.s1]&lt;br /&gt;
    pseudowire = &amp;quot;eth&amp;quot;&lt;br /&gt;
    sid = 1005&lt;br /&gt;
    psid = 2005&lt;br /&gt;
    interface_name = &amp;quot;l2tpeth5&amp;quot;&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 2. Restart service ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
systemctl restart ql2tpd&lt;br /&gt;
sleep 2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 3. Assign tunnel IPs ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ip addr add 10.0.1.1/30 dev l2tpeth1 &amp;amp;&amp;amp; ip link set l2tpeth1 up&lt;br /&gt;
ip addr add 10.0.2.1/30 dev l2tpeth2 &amp;amp;&amp;amp; ip link set l2tpeth2 up&lt;br /&gt;
ip addr add 10.0.3.1/30 dev l2tpeth3 &amp;amp;&amp;amp; ip link set l2tpeth3 up&lt;br /&gt;
ip addr add 10.0.4.1/30 dev l2tpeth4 &amp;amp;&amp;amp; ip link set l2tpeth4 up&lt;br /&gt;
ip addr add 10.0.5.1/30 dev l2tpeth5 &amp;amp;&amp;amp; ip link set l2tpeth5 up&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 4. Persist IPs after reboot ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat &amp;gt; /etc/networkd-dispatcher/routable.d/l2tp-ip.sh &amp;lt;&amp;lt; &#039;EOF&#039;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
sleep 3&lt;br /&gt;
ip addr add 10.0.0.1/30 dev l2tpeth0 2&amp;gt;/dev/null &amp;amp;&amp;amp; ip link set l2tpeth0 up 2&amp;gt;/dev/null&lt;br /&gt;
ip addr add 10.0.1.1/30 dev l2tpeth1 2&amp;gt;/dev/null &amp;amp;&amp;amp; ip link set l2tpeth1 up 2&amp;gt;/dev/null&lt;br /&gt;
ip addr add 10.0.2.1/30 dev l2tpeth2 2&amp;gt;/dev/null &amp;amp;&amp;amp; ip link set l2tpeth2 up 2&amp;gt;/dev/null&lt;br /&gt;
ip addr add 10.0.3.1/30 dev l2tpeth3 2&amp;gt;/dev/null &amp;amp;&amp;amp; ip link set l2tpeth3 up 2&amp;gt;/dev/null&lt;br /&gt;
ip addr add 10.0.4.1/30 dev l2tpeth4 2&amp;gt;/dev/null &amp;amp;&amp;amp; ip link set l2tpeth4 up 2&amp;gt;/dev/null&lt;br /&gt;
ip addr add 10.0.5.1/30 dev l2tpeth5 2&amp;gt;/dev/null &amp;amp;&amp;amp; ip link set l2tpeth5 up 2&amp;gt;/dev/null&lt;br /&gt;
EOF&lt;br /&gt;
chmod +x /etc/networkd-dispatcher/routable.d/l2tp-ip.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== MikroTik 1 — &amp;lt;code&amp;gt;85.57.4.221&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/interface l2tp-ether add name=l2tpv3 connect-to=157.90.26.4 local-address=85.57.4.221 local-tunnel-id=201 remote-tunnel-id=101 local-session-id=2001 remote-session-id=1001 l2tp-proto-version=l2tpv3-ip unmanaged-mode=yes disabled=no&lt;br /&gt;
/ip address add address=10.0.1.2/30 interface=l2tpv3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== MikroTik 2 — &amp;lt;code&amp;gt;85.57.4.222&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/interface l2tp-ether add name=l2tpv3 connect-to=157.90.26.4 local-address=85.57.4.222 local-tunnel-id=202 remote-tunnel-id=102 local-session-id=2002 remote-session-id=1002 l2tp-proto-version=l2tpv3-ip unmanaged-mode=yes disabled=no&lt;br /&gt;
/ip address add address=10.0.2.2/30 interface=l2tpv3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== MikroTik 3 — &amp;lt;code&amp;gt;85.57.4.223&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/interface l2tp-ether add name=l2tpv3 connect-to=157.90.26.4 local-address=85.57.4.223 local-tunnel-id=203 remote-tunnel-id=103 local-session-id=2003 remote-session-id=1003 l2tp-proto-version=l2tpv3-ip unmanaged-mode=yes disabled=no&lt;br /&gt;
/ip address add address=10.0.3.2/30 interface=l2tpv3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== MikroTik 4 — &amp;lt;code&amp;gt;85.57.4.224&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/interface l2tp-ether add name=l2tpv3 connect-to=157.90.26.4 local-address=85.57.4.224 local-tunnel-id=204 remote-tunnel-id=104 local-session-id=2004 remote-session-id=1004 l2tp-proto-version=l2tpv3-ip unmanaged-mode=yes disabled=no&lt;br /&gt;
/ip address add address=10.0.4.2/30 interface=l2tpv3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== MikroTik 5 — &amp;lt;code&amp;gt;85.57.4.225&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/interface l2tp-ether add name=l2tpv3 connect-to=157.90.26.4 local-address=85.57.4.225 local-tunnel-id=205 remote-tunnel-id=105 local-session-id=2005 remote-session-id=1005 l2tp-proto-version=l2tpv3-ip unmanaged-mode=yes disabled=no&lt;br /&gt;
/ip address add address=10.0.5.2/30 interface=l2tpv3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Verification ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;From Linux server:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ping 10.0.1.2 -c 2&lt;br /&gt;
ping 10.0.2.2 -c 2&lt;br /&gt;
ping 10.0.3.2 -c 2&lt;br /&gt;
ping 10.0.4.2 -c 2&lt;br /&gt;
ping 10.0.5.2 -c 2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;From each MikroTik:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/ping 10.0.X.1 count=4&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Symptom !! Cause !! Fix&lt;br /&gt;
|-&lt;br /&gt;
| Interface not created || &amp;lt;code&amp;gt;ql2tpd&amp;lt;/code&amp;gt; not restarted || &amp;lt;code&amp;gt;systemctl restart ql2tpd&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Link stays DOWN || MikroTik sending control messages || Verify &amp;lt;code&amp;gt;unmanaged-mode=yes&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| No packets arriving || Firewall blocking proto 115 || Allow IP protocol 115 on both sides&lt;br /&gt;
|-&lt;br /&gt;
| IP lost after reboot || persistence script not updated || Re-run step 4&lt;br /&gt;
|-&lt;br /&gt;
| Wrong tunnel match || Duplicate tid/ptid/sid/psid || Verify IDs are unique per tunnel&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
&lt;br /&gt;
* Each tunnel must have unique &amp;lt;code&amp;gt;tid&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ptid&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;sid&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;psid&amp;lt;/code&amp;gt; values.&lt;br /&gt;
* Each MikroTik&#039;s &amp;lt;code&amp;gt;local-tunnel-id&amp;lt;/code&amp;gt; must match the server&#039;s &amp;lt;code&amp;gt;ptid&amp;lt;/code&amp;gt; for that tunnel, and vice versa.&lt;br /&gt;
* All tunnels share the same Linux server public IP (&amp;lt;code&amp;gt;157.90.26.4&amp;lt;/code&amp;gt;) — this is supported since each tunnel is differentiated by its tunnel ID.&lt;br /&gt;
* No encryption is applied by default. For production use, consider wrapping tunnels with IPsec.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/katalix/go-l2tp go-l2tp GitHub]&lt;br /&gt;
* [https://manpages.ubuntu.com/manpages/oracular/man5/ql2tpd.toml.5.html ql2tpd.toml man page]&lt;br /&gt;
* [https://www.rfc-editor.org/rfc/rfc3931 RFC 3931 — L2TPv3]&lt;br /&gt;
* [https://www.rfc-editor.org/rfc/rfc4719 RFC 4719 — L2TPv3 Ethernet Pseudowire]&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Mikrotik_Ubuntu_L2TPv3&amp;diff=171</id>
		<title>Mikrotik Ubuntu L2TPv3</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Mikrotik_Ubuntu_L2TPv3&amp;diff=171"/>
		<updated>2026-06-21T19:42:44Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== L2TPv3 Tunnel: Linux to MikroTik ==&lt;br /&gt;
&lt;br /&gt;
=== Overview ===&lt;br /&gt;
&lt;br /&gt;
This guide explains how to set up a static L2TPv3 site-to-site tunnel between a Linux server and a MikroTik router using &amp;lt;code&amp;gt;ql2tpd&amp;lt;/code&amp;gt; from the &amp;lt;code&amp;gt;go-l2tp&amp;lt;/code&amp;gt; package.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! !! Server !! Client&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Device&#039;&#039;&#039; || Ubuntu 24.04 || MikroTik RouterOS 7.20+&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Public IP&#039;&#039;&#039; || 157.9.2.4 || 85.57.4.221&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Tunnel IP&#039;&#039;&#039; || 10.0.0.1/30 || 10.0.0.2/30&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Tunnel ID&#039;&#039;&#039; || 100 || 200&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Session ID&#039;&#039;&#039; || 1000 || 2000&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 24.04 (kernel 6.8+)&lt;br /&gt;
* MikroTik RouterOS 7.20 or later&lt;br /&gt;
* Root access on both devices&lt;br /&gt;
* IP protocol 115 allowed in firewall on both sides&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Linux Server Setup ===&lt;br /&gt;
&lt;br /&gt;
==== 1. Install packages ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
apt install -y linux-modules-extra-$(uname -r) go-l2tp&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 2. Load kernel modules ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
modprobe l2tp_eth l2tp_ip l2tp_netlink&lt;br /&gt;
echo -e &amp;quot;l2tp_eth\nl2tp_ip\nl2tp_netlink&amp;quot; &amp;gt; /etc/modules-load.d/l2tp.conf&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 3. Create ql2tpd configuration ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir -p /etc/ql2tpd&lt;br /&gt;
cat &amp;gt; /etc/ql2tpd/ql2tpd.toml &amp;lt;&amp;lt; &#039;EOF&#039;&lt;br /&gt;
[tunnel.t1]&lt;br /&gt;
  version = &amp;quot;l2tpv3&amp;quot;&lt;br /&gt;
  encap = &amp;quot;ip&amp;quot;&lt;br /&gt;
  local = &amp;quot;157.9.2.4:0&amp;quot;&lt;br /&gt;
  peer = &amp;quot;85.57.4.221:0&amp;quot;&lt;br /&gt;
  tid = 100&lt;br /&gt;
  ptid = 200&lt;br /&gt;
&lt;br /&gt;
  [tunnel.t1.session.s1]&lt;br /&gt;
    pseudowire = &amp;quot;eth&amp;quot;&lt;br /&gt;
    sid = 1000&lt;br /&gt;
    psid = 2000&lt;br /&gt;
    interface_name = &amp;quot;l2tpeth0&amp;quot;&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 4. Create systemd service ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat &amp;gt; /etc/systemd/system/ql2tpd.service &amp;lt;&amp;lt; &#039;EOF&#039;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=L2TPv3 Static Tunnel&lt;br /&gt;
After=network.target&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
ExecStart=/usr/sbin/ql2tpd -config /etc/ql2tpd/ql2tpd.toml&lt;br /&gt;
Restart=always&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
systemctl enable --now ql2tpd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 5. Assign tunnel IP ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sleep 2&lt;br /&gt;
ip addr add 10.0.0.1/30 dev l2tpeth0&lt;br /&gt;
ip link set l2tpeth0 up&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 6. Persist IP after reboot ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat &amp;gt; /etc/networkd-dispatcher/routable.d/l2tp-ip.sh &amp;lt;&amp;lt; &#039;EOF&#039;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
sleep 3&lt;br /&gt;
ip addr add 10.0.0.1/30 dev l2tpeth0 2&amp;gt;/dev/null&lt;br /&gt;
ip link set l2tpeth0 up 2&amp;gt;/dev/null&lt;br /&gt;
EOF&lt;br /&gt;
chmod +x /etc/networkd-dispatcher/routable.d/l2tp-ip.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== MikroTik Client Setup ===&lt;br /&gt;
&lt;br /&gt;
Run the following commands in the MikroTik terminal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/interface l2tp-ether add name=l2tpv3 connect-to=157.9.2.4 local-address=85.57.4.221 local-tunnel-id=200 remote-tunnel-id=100 local-session-id=2000 remote-session-id=1000 l2tp-proto-version=l2tpv3-ip unmanaged-mode=yes disabled=no&lt;br /&gt;
&lt;br /&gt;
/ip address add address=10.0.0.2/30 interface=l2tpv3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note|&amp;lt;code&amp;gt;unmanaged-mode=yes&amp;lt;/code&amp;gt; is required. Without it, MikroTik attempts to run the L2TPv3 control protocol, which &amp;lt;code&amp;gt;ql2tpd&amp;lt;/code&amp;gt; does not support since it operates as a static (data-plane only) daemon.}}&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Verification ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;From Linux server:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ping 10.0.0.2 -c 4&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;From MikroTik:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/ping 10.0.0.1 count=4&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Cleanup ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Linux server:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
systemctl stop ql2tpd&lt;br /&gt;
systemctl disable ql2tpd&lt;br /&gt;
rm /etc/systemd/system/ql2tpd.service&lt;br /&gt;
rm -rf /etc/ql2tpd&lt;br /&gt;
rm -f /etc/networkd-dispatcher/routable.d/l2tp-ip.sh&lt;br /&gt;
rm -f /etc/modules-load.d/l2tp.conf&lt;br /&gt;
systemctl daemon-reload&lt;br /&gt;
ip link del l2tpeth0 2&amp;gt;/dev/null&lt;br /&gt;
modprobe -r l2tp_eth l2tp_ip l2tp_netlink 2&amp;gt;/dev/null&lt;br /&gt;
apt remove -y go-l2tp&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MikroTik:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/ip address remove [find interface=l2tpv3]&lt;br /&gt;
/interface l2tp-ether remove l2tpv3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Symptom !! Cause !! Fix&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Module l2tp_eth not found&amp;lt;/code&amp;gt; || Missing extra modules || &amp;lt;code&amp;gt;apt install linux-modules-extra-$(uname -r)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Interface not created || &amp;lt;code&amp;gt;ql2tpd&amp;lt;/code&amp;gt; not running in background || Run with &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; or use systemd service&lt;br /&gt;
|-&lt;br /&gt;
| Link stays DOWN || MikroTik sending control messages || Add &amp;lt;code&amp;gt;unmanaged-mode=yes&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| No packets arriving || Firewall blocking proto 115 || Allow IP protocol 115 on both sides&lt;br /&gt;
|-&lt;br /&gt;
| IP lost after reboot || No persistence script || Add networkd-dispatcher script (step 6)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;ql2tpd&amp;lt;/code&amp;gt; is a static (quiescent) L2TPv3 daemon — it does &#039;&#039;&#039;not&#039;&#039;&#039; run the L2TPv3 control protocol. Both peers must have matching tunnel and session IDs configured manually.&lt;br /&gt;
* MikroTik &amp;lt;code&amp;gt;l2tp-ether&amp;lt;/code&amp;gt; with &amp;lt;code&amp;gt;unmanaged-mode=yes&amp;lt;/code&amp;gt; bypasses the control protocol and operates as a pure static data plane, making it compatible with &amp;lt;code&amp;gt;ql2tpd&amp;lt;/code&amp;gt;.&lt;br /&gt;
* The tunnel carries raw Ethernet frames (pseudowire type: &amp;lt;code&amp;gt;eth&amp;lt;/code&amp;gt;), making it suitable for Layer 2 bridging between sites.&lt;br /&gt;
* No encryption is applied by default. For production use, consider wrapping the tunnel with IPsec.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/katalix/go-l2tp go-l2tp GitHub]&lt;br /&gt;
* [https://manpages.ubuntu.com/manpages/oracular/man5/ql2tpd.toml.5.html ql2tpd.toml man page]&lt;br /&gt;
* [https://www.rfc-editor.org/rfc/rfc3931 RFC 3931 — L2TPv3]&lt;br /&gt;
* [https://www.rfc-editor.org/rfc/rfc4719 RFC 4719 — L2TPv3 Ethernet Pseudowire]&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Mikrotik_Ubuntu_L2TPv3&amp;diff=170</id>
		<title>Mikrotik Ubuntu L2TPv3</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Mikrotik_Ubuntu_L2TPv3&amp;diff=170"/>
		<updated>2026-06-21T19:38:06Z</updated>

		<summary type="html">&lt;p&gt;Karavi: Created page with &amp;quot;== L2TPv3 Tunnel: Linux to MikroTik ==  === Overview ===  This guide explains how to set up a static L2TPv3 site-to-site tunnel between a Linux server and a MikroTik router using &amp;lt;code&amp;gt;ql2tpd&amp;lt;/code&amp;gt; from the &amp;lt;code&amp;gt;go-l2tp&amp;lt;/code&amp;gt; package.  {| class=&amp;quot;wikitable&amp;quot; ! !! Server !! Client |- | &amp;#039;&amp;#039;&amp;#039;Device&amp;#039;&amp;#039;&amp;#039; || Ubuntu 24.04 || MikroTik RouterOS 7.20+ |- | &amp;#039;&amp;#039;&amp;#039;Public IP&amp;#039;&amp;#039;&amp;#039; || 157.90.26.4 || 78.157.42.222 |- | &amp;#039;&amp;#039;&amp;#039;Tunnel IP&amp;#039;&amp;#039;&amp;#039; || 10.0.0.1/30 || 10.0.0.2/30 |- | &amp;#039;&amp;#039;&amp;#039;Tunnel ID&amp;#039;&amp;#039;&amp;#039; || 100...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== L2TPv3 Tunnel: Linux to MikroTik ==&lt;br /&gt;
&lt;br /&gt;
=== Overview ===&lt;br /&gt;
&lt;br /&gt;
This guide explains how to set up a static L2TPv3 site-to-site tunnel between a Linux server and a MikroTik router using &amp;lt;code&amp;gt;ql2tpd&amp;lt;/code&amp;gt; from the &amp;lt;code&amp;gt;go-l2tp&amp;lt;/code&amp;gt; package.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! !! Server !! Client&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Device&#039;&#039;&#039; || Ubuntu 24.04 || MikroTik RouterOS 7.20+&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Public IP&#039;&#039;&#039; || 157.90.26.4 || 78.157.42.222&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Tunnel IP&#039;&#039;&#039; || 10.0.0.1/30 || 10.0.0.2/30&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Tunnel ID&#039;&#039;&#039; || 100 || 200&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Session ID&#039;&#039;&#039; || 1000 || 2000&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 24.04 (kernel 6.8+)&lt;br /&gt;
* MikroTik RouterOS 7.20 or later&lt;br /&gt;
* Root access on both devices&lt;br /&gt;
* IP protocol 115 allowed in firewall on both sides&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Linux Server Setup ===&lt;br /&gt;
&lt;br /&gt;
==== 1. Install packages ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
apt install -y linux-modules-extra-$(uname -r) go-l2tp&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 2. Load kernel modules ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
modprobe l2tp_eth l2tp_ip l2tp_netlink&lt;br /&gt;
echo -e &amp;quot;l2tp_eth\nl2tp_ip\nl2tp_netlink&amp;quot; &amp;gt; /etc/modules-load.d/l2tp.conf&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 3. Create ql2tpd configuration ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir -p /etc/ql2tpd&lt;br /&gt;
cat &amp;gt; /etc/ql2tpd/ql2tpd.toml &amp;lt;&amp;lt; &#039;EOF&#039;&lt;br /&gt;
[tunnel.t1]&lt;br /&gt;
  version = &amp;quot;l2tpv3&amp;quot;&lt;br /&gt;
  encap = &amp;quot;ip&amp;quot;&lt;br /&gt;
  local = &amp;quot;157.90.26.4:0&amp;quot;&lt;br /&gt;
  peer = &amp;quot;78.157.42.222:0&amp;quot;&lt;br /&gt;
  tid = 100&lt;br /&gt;
  ptid = 200&lt;br /&gt;
&lt;br /&gt;
  [tunnel.t1.session.s1]&lt;br /&gt;
    pseudowire = &amp;quot;eth&amp;quot;&lt;br /&gt;
    sid = 1000&lt;br /&gt;
    psid = 2000&lt;br /&gt;
    interface_name = &amp;quot;l2tpeth0&amp;quot;&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 4. Create systemd service ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat &amp;gt; /etc/systemd/system/ql2tpd.service &amp;lt;&amp;lt; &#039;EOF&#039;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=L2TPv3 Static Tunnel&lt;br /&gt;
After=network.target&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
ExecStart=/usr/sbin/ql2tpd -config /etc/ql2tpd/ql2tpd.toml&lt;br /&gt;
Restart=always&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
systemctl enable --now ql2tpd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 5. Assign tunnel IP ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sleep 2&lt;br /&gt;
ip addr add 10.0.0.1/30 dev l2tpeth0&lt;br /&gt;
ip link set l2tpeth0 up&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 6. Persist IP after reboot ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat &amp;gt; /etc/networkd-dispatcher/routable.d/l2tp-ip.sh &amp;lt;&amp;lt; &#039;EOF&#039;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
sleep 3&lt;br /&gt;
ip addr add 10.0.0.1/30 dev l2tpeth0 2&amp;gt;/dev/null&lt;br /&gt;
ip link set l2tpeth0 up 2&amp;gt;/dev/null&lt;br /&gt;
EOF&lt;br /&gt;
chmod +x /etc/networkd-dispatcher/routable.d/l2tp-ip.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== MikroTik Client Setup ===&lt;br /&gt;
&lt;br /&gt;
Run the following commands in the MikroTik terminal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/interface l2tp-ether add name=l2tpv3 connect-to=157.90.26.4 local-address=78.157.42.222 local-tunnel-id=200 remote-tunnel-id=100 local-session-id=2000 remote-session-id=1000 l2tp-proto-version=l2tpv3-ip unmanaged-mode=yes disabled=no&lt;br /&gt;
&lt;br /&gt;
/ip address add address=10.0.0.2/30 interface=l2tpv3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note|&amp;lt;code&amp;gt;unmanaged-mode=yes&amp;lt;/code&amp;gt; is required. Without it, MikroTik attempts to run the L2TPv3 control protocol, which &amp;lt;code&amp;gt;ql2tpd&amp;lt;/code&amp;gt; does not support since it operates as a static (data-plane only) daemon.}}&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Verification ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;From Linux server:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ping 10.0.0.2 -c 4&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;From MikroTik:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/ping 10.0.0.1 count=4&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Cleanup ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Linux server:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
systemctl stop ql2tpd&lt;br /&gt;
systemctl disable ql2tpd&lt;br /&gt;
rm /etc/systemd/system/ql2tpd.service&lt;br /&gt;
rm -rf /etc/ql2tpd&lt;br /&gt;
rm -f /etc/networkd-dispatcher/routable.d/l2tp-ip.sh&lt;br /&gt;
rm -f /etc/modules-load.d/l2tp.conf&lt;br /&gt;
systemctl daemon-reload&lt;br /&gt;
ip link del l2tpeth0 2&amp;gt;/dev/null&lt;br /&gt;
modprobe -r l2tp_eth l2tp_ip l2tp_netlink 2&amp;gt;/dev/null&lt;br /&gt;
apt remove -y go-l2tp&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MikroTik:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/ip address remove [find interface=l2tpv3]&lt;br /&gt;
/interface l2tp-ether remove l2tpv3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Symptom !! Cause !! Fix&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Module l2tp_eth not found&amp;lt;/code&amp;gt; || Missing extra modules || &amp;lt;code&amp;gt;apt install linux-modules-extra-$(uname -r)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Interface not created || &amp;lt;code&amp;gt;ql2tpd&amp;lt;/code&amp;gt; not running in background || Run with &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; or use systemd service&lt;br /&gt;
|-&lt;br /&gt;
| Link stays DOWN || MikroTik sending control messages || Add &amp;lt;code&amp;gt;unmanaged-mode=yes&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| No packets arriving || Firewall blocking proto 115 || Allow IP protocol 115 on both sides&lt;br /&gt;
|-&lt;br /&gt;
| IP lost after reboot || No persistence script || Add networkd-dispatcher script (step 6)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;ql2tpd&amp;lt;/code&amp;gt; is a static (quiescent) L2TPv3 daemon — it does &#039;&#039;&#039;not&#039;&#039;&#039; run the L2TPv3 control protocol. Both peers must have matching tunnel and session IDs configured manually.&lt;br /&gt;
* MikroTik &amp;lt;code&amp;gt;l2tp-ether&amp;lt;/code&amp;gt; with &amp;lt;code&amp;gt;unmanaged-mode=yes&amp;lt;/code&amp;gt; bypasses the control protocol and operates as a pure static data plane, making it compatible with &amp;lt;code&amp;gt;ql2tpd&amp;lt;/code&amp;gt;.&lt;br /&gt;
* The tunnel carries raw Ethernet frames (pseudowire type: &amp;lt;code&amp;gt;eth&amp;lt;/code&amp;gt;), making it suitable for Layer 2 bridging between sites.&lt;br /&gt;
* No encryption is applied by default. For production use, consider wrapping the tunnel with IPsec.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/katalix/go-l2tp go-l2tp GitHub]&lt;br /&gt;
* [https://manpages.ubuntu.com/manpages/oracular/man5/ql2tpd.toml.5.html ql2tpd.toml man page]&lt;br /&gt;
* [https://www.rfc-editor.org/rfc/rfc3931 RFC 3931 — L2TPv3]&lt;br /&gt;
* [https://www.rfc-editor.org/rfc/rfc4719 RFC 4719 — L2TPv3 Ethernet Pseudowire]&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Ubuntu_dns&amp;diff=169</id>
		<title>Ubuntu dns</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Ubuntu_dns&amp;diff=169"/>
		<updated>2026-04-27T09:56:41Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
Edit the Netplan configuration file (usually located in /etc/netplan/). For example: sudo nano /etc/netplan/01-network-manager-all.yaml.&lt;br /&gt;
To configure a static IP, modify the network: section with your desired IP address, gateway, and DNS servers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
edit &lt;br /&gt;
 sudo nano /etc/netplan/01-network-manager-all.yaml&lt;br /&gt;
Apply the changes: &lt;br /&gt;
 sudo netplan apply&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
can view your DNS On this file&lt;br /&gt;
 nano /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/systemd/resolved.conf&lt;br /&gt;
&lt;br /&gt;
یا در صورت استفاده از resolvconf:&lt;br /&gt;
&lt;br /&gt;
 echo -e “nameserver 178.22.122.100\nnameserver 185.51.200.2” | sudo tee /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
روش استفاده شده برای سرور ایمیل این بود&lt;br /&gt;
  sudo nano /etc/systemd/resolved.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== for loca server ==&lt;br /&gt;
  sudo nano /etc/netplan/00-installer-config.yaml&lt;br /&gt;
&lt;br /&gt;
** add dns to list in file&lt;br /&gt;
Example&lt;br /&gt;
 # This is the network config written by &#039;subiquity&#039;&lt;br /&gt;
 network:&lt;br /&gt;
   ethernets:&lt;br /&gt;
     ens160:&lt;br /&gt;
       addresses:&lt;br /&gt;
       - 192.168.10.100/24&lt;br /&gt;
       nameservers:&lt;br /&gt;
         addresses:&lt;br /&gt;
         - 8.8.8.8&lt;br /&gt;
         - 1.1.1.1&lt;br /&gt;
         - 185.20.163.2&lt;br /&gt;
         - 185.20.163.4&lt;br /&gt;
         - 87.107.110.109&lt;br /&gt;
         - 87.107.110.110&lt;br /&gt;
         search:&lt;br /&gt;
         - 8.8.8.8&lt;br /&gt;
         - 1.1.1.1&lt;br /&gt;
         - 185.20.163.2&lt;br /&gt;
         - 185.20.163.4&lt;br /&gt;
         - 87.107.110.109&lt;br /&gt;
         - 87.107.110.110&lt;br /&gt;
       routes:&lt;br /&gt;
       - to: default&lt;br /&gt;
         via: 192.168.10.1&lt;br /&gt;
   version: 2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
** run apply&lt;br /&gt;
 sudo netplan apply&lt;br /&gt;
&lt;br /&gt;
** view chenged file&lt;br /&gt;
 sudo nano /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Example&lt;br /&gt;
 nameserver 127.0.0.53&lt;br /&gt;
 options edns0 trust-ad&lt;br /&gt;
 search 8.8.8.8 1.1.1.1 185.20.163.2 185.20.163.4 87.107.110.109 87.107.110.110&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Ubuntu_dns&amp;diff=168</id>
		<title>Ubuntu dns</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Ubuntu_dns&amp;diff=168"/>
		<updated>2026-04-27T09:55:31Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
Edit the Netplan configuration file (usually located in /etc/netplan/). For example: sudo nano /etc/netplan/01-network-manager-all.yaml.&lt;br /&gt;
To configure a static IP, modify the network: section with your desired IP address, gateway, and DNS servers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
edit &lt;br /&gt;
 sudo nano /etc/netplan/01-network-manager-all.yaml&lt;br /&gt;
Apply the changes: &lt;br /&gt;
 sudo netplan apply&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
can view your DNS On this file&lt;br /&gt;
 nano /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/systemd/resolved.conf&lt;br /&gt;
&lt;br /&gt;
یا در صورت استفاده از resolvconf:&lt;br /&gt;
&lt;br /&gt;
 echo -e “nameserver 178.22.122.100\nnameserver 185.51.200.2” | sudo tee /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# آخرین   روش استافده شده برای سرور ایمیل این بود&lt;br /&gt;
  sudo nano /etc/systemd/resolved.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== for loca server ==&lt;br /&gt;
  sudo nano /etc/netplan/00-installer-config.yaml&lt;br /&gt;
&lt;br /&gt;
# add dns to list in file&lt;br /&gt;
Example&lt;br /&gt;
 # This is the network config written by &#039;subiquity&#039;&lt;br /&gt;
 network:&lt;br /&gt;
   ethernets:&lt;br /&gt;
     ens160:&lt;br /&gt;
       addresses:&lt;br /&gt;
       - 192.168.10.100/24&lt;br /&gt;
       nameservers:&lt;br /&gt;
         addresses:&lt;br /&gt;
         - 8.8.8.8&lt;br /&gt;
         - 1.1.1.1&lt;br /&gt;
         - 185.20.163.2&lt;br /&gt;
         - 185.20.163.4&lt;br /&gt;
         - 87.107.110.109&lt;br /&gt;
         - 87.107.110.110&lt;br /&gt;
         search:&lt;br /&gt;
         - 8.8.8.8&lt;br /&gt;
         - 1.1.1.1&lt;br /&gt;
         - 185.20.163.2&lt;br /&gt;
         - 185.20.163.4&lt;br /&gt;
         - 87.107.110.109&lt;br /&gt;
         - 87.107.110.110&lt;br /&gt;
       routes:&lt;br /&gt;
       - to: default&lt;br /&gt;
         via: 192.168.10.1&lt;br /&gt;
   version: 2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
## run apply&lt;br /&gt;
 sudo netplan apply&lt;br /&gt;
&lt;br /&gt;
### view chenged file&lt;br /&gt;
 sudo nano /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Example&lt;br /&gt;
 nameserver 127.0.0.53&lt;br /&gt;
 options edns0 trust-ad&lt;br /&gt;
 search 8.8.8.8 1.1.1.1 185.20.163.2 185.20.163.4 87.107.110.109 87.107.110.110&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Ubuntu_dns&amp;diff=167</id>
		<title>Ubuntu dns</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Ubuntu_dns&amp;diff=167"/>
		<updated>2026-04-27T09:52:15Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
Edit the Netplan configuration file (usually located in /etc/netplan/). For example: sudo nano /etc/netplan/01-network-manager-all.yaml.&lt;br /&gt;
To configure a static IP, modify the network: section with your desired IP address, gateway, and DNS servers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
edit &lt;br /&gt;
 sudo nano /etc/netplan/01-network-manager-all.yaml&lt;br /&gt;
Apply the changes: &lt;br /&gt;
 sudo netplan apply&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
can view your DNS On this file&lt;br /&gt;
 nano /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/systemd/resolved.conf&lt;br /&gt;
&lt;br /&gt;
یا در صورت استفاده از resolvconf:&lt;br /&gt;
&lt;br /&gt;
 echo -e “nameserver 178.22.122.100\nnameserver 185.51.200.2” | sudo tee /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# آخرین   روش استافده شده برای سرور ایمیل این بود&lt;br /&gt;
  sudo nano /etc/systemd/resolved.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
## for loca server&lt;br /&gt;
  sudo nano /etc/netplan/00-installer-config.yaml&lt;br /&gt;
&lt;br /&gt;
### add dns to list in file&lt;br /&gt;
Example&lt;br /&gt;
 # This is the network config written by &#039;subiquity&#039;&lt;br /&gt;
 network:&lt;br /&gt;
   ethernets:&lt;br /&gt;
     ens160:&lt;br /&gt;
       addresses:&lt;br /&gt;
       - 192.168.10.100/24&lt;br /&gt;
       nameservers:&lt;br /&gt;
         addresses:&lt;br /&gt;
         - 8.8.8.8&lt;br /&gt;
         - 1.1.1.1&lt;br /&gt;
         - 185.20.163.2&lt;br /&gt;
         - 185.20.163.4&lt;br /&gt;
         - 87.107.110.109&lt;br /&gt;
         - 87.107.110.110&lt;br /&gt;
         search:&lt;br /&gt;
         - 8.8.8.8&lt;br /&gt;
         - 1.1.1.1&lt;br /&gt;
         - 185.20.163.2&lt;br /&gt;
         - 185.20.163.4&lt;br /&gt;
         - 87.107.110.109&lt;br /&gt;
         - 87.107.110.110&lt;br /&gt;
       routes:&lt;br /&gt;
       - to: default&lt;br /&gt;
         via: 192.168.10.1&lt;br /&gt;
   version: 2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#### run apply&lt;br /&gt;
 sudo netplan apply&lt;br /&gt;
&lt;br /&gt;
##### view chenged file&lt;br /&gt;
 sudo nano /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Example&lt;br /&gt;
 nameserver 127.0.0.53&lt;br /&gt;
 options edns0 trust-ad&lt;br /&gt;
 search 8.8.8.8 1.1.1.1 185.20.163.2 185.20.163.4 87.107.110.109 87.107.110.110&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Ubuntu_dns&amp;diff=166</id>
		<title>Ubuntu dns</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Ubuntu_dns&amp;diff=166"/>
		<updated>2026-04-27T09:49:45Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
Edit the Netplan configuration file (usually located in /etc/netplan/). For example: sudo nano /etc/netplan/01-network-manager-all.yaml.&lt;br /&gt;
To configure a static IP, modify the network: section with your desired IP address, gateway, and DNS servers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
edit &lt;br /&gt;
 sudo nano /etc/netplan/01-network-manager-all.yaml&lt;br /&gt;
Apply the changes: &lt;br /&gt;
 sudo netplan apply&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
can view your DNS On this file&lt;br /&gt;
 nano /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/systemd/resolved.conf&lt;br /&gt;
&lt;br /&gt;
یا در صورت استفاده از resolvconf:&lt;br /&gt;
&lt;br /&gt;
 echo -e “nameserver 178.22.122.100\nnameserver 185.51.200.2” | sudo tee /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#آخرین   روش استافده شده برای سرور ایمیل این بود&lt;br /&gt;
  sudo nano /etc/systemd/resolved.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
##for loca server&lt;br /&gt;
  sudo nano /etc/netplan/00-installer-config.yaml&lt;br /&gt;
&lt;br /&gt;
###add dns to list in file&lt;br /&gt;
Example&lt;br /&gt;
 # This is the network config written by &#039;subiquity&#039;&lt;br /&gt;
 network:&lt;br /&gt;
   ethernets:&lt;br /&gt;
     ens160:&lt;br /&gt;
       addresses:&lt;br /&gt;
       - 192.168.10.100/24&lt;br /&gt;
       nameservers:&lt;br /&gt;
         addresses:&lt;br /&gt;
         - 8.8.8.8&lt;br /&gt;
         - 1.1.1.1&lt;br /&gt;
         - 185.20.163.2&lt;br /&gt;
         - 185.20.163.4&lt;br /&gt;
         - 87.107.110.109&lt;br /&gt;
         - 87.107.110.110&lt;br /&gt;
         search:&lt;br /&gt;
         - 8.8.8.8&lt;br /&gt;
         - 1.1.1.1&lt;br /&gt;
         - 185.20.163.2&lt;br /&gt;
         - 185.20.163.4&lt;br /&gt;
         - 87.107.110.109&lt;br /&gt;
         - 87.107.110.110&lt;br /&gt;
       routes:&lt;br /&gt;
       - to: default&lt;br /&gt;
         via: 192.168.10.1&lt;br /&gt;
   version: 2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
####run apply&lt;br /&gt;
 sudo netplan apply&lt;br /&gt;
&lt;br /&gt;
#####view chenged file&lt;br /&gt;
 sudo nano /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Example&lt;br /&gt;
 nameserver 127.0.0.53&lt;br /&gt;
 options edns0 trust-ad&lt;br /&gt;
 search 8.8.8.8 1.1.1.1 185.20.163.2 185.20.163.4 87.107.110.109 87.107.110.110&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Ubuntu_dns&amp;diff=165</id>
		<title>Ubuntu dns</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Ubuntu_dns&amp;diff=165"/>
		<updated>2026-04-27T09:48:07Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
Edit the Netplan configuration file (usually located in /etc/netplan/). For example: sudo nano /etc/netplan/01-network-manager-all.yaml.&lt;br /&gt;
To configure a static IP, modify the network: section with your desired IP address, gateway, and DNS servers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
edit &lt;br /&gt;
 sudo nano /etc/netplan/01-network-manager-all.yaml&lt;br /&gt;
Apply the changes: &lt;br /&gt;
 sudo netplan apply&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
can view your DNS On this file&lt;br /&gt;
 nano /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/systemd/resolved.conf&lt;br /&gt;
&lt;br /&gt;
# یا در صورت استفاده از resolvconf:&lt;br /&gt;
&lt;br /&gt;
 echo -e “nameserver 178.22.122.100\nnameserver 185.51.200.2” | sudo tee /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#آخرین   روش استافده شده برای سرور ایمیل این بود&lt;br /&gt;
  sudo nano /etc/systemd/resolved.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#for loca server&lt;br /&gt;
  sudo nano /etc/netplan/00-installer-config.yaml&lt;br /&gt;
&lt;br /&gt;
#add dns to list in file&lt;br /&gt;
Example&lt;br /&gt;
 # This is the network config written by &#039;subiquity&#039;&lt;br /&gt;
 network:&lt;br /&gt;
   ethernets:&lt;br /&gt;
     ens160:&lt;br /&gt;
       addresses:&lt;br /&gt;
       - 192.168.10.100/24&lt;br /&gt;
       nameservers:&lt;br /&gt;
         addresses:&lt;br /&gt;
         - 8.8.8.8&lt;br /&gt;
         - 1.1.1.1&lt;br /&gt;
         - 185.20.163.2&lt;br /&gt;
         - 185.20.163.4&lt;br /&gt;
         - 87.107.110.109&lt;br /&gt;
         - 87.107.110.110&lt;br /&gt;
         search:&lt;br /&gt;
         - 8.8.8.8&lt;br /&gt;
         - 1.1.1.1&lt;br /&gt;
         - 185.20.163.2&lt;br /&gt;
         - 185.20.163.4&lt;br /&gt;
         - 87.107.110.109&lt;br /&gt;
         - 87.107.110.110&lt;br /&gt;
       routes:&lt;br /&gt;
       - to: default&lt;br /&gt;
         via: 192.168.10.1&lt;br /&gt;
   version: 2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
run apply&lt;br /&gt;
 sudo netplan apply&lt;br /&gt;
&lt;br /&gt;
view chenged file&lt;br /&gt;
 sudo nano /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Example&lt;br /&gt;
 nameserver 127.0.0.53&lt;br /&gt;
 options edns0 trust-ad&lt;br /&gt;
 search 8.8.8.8 1.1.1.1 185.20.163.2 185.20.163.4 87.107.110.109 87.107.110.110&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Ubuntu_dns&amp;diff=164</id>
		<title>Ubuntu dns</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Ubuntu_dns&amp;diff=164"/>
		<updated>2026-04-27T09:47:14Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
Edit the Netplan configuration file (usually located in /etc/netplan/). For example: sudo nano /etc/netplan/01-network-manager-all.yaml.&lt;br /&gt;
To configure a static IP, modify the network: section with your desired IP address, gateway, and DNS servers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
edit &lt;br /&gt;
 sudo nano /etc/netplan/01-network-manager-all.yaml&lt;br /&gt;
Apply the changes: &lt;br /&gt;
 sudo netplan apply&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
can view your DNS On this file&lt;br /&gt;
 nano /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/systemd/resolved.conf&lt;br /&gt;
&lt;br /&gt;
# یا در صورت استفاده از resolvconf:&lt;br /&gt;
&lt;br /&gt;
 echo -e “nameserver 178.22.122.100\nnameserver 185.51.200.2” | sudo tee /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#آخرین   روش استافده شده برای سرور ایمیل این بود&lt;br /&gt;
  sudo nano /etc/systemd/resolved.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#for loca server&lt;br /&gt;
  sudo nano /etc/netplan/00-installer-config.yaml&lt;br /&gt;
&lt;br /&gt;
#add dns to list in file&lt;br /&gt;
&lt;br /&gt;
 # This is the network config written by &#039;subiquity&#039;&lt;br /&gt;
 network:&lt;br /&gt;
   ethernets:&lt;br /&gt;
     ens160:&lt;br /&gt;
       addresses:&lt;br /&gt;
       - 192.168.10.100/24&lt;br /&gt;
       nameservers:&lt;br /&gt;
         addresses:&lt;br /&gt;
         - 8.8.8.8&lt;br /&gt;
         - 1.1.1.1&lt;br /&gt;
         - 185.20.163.2&lt;br /&gt;
         - 185.20.163.4&lt;br /&gt;
         - 87.107.110.109&lt;br /&gt;
         - 87.107.110.110&lt;br /&gt;
         search:&lt;br /&gt;
         - 8.8.8.8&lt;br /&gt;
         - 1.1.1.1&lt;br /&gt;
         - 185.20.163.2&lt;br /&gt;
         - 185.20.163.4&lt;br /&gt;
         - 87.107.110.109&lt;br /&gt;
         - 87.107.110.110&lt;br /&gt;
       routes:&lt;br /&gt;
       - to: default&lt;br /&gt;
         via: 192.168.10.1&lt;br /&gt;
   version: 2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
run apply&lt;br /&gt;
 sudo netplan apply&lt;br /&gt;
&lt;br /&gt;
view chenged file&lt;br /&gt;
 sudo nano /etc/resolv.conf&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Python&amp;diff=163</id>
		<title>Python</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Python&amp;diff=163"/>
		<updated>2026-04-05T17:52:56Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
update &lt;br /&gt;
 pip install --upgrade pip&lt;br /&gt;
&lt;br /&gt;
env&lt;br /&gt;
  python -m venv ./venv&lt;br /&gt;
&lt;br /&gt;
Active windows&lt;br /&gt;
 venv\Scripts\activate&lt;br /&gt;
&lt;br /&gt;
Active ubuntu&lt;br /&gt;
 source venv/bin/activate&lt;br /&gt;
&lt;br /&gt;
install requirements&lt;br /&gt;
 pip install --upgrade -r requirements.txt&lt;br /&gt;
JupyterLab&lt;br /&gt;
 pip install jupyterlab&lt;br /&gt;
 jupyter lab&lt;br /&gt;
&lt;br /&gt;
Jupyter Notebook&lt;br /&gt;
 pip install notebook&lt;br /&gt;
 jupyter notebook&lt;br /&gt;
&lt;br /&gt;
Homebrew&lt;br /&gt;
Homebrew is a package manager for macOS and Linux. You can use it to install Jupyter by running:&lt;br /&gt;
 brew install jupyterlab&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
upgrade python&lt;br /&gt;
 choco upgrade python -y&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Python&amp;diff=162</id>
		<title>Python</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Python&amp;diff=162"/>
		<updated>2026-04-05T17:45:13Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
update &lt;br /&gt;
 pip install --upgrade pip&lt;br /&gt;
&lt;br /&gt;
env&lt;br /&gt;
  python -m venv ./venv&lt;br /&gt;
&lt;br /&gt;
Active windows&lt;br /&gt;
 venv\Scripts\activate&lt;br /&gt;
&lt;br /&gt;
Active ubuntu&lt;br /&gt;
 source venv/bin/activate&lt;br /&gt;
&lt;br /&gt;
JupyterLab&lt;br /&gt;
 pip install jupyterlab&lt;br /&gt;
 jupyter lab&lt;br /&gt;
&lt;br /&gt;
Jupyter Notebook&lt;br /&gt;
 pip install notebook&lt;br /&gt;
 jupyter notebook&lt;br /&gt;
&lt;br /&gt;
Homebrew&lt;br /&gt;
Homebrew is a package manager for macOS and Linux. You can use it to install Jupyter by running:&lt;br /&gt;
 brew install jupyterlab&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
upgrade python&lt;br /&gt;
 choco upgrade python -y&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Ubuntu_dns&amp;diff=161</id>
		<title>Ubuntu dns</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Ubuntu_dns&amp;diff=161"/>
		<updated>2026-02-17T07:13:23Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
Edit the Netplan configuration file (usually located in /etc/netplan/). For example: sudo nano /etc/netplan/01-network-manager-all.yaml.&lt;br /&gt;
To configure a static IP, modify the network: section with your desired IP address, gateway, and DNS servers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
edit &lt;br /&gt;
 sudo nano /etc/netplan/01-network-manager-all.yaml&lt;br /&gt;
Apply the changes: &lt;br /&gt;
 sudo netplan apply&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
can view your DNS On this file&lt;br /&gt;
 nano /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/systemd/resolved.conf&lt;br /&gt;
&lt;br /&gt;
# یا در صورت استفاده از resolvconf:&lt;br /&gt;
&lt;br /&gt;
 echo -e “nameserver 178.22.122.100\nnameserver 185.51.200.2” | sudo tee /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#آخرین   روش استافده شده برای سرور ایمیل این بود&lt;br /&gt;
  sudo nano /etc/systemd/resolved.conf&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Mikrotik_container&amp;diff=160</id>
		<title>Mikrotik container</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Mikrotik_container&amp;diff=160"/>
		<updated>2026-01-29T07:17:07Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
فعال کردن کانتینر&lt;br /&gt;
 /system/device-mode/update container=yes&lt;br /&gt;
ریبوت سخت افزاری&lt;br /&gt;
&lt;br /&gt;
ساخت اینترفیس و نت&lt;br /&gt;
 /interface/veth/add name=veth1 address=172.17.0.2/24 gateway=172.17.0.1&lt;br /&gt;
&lt;br /&gt;
 /interface/bridge/add name=containers&lt;br /&gt;
 /ip/address/add address=172.17.0.1/24 interface=containers&lt;br /&gt;
 /interface/bridge/port add bridge=containers interface=veth1&lt;br /&gt;
&lt;br /&gt;
 /ip/firewall/nat/add chain=srcnat action=masquerade src-address=172.17.0.0/24&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
کامندها&lt;br /&gt;
&lt;br /&gt;
 /container/config/set registry-url=https://registry-1.docker.io tmpdir=/pull&lt;br /&gt;
&lt;br /&gt;
 /container/add remote-image=teddysun/v2ray:latest interface=veth1 root-dir=/v2ray&lt;br /&gt;
&lt;br /&gt;
 container/shell 0&lt;br /&gt;
&lt;br /&gt;
سمپل یه کانفیگ سمت سرور&lt;br /&gt;
&lt;br /&gt;
 cat &amp;gt; /etc/v2ray/config.json &amp;lt;&amp;lt;EOF&lt;br /&gt;
 {&lt;br /&gt;
  &amp;quot;inbounds&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;port&amp;quot;: 443,&lt;br /&gt;
      &amp;quot;protocol&amp;quot;: &amp;quot;vless&amp;quot;,&lt;br /&gt;
      &amp;quot;settings&amp;quot;: {&lt;br /&gt;
        &amp;quot;clients&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;id&amp;quot;: &amp;quot;6B57824F-5F8B-407C-96F5-BD2D50F6BB45&amp;quot;,&lt;br /&gt;
            &amp;quot;flow&amp;quot;: &amp;quot;xtls-rprx-direct&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;decryption&amp;quot;: &amp;quot;none&amp;quot;,&lt;br /&gt;
        &amp;quot;fallbacks&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;dest&amp;quot;: 80,&lt;br /&gt;
            &amp;quot;xver&amp;quot;: 0&lt;br /&gt;
          },&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;alpn&amp;quot;: &amp;quot;h2&amp;quot;,&lt;br /&gt;
            &amp;quot;dest&amp;quot;: 888,&lt;br /&gt;
            &amp;quot;xver&amp;quot;: 1&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;outbounds&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;protocol&amp;quot;: &amp;quot;freedom&amp;quot;,&lt;br /&gt;
      &amp;quot;settings&amp;quot;: {}&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
 }&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#روش دیگر&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
برای دریافت تصویر کانتینر:&lt;br /&gt;
&lt;br /&gt;
 /tool/fetch url=https://example.com/container-image.tar dst-path=disk1/images/container-image.tar&lt;br /&gt;
سپس برای اجرای کانتینر:&lt;br /&gt;
 /container/add file=disk1/images/container-image.tar interface=veth1 root-dir=disk1/containers/container1&lt;br /&gt;
 /container/start 0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
برای اجرای Pi-hole&lt;br /&gt;
 /container/add remote-image=pihole/pihole:latest interface=veth1 root-dir=disk1/pihole&lt;br /&gt;
 /container/start 0&lt;br /&gt;
&lt;br /&gt;
اجرای Home Assistant&lt;br /&gt;
برای اجرای Home Assistant:&lt;br /&gt;
&lt;br /&gt;
 /container/add remote-image=homeassistant/home-assistant:latest interface=veth1 root-dir=disk1/homeassistant&lt;br /&gt;
 /container/start 0&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Mikrotik_container&amp;diff=159</id>
		<title>Mikrotik container</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Mikrotik_container&amp;diff=159"/>
		<updated>2026-01-29T07:05:29Z</updated>

		<summary type="html">&lt;p&gt;Karavi: Created page with &amp;quot; فعال کردن کانتینر  /system/device-mode/update container=yes ریبوت سخت افزاری  ساخت اینترفیس و نت  /interface/veth/add name=veth1 address=172.17.0.2/24 gateway=172.17.0.1   /interface/bridge/add name=containers  /ip/address/add address=172.17.0.1/24 interface=containers  /interface/bridge/port add bridge=containers interface=veth1   /ip/firewall/nat/add chain=srcnat action=masquerade src-address=172.17.0.0/24   کامندها...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
فعال کردن کانتینر&lt;br /&gt;
 /system/device-mode/update container=yes&lt;br /&gt;
ریبوت سخت افزاری&lt;br /&gt;
&lt;br /&gt;
ساخت اینترفیس و نت&lt;br /&gt;
 /interface/veth/add name=veth1 address=172.17.0.2/24 gateway=172.17.0.1&lt;br /&gt;
&lt;br /&gt;
 /interface/bridge/add name=containers&lt;br /&gt;
 /ip/address/add address=172.17.0.1/24 interface=containers&lt;br /&gt;
 /interface/bridge/port add bridge=containers interface=veth1&lt;br /&gt;
&lt;br /&gt;
 /ip/firewall/nat/add chain=srcnat action=masquerade src-address=172.17.0.0/24&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
کامندها&lt;br /&gt;
&lt;br /&gt;
 /container/config/set registry-url=https://registry-1.docker.io tmpdir=/pull&lt;br /&gt;
&lt;br /&gt;
 /container/add remote-image=teddysun/v2ray:latest interface=veth1 root-dir=/v2ray&lt;br /&gt;
&lt;br /&gt;
 container/shell 0&lt;br /&gt;
&lt;br /&gt;
سمپل یه کانفیگ سمت سرور&lt;br /&gt;
&lt;br /&gt;
 cat &amp;gt; /etc/v2ray/config.json &amp;lt;&amp;lt;EOF&lt;br /&gt;
 {&lt;br /&gt;
  &amp;quot;inbounds&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;port&amp;quot;: 443,&lt;br /&gt;
      &amp;quot;protocol&amp;quot;: &amp;quot;vless&amp;quot;,&lt;br /&gt;
      &amp;quot;settings&amp;quot;: {&lt;br /&gt;
        &amp;quot;clients&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;id&amp;quot;: &amp;quot;6B57824F-5F8B-407C-96F5-BD2D50F6BB45&amp;quot;,&lt;br /&gt;
            &amp;quot;flow&amp;quot;: &amp;quot;xtls-rprx-direct&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;decryption&amp;quot;: &amp;quot;none&amp;quot;,&lt;br /&gt;
        &amp;quot;fallbacks&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;dest&amp;quot;: 80,&lt;br /&gt;
            &amp;quot;xver&amp;quot;: 0&lt;br /&gt;
          },&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;alpn&amp;quot;: &amp;quot;h2&amp;quot;,&lt;br /&gt;
            &amp;quot;dest&amp;quot;: 888,&lt;br /&gt;
            &amp;quot;xver&amp;quot;: 1&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;outbounds&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;protocol&amp;quot;: &amp;quot;freedom&amp;quot;,&lt;br /&gt;
      &amp;quot;settings&amp;quot;: {}&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
 }&lt;br /&gt;
 EOF&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Mikrotik_ssl&amp;diff=158</id>
		<title>Mikrotik ssl</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Mikrotik_ssl&amp;diff=158"/>
		<updated>2025-12-24T05:56:14Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I have created the address lists&lt;br /&gt;
&lt;br /&gt;
 /ip firewall address-list add address=acme-v02.api.letsencrypt.org list=LetsEncrypt comment=&amp;quot;### LetsEncrypt ###&amp;quot;&lt;br /&gt;
 /ip firewall address-list add address=acme-staging-v02.api.letsencrypt.org list=LetsEncrypt comment=&amp;quot;### LetsEncrypt ###&amp;quot;&lt;br /&gt;
 /ip firewall address-list add address=letsencrypt.org list=LetsEncrypt comment=&amp;quot;### LetsEncrypt ###&amp;quot;&lt;br /&gt;
&lt;br /&gt;
add mangle &lt;br /&gt;
&lt;br /&gt;
 /ip firewall mangle add chain=postrouting src-address-type=local dst-address-list=LetsEncrypt action=add-src-to-address-list address-list=acme-client address-list-timeout=1m  place-before=0 comment=&amp;quot;### LetsEncrypt ###&amp;quot;&lt;br /&gt;
&lt;br /&gt;
I have created a firewall filter rule to accept traffic on the input chain from the Let’s Encrypt list:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /ip firewall filter add action=accept chain=input dst-port=80 protocol=tcp src-address-list=LetsEncrypt place-before=0 in-interface-list=WAN  comment=&amp;quot;### LetsEncrypt ###&amp;quot;&lt;br /&gt;
 /ip firewall filter add chain=input dst-address-list=acme-client protocol=tcp dst-port=80 action=accept place-before=0 in-interface-list=WAN  comment=&amp;quot;### LetsEncrypt ###&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To test this, although we do have a fixed public IP, I enabled the IP–&amp;gt;Cloud–&amp;gt;DDNS option to give me a name there and then used the command shown in the video to create a let’s encrypt certificate for automatically generated domain name:&lt;br /&gt;
&lt;br /&gt;
 /certificate enable-ssl-certificate dns-name=myrouter.example.com &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
after &lt;br /&gt;
 /ip service set www-ssl certificate=issued-cert-name&lt;br /&gt;
or&lt;br /&gt;
 /interface sstp-server server set certificate=issued-cert-name&lt;br /&gt;
&lt;br /&gt;
for check log&lt;br /&gt;
 /log print where message~&amp;quot;certificate&amp;quot;&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Mikrotik_ssl&amp;diff=157</id>
		<title>Mikrotik ssl</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Mikrotik_ssl&amp;diff=157"/>
		<updated>2025-12-24T05:52:25Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I have created the address lists&lt;br /&gt;
&lt;br /&gt;
 /ip firewall address-list add address=acme-v02.api.letsencrypt.org list=LetsEncrypt comment=&amp;quot;### LetsEncrypt ###&amp;quot;&lt;br /&gt;
 /ip firewall address-list add address=acme-staging-v02.api.letsencrypt.org list=LetsEncrypt comment=&amp;quot;### LetsEncrypt ###&amp;quot;&lt;br /&gt;
 /ip firewall address-list add address=letsencrypt.org list=LetsEncrypt comment=&amp;quot;### LetsEncrypt ###&amp;quot;&lt;br /&gt;
&lt;br /&gt;
add mangle &lt;br /&gt;
&lt;br /&gt;
 /ip firewall mangle add chain=postrouting src-address-type=local dst-address-list=LetsEncrypt action=add-src-to-address-list address-list=acme-client address-list-timeout=1m  comment=&amp;quot;### LetsEncrypt ###&amp;quot;&lt;br /&gt;
&lt;br /&gt;
I have created a firewall filter rule to accept traffic on the input chain from the Let’s Encrypt list:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /ip firewall filter add action=accept chain=input dst-port=80 protocol=tcp src-address-list=LetsEncrypt place-before=0 in-interface-list=WAN  comment=&amp;quot;### LetsEncrypt ###&amp;quot;&lt;br /&gt;
 /ip firewall filter add chain=input dst-address-list=acme-client protocol=tcp dst-port=80 action=accept place-before=0 in-interface-list=WAN  comment=&amp;quot;### LetsEncrypt ###&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To test this, although we do have a fixed public IP, I enabled the IP–&amp;gt;Cloud–&amp;gt;DDNS option to give me a name there and then used the command shown in the video to create a let’s encrypt certificate for automatically generated domain name:&lt;br /&gt;
&lt;br /&gt;
 /certificate enable-ssl-certificate dns-name=myrouter.example.com &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
after &lt;br /&gt;
 /ip service set www-ssl certificate=issued-cert-name&lt;br /&gt;
or&lt;br /&gt;
 /interface sstp-server server set certificate=issued-cert-name&lt;br /&gt;
&lt;br /&gt;
for check log&lt;br /&gt;
 /log print where message~&amp;quot;certificate&amp;quot;&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Mikrotik_ssl&amp;diff=156</id>
		<title>Mikrotik ssl</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Mikrotik_ssl&amp;diff=156"/>
		<updated>2025-12-24T05:44:27Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I have created the address lists&lt;br /&gt;
&lt;br /&gt;
 /ip firewall address-list add address=acme-v02.api.letsencrypt.org list=LetsEncrypt comment=&amp;quot;### LetsEncrypt ###&amp;quot;&lt;br /&gt;
 /ip firewall address-list add address=acme-staging-v02.api.letsencrypt.org list=LetsEncrypt comment=&amp;quot;### LetsEncrypt ###&amp;quot;&lt;br /&gt;
 /ip firewall address-list add address=letsencrypt.org list=LetsEncrypt comment=&amp;quot;### LetsEncrypt ###&amp;quot;&lt;br /&gt;
&lt;br /&gt;
add mangle &lt;br /&gt;
&lt;br /&gt;
 /ip firewall mangle add chain=postrouting src-address-type=local dst-address-list=LetsEncrypt action=add-src-to-address-list address-list=acme-client address-list-timeout=1m  comment=&amp;quot;### LetsEncrypt ###&amp;quot;&lt;br /&gt;
&lt;br /&gt;
I have created a firewall filter rule to accept traffic on the input chain from the Let’s Encrypt list:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /ip firewall filter add action=accept chain=input comment=LetsEncrypt dst-port=80 protocol=tcp src-address-list=LetsEncrypt  comment=&amp;quot;### LetsEncrypt ###&amp;quot;&lt;br /&gt;
 /ip firewall filter add chain=input dst-address-list=acme-client protocol=tcp dst-port=80 action=accept in-interface-list=WAN  comment=&amp;quot;### LetsEncrypt ###&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To test this, although we do have a fixed public IP, I enabled the IP–&amp;gt;Cloud–&amp;gt;DDNS option to give me a name there and then used the command shown in the video to create a let’s encrypt certificate for automatically generated domain name:&lt;br /&gt;
&lt;br /&gt;
 /certificate enable-ssl-certificate dns-name=myrouter.example.com &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
after &lt;br /&gt;
 /ip service set www-ssl certificate=issued-cert-name&lt;br /&gt;
or&lt;br /&gt;
 /interface sstp-server server set certificate=issued-cert-name&lt;br /&gt;
&lt;br /&gt;
for check log&lt;br /&gt;
 /log print where message~&amp;quot;certificate&amp;quot;&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Mikrotik_ssl&amp;diff=155</id>
		<title>Mikrotik ssl</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Mikrotik_ssl&amp;diff=155"/>
		<updated>2025-12-24T05:35:12Z</updated>

		<summary type="html">&lt;p&gt;Karavi: Created page with &amp;quot;   I have created the address lists   /ip firewall address-list add address=acme-v02.api.letsencrypt.org list=LetsEncrypt  /ip firewall address-list add address=acme-staging-v02.api.letsencrypt.org list=LetsEncrypt  /ip firewall address-list add address=letsencrypt.org list=LetsEncrypt   I have created a firewall filter rule to accept traffic on the input chain from the Let’s Encrypt list:   /ip firewall filter add action=accept chain=input comment=LetsEncrypt dst-port...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I have created the address lists&lt;br /&gt;
&lt;br /&gt;
 /ip firewall address-list add address=acme-v02.api.letsencrypt.org list=LetsEncrypt&lt;br /&gt;
 /ip firewall address-list add address=acme-staging-v02.api.letsencrypt.org list=LetsEncrypt&lt;br /&gt;
 /ip firewall address-list add address=letsencrypt.org list=LetsEncrypt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I have created a firewall filter rule to accept traffic on the input chain from the Let’s Encrypt list:&lt;br /&gt;
&lt;br /&gt;
 /ip firewall filter add action=accept chain=input comment=LetsEncrypt dst-port=80 protocol=tcp src-address-list=LetsEncrypt&lt;br /&gt;
&lt;br /&gt;
To test this, although we do have a fixed public IP, I enabled the IP–&amp;gt;Cloud–&amp;gt;DDNS option to give me a name there and then used the command shown in the video to create a let’s encrypt certificate for automatically generated domain name:&lt;br /&gt;
&lt;br /&gt;
 /certificate enable-ssl-certificate dns-name=myrouter.example.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
after &lt;br /&gt;
 /ip service set www-ssl certificate=issued-cert-name&lt;br /&gt;
or&lt;br /&gt;
 /interface sstp-server server set certificate=issued-cert-name&lt;br /&gt;
&lt;br /&gt;
for check log&lt;br /&gt;
 /log print where message~&amp;quot;certificate&amp;quot;&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Mikrotik_wireless&amp;diff=154</id>
		<title>Mikrotik wireless</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Mikrotik_wireless&amp;diff=154"/>
		<updated>2025-11-29T05:33:24Z</updated>

		<summary type="html">&lt;p&gt;Karavi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
اسپکترال می تواند تمام فرکانس هایی که کارت وایرلس دستگاه شما پشتیبانی می کند را اسکن کند.&lt;br /&gt;
&lt;br /&gt;
به قسمت ترمینال دستگاه خود بروید و دستور زیر را وارد کنید.&lt;br /&gt;
&lt;br /&gt;
Irmikro@MikroTik] interface wireless&lt;br /&gt;
&lt;br /&gt;
و پس از وارد شدن به مود وایرلس دستور زیر را وارد کنید.&lt;br /&gt;
&lt;br /&gt;
Irmikro@MikroTik] /interface wireless&amp;gt; spectral-history range=5000-5900 number= 0&lt;br /&gt;
&lt;br /&gt;
در این قسمت شما میتوانید رنج مورد نظر خود را وارد کنید.&lt;br /&gt;
&lt;br /&gt;
در این مثال رنج 5800-5000 انتخاب شده&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
یگنال خوبی داری 54 و56 خوبه میشه پهنای باند نسبتا خوبی گرفت ..&lt;br /&gt;
&lt;br /&gt;
وقتی bandwidth test گذاشتی نمیشه ccq دقیق رو مشاهده کرد test رو قطع کن و ccq رو ببین&lt;br /&gt;
&lt;br /&gt;
با تعویض پروتکل ها و قرار دادن روی nv2 میتونی تغییر قابل ملاحضه ای حس کنی&lt;br /&gt;
&lt;br /&gt;
رو wlan برو وتب HT رو بررسی کن که هر دو چنل فعال باشن&lt;br /&gt;
&lt;br /&gt;
هرچه قدر تنظیماتت محدود تر باشه نتیجه بهتری رو میبینید&lt;br /&gt;
&lt;br /&gt;
پس فرکانس های مورد استفاده رو محدود کن&lt;br /&gt;
&lt;br /&gt;
با استفاده از دستور spectral-History فرکانس مناسب در سمت اکسس پوینت رو پیدا کن و تنظیمات رو بر اساس اون انجام بده&lt;br /&gt;
&lt;br /&gt;
حتما wps رو روی هر دو آنتن غیر فعال کن&lt;br /&gt;
&lt;br /&gt;
به این نکته هم توجه کن که اسکن رو اگر در سمت مقابل که دسترسی فیزیکی بهش نداری بزنی اون رادیو از دسترس خارج میشه&lt;br /&gt;
&lt;br /&gt;
هر چه قدر فرکانسی که انتخاب میکنی تو محدوده تیره تر باشه پس فرکانسه بهتری هست&lt;br /&gt;
&lt;br /&gt;
بهترین فرکانس رنگ مشکی بعد آبی و...&lt;br /&gt;
&lt;br /&gt;
مثلا تو این نمونه فرکانس 5770 تا 5790 فرکانس های خوبی هستن&lt;br /&gt;
&lt;br /&gt;
دوباره همین رنج رو اسکن باید کرد تا دقیق بشه فهمید که از بین این بازه چه فرکانسی بهترینه..&lt;br /&gt;
&lt;br /&gt;
به این نکته توجه کن که حتما باید هنگام ست کردن فرکانس ها ،فرکانس طرف مقابل تو اسکن لیست باشه&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
</feed>