chore: rework plugin readmes, json changelogs and standalone repo setup

This commit is contained in:
LukeGus committed 2026-10-04 21:25:16 -05:00
1 parent a8f383d2b3
commit 29a946d02e
500 files changed
+6729 -1250

No files matched your search

+21
View File
@@ -0,0 +1,21 @@
{
"extends": ["@commitlint/config-conventional"],
"rules": {
"type-enum": [
2,
"always",
[
"feat",
"fix",
"docs",
"style",
"refactor",
"perf",
"test",
"chore",
"revert"
]
],
"subject-case": [0]
}
}
+1
View File
@@ -0,0 +1 @@
custom: https://donate.termix.site/
+34
View File
@@ -0,0 +1,34 @@
# Overview
_Short summary of what this PR does_
- [ ] Added: ...
- [ ] Updated: ...
- [ ] Removed: ...
- [ ] Fixed: ...
# Changes Made
_Detailed explanation of changes (if needed)_
- ...
# Related Issues
_Link any issues this PR addresses_
- Closes #ISSUE_NUMBER
- Related to #ISSUE_NUMBER
# Screenshots / Demos
_(Optional: add before/after screenshots, GIFs, or console output)_
# Checklist
- [ ] Code follows project style guidelines
- [ ] Supports mobile and desktop UI/app (if applicable)
- [ ] Added the change to `CHANGELOG.json`
- [ ] `npm run test`, `npm run typecheck` and `npm run validate` pass
- [ ] I have read `CONTRIBUTING.md`
- [ ] This is not a translation request. See [docs](https://docs.termix.site/translations)
+9
View File
@@ -0,0 +1,9 @@
node_modules
dist
coverage
*.log
.env
*.tmxplug
*.tmxplug.sig
termix-plugin-signing.key
.termix-tables-*
+1
View File
@@ -0,0 +1 @@
npx --no -- commitlint --edit "$1"
+1
View File
@@ -0,0 +1 @@
npx lint-staged
+4
View File
@@ -0,0 +1,4 @@
dist
coverage
node_modules
package-lock.json
+9
View File
@@ -0,0 +1,9 @@
{
"semi": true,
"singleQuote": false,
"tabWidth": 2,
"trailingComma": "all",
"printWidth": 80,
"arrowParens": "always",
"endOfLine": "lf"
}
+50
View File
@@ -0,0 +1,50 @@
{
"$schema": "https://raw.githubusercontent.com/Termix-SSH/Termix/main/packages/plugin-sdk/schema/changelog.schema.json",
"releases": [
{
"version": "1.0.0",
"changes": [
{
"type": "added",
"text": "Tabs and split screen"
},
{
"type": "added",
"text": "Jump hosts and host key verification"
},
{
"type": "added",
"text": "Sessions stay alive after a disconnect and reconnect on their own"
},
{
"type": "added",
"text": "Tmux and Mosh support"
},
{
"type": "added",
"text": "Themes, fonts and syntax highlighting"
},
{
"type": "added",
"text": "A toolbar with live stats and quick links to the host's other tools"
},
{
"type": "added",
"text": "Command history with autocomplete"
},
{
"type": "added",
"text": "Macros that automate logins and prompts"
},
{
"type": "added",
"text": "Send keystrokes to several terminals at once"
},
{
"type": "added",
"text": "A local terminal in the desktop app"
}
]
}
]
}
-7
View File
@@ -1,7 +0,0 @@
# Changelog
## 1.0.0
First release, bundled with Termix 2.9.0.
Adds SSH terminal sessions with jump hosts, host key checks, command history and a terminal toolbar. Sessions can stay alive after a disconnect, and the desktop app gets a local terminal.
+37
View File
@@ -0,0 +1,37 @@
# Contributing to SSH Terminal
## Development
```bash
npm run build # build into dist/
npm run test # run this plugin's tests
npm run typecheck # type-check this plugin
npm run validate # check manifest.json
npm run format # format the code with Prettier
```
## Settings
### Admin
- **Keep sessions after disconnect and Terminal Session Persistence:** keep a disconnected terminal alive, and for how long
- **Command History:** allow command history at all
- **Touch Input:** options for using the terminal on a touch screen
- **Image Storage:** where pasted and uploaded images are kept, and how many and how large
### User
- **Command Autocomplete:** show suggestions from your history while you type
### Host
- **Enable Terminal:** offer an SSH terminal for this host
- **Enable Terminal Toolbar:** show the toolbar for this host
- **Command History:** record commands run on this host
- **Appearance:** theme, colors, font, cursor and syntax highlighting
- **Behavior:** Auto-Tmux, Auto-Mosh, local echo, auto reconnect, password and sudo auto-fill, and scrollback size
## Permissions
- `ssh-terminal.sessions`: let other features, like session sharing and recording, reach your live terminal sessions. Admins and users have it by default.
- `ssh-terminal.history`: let other features, like the AI assistant, read your command history. Admins and users have it by default.
+41 -42
View File
@@ -1,60 +1,59 @@
# SSH Terminal
<div align="center">
SSH terminal sessions with jump hosts, host key checks, command history and a local terminal in the desktop app.
<img src="https://raw.githubusercontent.com/Termix-SSH/Termix/main/public/icon.svg" width="120" height="120" alt="Termix Logo" />
<h1>SSH Terminal</h1>
<p>A full SSH terminal in your browser, desktop and phone</p>
</div>
<br />
## Overview
SSH Terminal is the terminal in Termix. It opens SSH sessions in tabs and split screen, and the desktop app also gets a local terminal.
<br />
## Features
- SSH terminal sessions with jump hosts and host key checks.
- Keeps a session alive on the server after a disconnect, so reopening the tab picks up where you left off.
- Command history with autocomplete.
- A toolbar docked to the terminal with host tools and live stats.
- Paste or upload images to the host from the terminal.
- A local terminal in the desktop app.
- Attaches to tmux sessions when Tmux Monitor is on.
- Tabs and split screen
- Jump hosts and host key verification
- Sessions stay alive after a disconnect and reconnect on their own
- Tmux and Mosh support
- Themes, fonts and syntax highlighting
- A toolbar with live stats and quick links to the host's other tools
- Command history with autocomplete
- Macros that automate logins and prompts
- Send keystrokes to several terminals at once
- A local terminal in the desktop app
## Settings
### Admin
- Keep sessions after disconnect and Terminal Session Persistence: keep a disconnected terminal alive, and for how long.
- Command History and Command history for new hosts: allow history, and whether new hosts start with it on.
- Touch Input: options for using the terminal on a touch screen.
- Image Storage: where pasted and uploaded images are kept, and how many and how large.
### Host
- Enable Terminal: offer an SSH terminal for this host.
- Enable Terminal Toolbar: show the toolbar for this host.
- Command History: record commands run on this host.
## Permissions
- `ssh-terminal.sessions`: Let other features, like session sharing and recording, reach your live terminal sessions. Admins and users have it by default.
- `ssh-terminal.history`: Read command history. Admins and users have it by default.
<br />
## Services
Provides to other plugins:
- `sessions.live` as `ssh`: find a live terminal session so it can be shared.
- `terminal.history`: read a user's command history.
- `sessions.live` as `ssh`: find a live terminal session so it can be shared
- `terminal.history`: read a user's command history
Uses from other plugins:
- `tmux.sessions` to attach to tmux. Optional.
- `sessions.sharing` for shared sessions. Optional.
- `recordings.writer` to record sessions. Optional.
- `tmux.sessions` to attach to tmux. Optional
- `sessions.sharing` for shared sessions. Optional
- `recordings.writer` to record sessions. Optional
## Development
<br />
```bash
npm run build # build into dist/
npm run test # run this plugin's tests
npm run typecheck # type-check this plugin
```
## Support
## Reconnecting a workspace
To report a bug or request a feature, open a [support ticket](https://github.com/Termix-SSH/Support/issues/new/choose). You need to be logged in to GitHub. Please be as detailed as possible, preferably in English.
Use **Reconnect all disconnected terminals** from a tab's context menu or the command palette after a network interruption. It retries mounted SSH terminal tabs, including hidden tabs and split panes, through their existing manual reconnect flow. Connected terminals and terminals already connecting or waiting for an automatic retry are skipped. Invoking the action again does not interrupt an in-flight connection; failures in one tab do not stop the others. The notification counts reconnect attempts started, not successful connections.
For discussions and questions, join the [Discord](https://discord.gg/jVQGdvHDrf) server.
This is a manual workspace action. It does not add automatic SSH-error retries, resume/network listeners, tmux-session restoration or scrollback preservation. Existing authentication prompts, host-key validation and manual-reconnect behavior still apply. Other session plugins participate only if they expose the SDK's optional `reconnectIfDisconnected` handle method.
<br />
## License
Distributed under the Apache License Version 2.0. See [LICENSE](https://github.com/Termix-SSH/Termix/blob/main/LICENSE) for more information.
+3 -3
View File
@@ -2,16 +2,16 @@
"id": "ssh-terminal",
"name": "SSH Terminal",
"version": "1.0.0",
"description": "SSH terminal sessions with jump hosts, host key checks, command history and a local terminal in the desktop app.",
"description": "SSH terminal sessions with tabs, split screen, history, macros and a local terminal in the desktop app.",
"author": {
"name": "Termix"
},
"license": "MIT",
"license": "Apache-2.0",
"repository": "https://github.com/Termix-SSH/Termix",
"category": "Terminal",
"icon": "SquareTerminal",
"engine": {
"termix": ">=2.9.0",
"termix": ">=26.10.0",
"api": "1"
},
"capabilities": [
+14 -1
View File
@@ -7,7 +7,10 @@
"build": "termix-plugin build",
"test": "termix-plugin test",
"typecheck": "tsc -p .",
"validate": "termix-plugin validate"
"validate": "termix-plugin validate",
"format": "prettier --write .",
"format:check": "prettier --check .",
"prepare": "husky || true"
},
"dependencies": {
"@xterm/addon-clipboard": "^0.2.0",
@@ -20,6 +23,8 @@
"react-xtermjs": "^1.0.10"
},
"devDependencies": {
"@commitlint/cli": "^21.2.2",
"@commitlint/config-conventional": "^21.2.0",
"@termix/plugin-sdk": "^1.0.0",
"@testing-library/dom": "^10.4.2",
"@testing-library/jest-dom": "^7.0.1",
@@ -29,7 +34,10 @@
"@types/react": "^19.2.18",
"@types/react-dom": "^19.2.4",
"better-sqlite3": "^13.0.3",
"husky": "^9.1.7",
"jsdom": "^30.0.1",
"lint-staged": "^17.2.0",
"prettier": "3.9.9",
"vitest": "^4.1.11"
},
"peerDependencies": {
@@ -53,5 +61,10 @@
"react-xtermjs": {
"@xterm/xterm": "$@xterm/xterm"
}
},
"lint-staged": {
"*.{ts,tsx,js,jsx,mjs,cjs,json,css,md}": [
"prettier --write"
]
}
}