nterminal 1.3.10 → 1.3.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -19
- package/SECURITY.md +1 -1
- package/assets/screenshot/workspace.png +0 -0
- package/package.json +16 -2
package/README.md
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
# NTerminal
|
|
2
2
|
|
|
3
|
-
<img src="https://cdn.jsdelivr.net/npm/nterminal@
|
|
3
|
+
<img src="https://cdn.jsdelivr.net/npm/nterminal@latest/public/icons/app-icon-1024.png?v=readme-latest" alt="NTerminal app icon" width="96" height="96">
|
|
4
4
|
|
|
5
5
|
NTerminal turns your own machines into one secure browser workspace for real shells, Codex, Claude, files, and long-running terminal sessions.
|
|
6
6
|
|
|
7
|
-
<img src="https://cdn.jsdelivr.net/npm/nterminal@
|
|
7
|
+
<img src="https://cdn.jsdelivr.net/npm/nterminal@latest/assets/screenshot/workspace.png?v=readme-latest" alt="NTerminal workspace with two servers in the sidebar, a Codex pane, and split terminal panes" width="100%">
|
|
8
8
|
|
|
9
|
-
NTerminal is a
|
|
9
|
+
NTerminal is a self-hosted web terminal for machines you control, built for a single owner. It is not a hosted shell service, not a SaaS app, and not a multi-user IDE.
|
|
10
10
|
|
|
11
11
|
## How It Works
|
|
12
12
|
|
|
@@ -42,7 +42,7 @@ Choose `secondary`, select direct connectivity for stable reachable servers or o
|
|
|
42
42
|
|
|
43
43
|
After onboarding finishes, open the URL printed in the final summary and log in with your password plus authenticator code.
|
|
44
44
|
|
|
45
|
-
|
|
45
|
+
The full main/secondary setup flow and nginx/TLS automation are described in `docs/onboarding.md` (included in the package).
|
|
46
46
|
|
|
47
47
|
Package installs keep runtime config and state under `~/.nterminal` so package updates do not overwrite local sessions or secrets. Use a user-writable npm global prefix if you want in-app updates to run without sudo.
|
|
48
48
|
|
|
@@ -79,11 +79,11 @@ Run onboarding as the account that should own NTerminal. Do not use `sudo ntermi
|
|
|
79
79
|
- Tabs show a green dot while working and a blue unread badge when output finished in the background; workspaces and favorites show the same state.
|
|
80
80
|
- **Favorite tabs**: star any tab, then open the favorites dialog (`Ctrl+Alt+F`) to jump to it on any server. A favorite whose tab was closed is recreated in its saved folder.
|
|
81
81
|
- Scroll progress, jump-to-bottom, mobile drag handles, and follow-tail behavior keep large outputs usable.
|
|
82
|
-
- Workspace shortcuts use Control-based keys and can be rebound in Settings (see
|
|
82
|
+
- Workspace shortcuts use Control-based keys and can be rebound in Settings (see `docs/features.md`).
|
|
83
83
|
|
|
84
84
|
### Codex / Claude History And Subagents
|
|
85
85
|
|
|
86
|
-
<img src="https://cdn.jsdelivr.net/npm/nterminal@
|
|
86
|
+
<img src="https://cdn.jsdelivr.net/npm/nterminal@latest/assets/screenshot/history.png?v=readme-latest" alt="Transcript history viewer with search results in a Claude pane" width="100%">
|
|
87
87
|
|
|
88
88
|
- Supported Codex/Claude panes open JSONL transcript history (`View history`, `Alt+H`) from `~/.codex/sessions` or `~/.claude/projects`, with Markdown rendering, optional tool output, a prompt list, and scroll-to-load older entries.
|
|
89
89
|
- Search runs on the server from newest to oldest, including records not yet loaded in the viewer, and selecting a result loads the history around it.
|
|
@@ -91,16 +91,16 @@ Run onboarding as the account that should own NTerminal. Do not use `sudo ntermi
|
|
|
91
91
|
- A private, bounded disk cache reuses parsed conversation records across views and searches, and the history layout adapts to narrow panes.
|
|
92
92
|
- The subagent viewer (`View agents`, `Alt+A`) lists the subagents a session launched, with their state, and opens each one's conversation. It covers Claude subagents, Codex child threads, and `codex exec` runs started from a Claude session; nested subagents fold under their parent.
|
|
93
93
|
|
|
94
|
-
<img src="https://cdn.jsdelivr.net/npm/nterminal@
|
|
94
|
+
<img src="https://cdn.jsdelivr.net/npm/nterminal@latest/assets/screenshot/subagents.png?v=readme-latest" alt="Subagent viewer listing nested subagents of a Claude session" width="100%">
|
|
95
95
|
|
|
96
96
|
### Provider Accounts And Hooks
|
|
97
97
|
|
|
98
|
-
<img src="https://cdn.jsdelivr.net/npm/nterminal@
|
|
98
|
+
<img src="https://cdn.jsdelivr.net/npm/nterminal@latest/assets/screenshot/accounts.png?v=readme-latest" alt="Codex accounts dialog with two saved accounts, weekly usage, and provider hooks" width="480">
|
|
99
99
|
|
|
100
100
|
- Open a server's Codex or Claude account dialog from the provider buttons on its server card.
|
|
101
101
|
- Each server keeps its own encrypted credential vault. Save several accounts, switch with **Use**, add one without leaving the dialog, and refresh credentials. Accounts are named after the signed-in email by default; click a name to rename it (the email stays visible under a custom name). **Add account** runs the official CLI login on the server and shows its sign-in link (open it or copy it to any browser) plus, for Codex, the one-time device code; for Claude, paste the code the page shows back into the dialog. Running Codex/Claude sessions are listed for reference but do not block a switch; they keep their current account until restarted (**Exit all sessions** stops them). Refreshing the active account waits until its CLI has exited. The active account is also backed up in the vault, so if a running session writes its old account back over the login file, the dialog says so and **Use** restores the other account. A saved login the provider revoked or let expire shows **Re-login required**, with a **Sign in again** button; the server card's provider icon gets a small marker.
|
|
102
102
|
- The dialog shows access-token expiry, weekly and session usage remaining, reset times, and the last refresh result. Usage checks are read-only.
|
|
103
|
-
- Optional
|
|
103
|
+
- Optional provider lifecycle hooks (Linux, see `docs/provider-hooks.md`) can be installed or removed from the same dialog or with `nterminal hooks`. For Codex, **Trust NTerminal hooks in Codex** asks Codex to trust only NTerminal's own hooks, the same as approving them in `/hooks`.
|
|
104
104
|
|
|
105
105
|
### Files, Uploads, And Editor
|
|
106
106
|
|
|
@@ -119,8 +119,8 @@ Run onboarding as the account that should own NTerminal. Do not use `sudo ntermi
|
|
|
119
119
|
### Mobile And PWA
|
|
120
120
|
|
|
121
121
|
<p>
|
|
122
|
-
<img src="https://cdn.jsdelivr.net/npm/nterminal@
|
|
123
|
-
<img src="https://cdn.jsdelivr.net/npm/nterminal@
|
|
122
|
+
<img src="https://cdn.jsdelivr.net/npm/nterminal@latest/assets/screenshot/mobile.png?v=readme-latest" alt="NTerminal on a phone: one pane of a split tab with the terminal key bar" width="280">
|
|
123
|
+
<img src="https://cdn.jsdelivr.net/npm/nterminal@latest/assets/screenshot/mobile-panes.png?v=readme-latest" alt="NTerminal on a phone: the pane switcher bottom sheet listing the tab's panes" width="280">
|
|
124
124
|
</p>
|
|
125
125
|
|
|
126
126
|
- Split layouts on narrow screens show one pane at a time, with previous/next buttons and a switcher for terminals and editors.
|
|
@@ -162,13 +162,15 @@ Run `nterminal help` for the full list. Updates run from Settings, not from a CL
|
|
|
162
162
|
|
|
163
163
|
## Documentation
|
|
164
164
|
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
-
|
|
168
|
-
-
|
|
169
|
-
-
|
|
170
|
-
-
|
|
171
|
-
-
|
|
165
|
+
These guides ship with the package: after `npm install -g nterminal` they are in the package's `docs/` folder (`npm root -g` shows where global packages live).
|
|
166
|
+
|
|
167
|
+
- **Onboarding** (`docs/onboarding.md`): main/secondary setup, nginx, TLS, firewall, and package runtime setup.
|
|
168
|
+
- **Configuration** (`docs/configuration.md`): `.env`, environment variables, and deployment examples.
|
|
169
|
+
- **Operations** (`docs/operations.md`): service control, updates, clean uninstall, verification, and troubleshooting.
|
|
170
|
+
- **Terminal History** (`docs/terminal-history.md`): tmux scrollback, alternate buffer behavior, Codex/Claude JSONL history, search, and large-output ergonomics.
|
|
171
|
+
- **Provider Hooks** (`docs/provider-hooks.md`): optional Codex/Claude lifecycle hooks, Codex trust, and the `nterminal hooks` command.
|
|
172
|
+
- **Features** (`docs/features.md`): workspaces, accounts, files, uploads, attachments, notifications, mobile controls, keyboard shortcuts, and PWA behavior.
|
|
173
|
+
- **Security** (`SECURITY.md`): supported security boundary and vulnerability reporting.
|
|
172
174
|
|
|
173
175
|
## Limitations
|
|
174
176
|
|
|
@@ -201,4 +203,4 @@ It reworks the persistent browser terminal idea around multi-server operation, O
|
|
|
201
203
|
|
|
202
204
|
## License
|
|
203
205
|
|
|
204
|
-
NTerminal is licensed under GPL-3.0-only.
|
|
206
|
+
NTerminal is licensed under GPL-3.0-only. The full text is in the `LICENSE` file included in the package.
|
package/SECURITY.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
## Supported Use
|
|
4
4
|
|
|
5
|
-
NTerminal is supported as a single-owner
|
|
5
|
+
NTerminal is supported as a self-hosted, single-owner web terminal for localhost, private machines, private VPNs, SSH tunnels, or HTTPS reverse proxies with a real access boundary.
|
|
6
6
|
|
|
7
7
|
NTerminal is not currently supported as:
|
|
8
8
|
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nterminal",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.12",
|
|
4
|
+
"description": "Self-hosted web terminal and browser workspace for real shells, Codex, Claude Code, files, and multiple servers.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"self-hosted",
|
|
7
|
+
"web-terminal",
|
|
8
|
+
"terminal",
|
|
9
|
+
"browser-terminal",
|
|
10
|
+
"pty",
|
|
11
|
+
"tmux",
|
|
12
|
+
"codex",
|
|
13
|
+
"claude-code",
|
|
14
|
+
"ai-agents",
|
|
15
|
+
"remote-server",
|
|
16
|
+
"multi-server",
|
|
17
|
+
"devtools"
|
|
18
|
+
],
|
|
4
19
|
"license": "GPL-3.0-only",
|
|
5
20
|
"type": "module",
|
|
6
21
|
"packageManager": "npm@10.9.7",
|
|
@@ -38,7 +53,6 @@
|
|
|
38
53
|
"prepack": "npm run build",
|
|
39
54
|
"prepublishOnly": "npm run pack:check",
|
|
40
55
|
"pack:check": "node scripts/check-npm-package.js",
|
|
41
|
-
"version": "node scripts/sync-readme-version.js",
|
|
42
56
|
"ctl": "bash scripts/nterminalctl",
|
|
43
57
|
"deploy:local": "bash scripts/nterminalctl deploy",
|
|
44
58
|
"service:status": "bash scripts/nterminalctl status",
|