You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+84-40Lines changed: 84 additions & 40 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -66,14 +66,13 @@ Output files will be in the `dist/` folder.
66
66
67
67
### ARIA Setup (Required for AI features)
68
68
69
-
ARIA requires an [Anthropic API key](https://console.anthropic.com/):
69
+
ARIA requires a license key from [netcopilot.app](https://netcopilot.app/register):
70
70
71
71
1. Open the app → Settings → ARIA
72
-
2. Paste your API key
73
-
3. Click **Test Connection** to verify
74
-
4. Choose your preferred model (Sonnet, Opus, or Haiku)
72
+
2. Paste your license key
73
+
3. ARIA is ready — all AI requests are routed through the NetCopilot API
75
74
76
-
Your API key is stored in the **OS keychain** — never on disk or in any file.
75
+
Your license key is stored in the **OS keychain** — never on disk or in any file.
77
76
78
77
---
79
78
@@ -104,6 +103,42 @@ ARIA:
104
103
MTU mismatch detected on Gi0/0/1. Recommended fix: ...
105
104
```
106
105
106
+
### Per-Platform Mastery
107
+
108
+
ARIA carries deep, vendor-specific knowledge for every supported platform — not generic advice. Each device type has a dedicated playbook with:
109
+
110
+
-**Signature commands** — the exact commands a senior engineer would run first
111
+
-**Common root causes** — the failure modes that actually happen in production
112
+
-**Diagnostic flow** — the correct order to isolate the failing layer
113
+
114
+
For example: on a Cisco ASA, ARIA starts with `packet-tracer` (the fastest way to identify why traffic is blocked). On FortiGate, it uses `diagnose debug flow`. On Palo Alto, `test security-policy-match`. These are not generic — they are the expert moves.
115
+
116
+
### Batch Command Execution
117
+
118
+
ARIA can execute 2-5 independent commands in a single round-trip using the `run_commands` tool. Instead of sending `show ip bgp summary`, waiting, then `show ip route`, waiting, then `show interfaces brief`, ARIA batches them all together — faster diagnosis, fewer round-trips.
119
+
120
+
### Structured Terminal Context
121
+
122
+
Every message to ARIA includes parsed terminal context — not raw text dumps:
-**Last 5 commands and their outputs** — structured and labeled
127
+
128
+
This means ARIA always knows exactly what you just ran and what the device responded.
129
+
130
+
### Auto Device Detection
131
+
132
+
When a connection is set to **Auto-detect**, ARIA analyzes the live terminal output to identify the device type before responding. This ensures the correct playbook is used from the very first message — no manual selection needed.
133
+
134
+
### Smart Retry
135
+
136
+
When a command returns empty or minimal output, ARIA automatically receives a hint about possible causes (wrong syntax for this device type, pager ate the output, etc.) and can retry with a vendor-appropriate variant.
137
+
138
+
### Conversation Compression
139
+
140
+
Long conversations are compressed intelligently — older messages are summarized into a compact block while preserving the original intent and recent context. This replaces naive message trimming and keeps ARIA's memory coherent across extended troubleshooting sessions.
141
+
107
142
### L4 Planning Mode
108
143
109
144
For complex problems, ARIA generates a **visual investigation plan card** showing:
@@ -124,16 +159,12 @@ ARIA is aware of **all open terminal sessions simultaneously**:
124
159
- Command blocks display a device badge so you always know where each command ran (→ SW1-Core)
125
160
- Terminal context from both sessions is included in every analysis
126
161
127
-
### Context-Aware from the Start
128
-
129
-
Every ARIA conversation includes full session context: device type, hostname, IP, protocol, and all open sessions. ARIA's commands and recommendations are device-specific from the first message — no configuration needed.
130
-
131
162
### Permission Modes
132
163
133
164
| Mode | What ARIA Can Do |
134
165
|---|---|
135
-
|**Troubleshoot**| Read-only diagnostics only — `show`, `display`, `ping`, `traceroute`, `ls`, `df`, etc. No config changes |
136
-
|**Full Access**| Any command including configuration and remediation actions|
166
+
|**Troubleshoot**| Read-only diagnostics only — `show`, `display`, `ping`, `traceroute`, `ls`, `df`, etc. No config changes. ARIA decides which commands are safe based on its knowledge of each platform.|
167
+
|**Full Access**| Any command including configuration and remediation. ARIA warns before destructive operations and always provides the exact rollback command.|
137
168
138
169
Mode is set globally in Settings and can be overridden **per conversation** from the chat toolbar.
139
170
@@ -143,20 +174,21 @@ Mode is set globally in Settings and can be overridden **per conversation** from
143
174
|---|---|
144
175
|**Ask**| ARIA shows every command and waits for your approval before running |
145
176
|**Auto**| ARIA executes all commands immediately and uninterrupted |
146
-
|**Block**| Auto-approves everything except patterns on your custom blacklist |
147
-
148
-
### Auto Watch
149
-
150
-
When enabled, ARIA silently monitors your terminal output in real time. If it detects errors, misconfigurations, anomalies, or warnings, it alerts you immediately — without interrupting your work. Smart deduplication prevents repeated alerts for the same output.
151
177
152
-
### Built-in Safety
178
+
### Blocked Command Patterns (Always-On Safety)
153
179
154
180
NetCopilot ships with a default blacklist of dangerous commands: `reload`, `shutdown`, `rm -rf`, `format`, `write erase`, `delete flash`, and others. The blacklist is:
155
181
182
+
-**Always enforced** — regardless of permission mode or approval setting
156
183
- Stored persistently in the encrypted database
157
-
- Customizable per conversation from the chat toolbar
184
+
- Customizable from the chat toolbar "Patterns" button
158
185
- Resettable to defaults in one click
159
-
- Always enforced — regardless of permission mode or approval setting
186
+
187
+
When ARIA attempts a blocked command, the code **prevents execution entirely** and informs ARIA the command was blocked. This is a hard safety layer independent of AI judgment.
188
+
189
+
### Auto Watch
190
+
191
+
When enabled, ARIA silently monitors your terminal output in real time. If it detects errors, misconfigurations, anomalies, or warnings, it alerts you immediately — without interrupting your work. Smart deduplication prevents repeated alerts for the same output.
160
192
161
193
### ARIA Interface
162
194
@@ -174,33 +206,34 @@ NetCopilot ships with a default blacklist of dangerous commands: `reload`, `shut
174
206
|**Session summary**| When closing a tab, ARIA delivers a recap of all commands it ran |
175
207
|**Quick suggestions**| Device-aware command suggestions, blended with your personal command history |
176
208
|**Smart History**| ARIA learns which commands you use most per device type and surfaces them first — highlighted in amber |
177
-
|**Model selector**| Choose between Claude Sonnet, Opus, or Haiku from Settings → ARIA |
178
209
|**Sequential execution**| Auto mode runs multiple commands one by one — no race conditions |
179
210
180
211
### ARIA Persona
181
212
182
-
ARIA is built as a **specialized infrastructure expert**, not a general-purpose AI:
213
+
ARIA is built as a **principal-grade infrastructure expert**, not a general-purpose AI:
183
214
184
-
- Deep expertise in Cisco, Juniper, Arista, Palo Alto, FortiGate, MikroTik, Huawei, and more
215
+
- 25+ years of multi-vendor operations experience across Tier-1 ISPs, hyperscale data centers, and enterprise networks
216
+
- Deep expertise in Cisco, Juniper, Arista, Palo Alto, FortiGate, MikroTik, Nokia, Huawei, F5, and more
- Strict operational scope — ARIA only handles network and infrastructure topics
186
219
- Responds in the same language the engineer writes in (English, Arabic, or other)
187
-
- API key stored in the OS keychain — never on disk or in any config file
188
220
189
221
### Certifications ARIA Masters
190
222
191
-
Working with ARIA is like having a senior engineer with all of these certifications on your team:
223
+
Working with ARIA is like having a principal engineer with all of these certifications on your team:
192
224
193
225
| Vendor | Certifications |
194
226
|--------|---------------|
195
-
|**Cisco**| CCNA · CCNP (Enterprise, Security, Data Center, Service Provider) · CCIE (Enterprise Infrastructure, Security, Data Center, Service Provider, Wireless) |
@@ -251,11 +285,13 @@ ARIA learns from your sessions:
251
285
### Terminal Features
252
286
253
287
- In-terminal search with regex and case-sensitivity (⌘F)
288
+
- Right-click context menu (Copy, Paste, Search, Clear)
254
289
- Configurable font family, size, line height, cursor style, and scrollback buffer
255
290
- Session logging — manual or auto-log on connect, with ANSI stripping and optional timestamps
256
291
- Split view — two sessions side by side with independent terminals
257
292
- Auto-reconnect on session drop — global default or per-connection override
258
-
- Session reconnect button appears automatically when a connection drops
293
+
-**Connection overlays** — visual spinner while connecting, disconnect overlay with reconnect button, error overlay with retry
294
+
- Draggable sidebar with visual resize handle
259
295
260
296
### Port Forwarding (SSH Tunnels)
261
297
@@ -266,6 +302,10 @@ Create local port forwarding rules per connection — forward any local port to
266
302
- Live status badge in the tab bar shows number of active tunnels
267
303
- Example: `localhost:5432 → db.internal:5432` through your SSH server
268
304
305
+
### SOCKS Proxy (Dynamic Port Forwarding)
306
+
307
+
Route traffic through your SSH connection as a SOCKS4/SOCKS5 proxy — useful for accessing internal networks, web interfaces, and services behind firewalls.
308
+
269
309
### Jump Host / Bastion Server
270
310
271
311
Connect to devices that are not directly reachable from your machine:
@@ -278,6 +318,7 @@ Connect to devices that are not directly reachable from your machine:
278
318
### Connection Management
279
319
280
320
- Organized library with groups, colors, tags, and notes
321
+
-**Tags filter** — filter connections by tag from the HomeScreen pills bar
281
322
-**Quick Connect** (⌘K) — type `user@host:port` for an instant session without saving
282
323
- Startup commands that run automatically after connecting
283
324
- SSH key manager — store and reuse named keys across connections
@@ -295,12 +336,14 @@ Connect to devices that are not directly reachable from your machine:
295
336
|`⌘⇧A`| Toggle ARIA panel |
296
337
|`⌘1–9`| Switch to tab N |
297
338
|`⌘F`| Search in terminal |
339
+
|`?`| Help & Keyboard Shortcuts |
298
340
299
341
### Home Screen Dashboard
300
342
301
-
- Visual grid of saved connections with device-type color coding
343
+
- Visual grid of saved connections with device-type color coding and accent bars
302
344
- Group cards with connection count and live session indicator
303
345
- Real-time live sessions pill showing active device count
346
+
-**Tags filter pills** — click any tag to filter, click again to clear
304
347
- Device color system: Cisco → blue, Linux → green, Firewalls → orange, Junos/Arista → purple, Serial → amber
305
348
306
349
---
@@ -310,8 +353,9 @@ Connect to devices that are not directly reachable from your machine:
310
353
| Layer | Protects | Technology |
311
354
|---|---|---|
312
355
|**Encrypted Database**| All connections, settings, and configuration | SQLCipher (AES-256) |
313
-
|**OS Keychain**| Passwords, SSH keys, API keys, and the DB encryption key | Electron safeStorage |
356
+
|**OS Keychain**| Passwords, SSH keys, license keys, and the DB encryption key | Electron safeStorage |
Credentials are never stored in plaintext. The database encryption key is generated on first launch, stored in the OS keychain, and never written to disk directly.
317
361
@@ -355,10 +399,10 @@ Contributions are welcome! Please open an issue first to discuss what you'd like
355
399
This project is licensed under the **GNU Affero General Public License v3.0 (AGPL-3.0)**.
356
400
357
401
This means:
358
-
-✅ Free to use, modify, and distribute
359
-
-✅ Commercial use allowed
360
-
-⚠️ Any modification or service built on top of this code **must also be open-sourced** under AGPL-3.0
361
-
-⚠️ Network use counts as distribution — SaaS products built on this must share their source
402
+
- Free to use, modify, and distribute
403
+
- Commercial use allowed
404
+
- Any modification or service built on top of this code **must also be open-sourced** under AGPL-3.0
405
+
- Network use counts as distribution — SaaS products built on this must share their source
362
406
363
407
The author retains the right to offer commercial licenses for organizations that cannot comply with AGPL terms.
0 commit comments