open-index/open-npm huggingface dataset:
npm package: @jacksontian/mwt
Description: Multi-window terminal with columns, rows, grid, and tab layouts
Author: Jackson Tian
Latest version: 1.5.1

# mwt - 多窗口终端

[![npm version](https://img.shields.io/npm/v/@jacksontian/mwt)](https://www.npmjs.com/package/@jacksontian/mwt)
[![npm downloads](https://img.shields.io/npm/dm/@jacksontian/mwt)](https://www.npmjs.com/package/@jacksontian/mwt)
[![Node.js](https://img.shields.io/node/v/@jacksontian/mwt)](https://nodejs.org)
[![License](https://img.shields.io/npm/l/@jacksontian/mwt)](LICENSE)

一个轻量级的基于浏览器的多窗口终端，专为**本地开发**设计。在浏览器中运行多个 Shell 会话，支持列、行、网格和标签页布局。

> **注意：** mwt 设计用于在你的开发机器上本地使用。它不提供身份验证、加密或任何访问控制——请勿将其暴露在网络中。

## 为什么选择 mwt？

你在跑三个 AI Agent，一个在写代码，一个在跑测试，一个在调用外部 API。与此同时，你还想看构建日志，偶尔查一条命令。

桌面上已经堆了七八个终端窗口，来回 Alt-Tab 切换，找不到刚才那个窗口在哪。你试过 tmux，但每次都要查快捷键。VS Code 太重，只想要个终端而已。

于是你运行 `npx @jacksontian/mwt`，打开浏览器，把所有终端铺在一个页面里。再也不用切窗口了。

## 快速开始

```bash
npx @jacksontian/mwt
```

或全局安装：

```bash
npm install -g @jacksontian/mwt
mwt
```

然后在浏览器中打开 http://localhost:1987。

## 使用方法

```
mwt [options]

Options:
  -p, --port <port>  监听端口（默认：1987）
  --host <host>      绑定主机（默认：127.0.0.1）
  --no-open          不自动打开浏览器
  -h, --help         显示帮助信息
```

示例：

```bash
$ cd /path/to/your/project
$ mwt -p 8080
```

## 截图

| 列布局 | 行布局 |
|---|---|
| ![列布局](./figures/columns.png) | ![行布局](./figures/rows.png) |

| 网格布局 | 标签页布局 |
|---|---|
| ![网格布局](./figures/grid.png) | ![标签页布局](./figures/tabs.png) |

## 功能特性

- **多终端** — 同时创建和管理多个终端会话
- **四种布局** — 列、行、网格和标签页，随时切换
- **会话持久化** — 断线重连不丢失最近的终端输出（每个终端 100KB 缓冲）
- **自动重连** — WebSocket 断线后指数退避自动恢复
- **深色 / 浅色主题** — 手动切换或跟随系统偏好
- **键盘驱动** — 常用操作均可通过快捷键完成
- **零构建步骤** — 无 webpack，无打包工具，直接运行

## 设计原则

- **极简依赖** — 后端只有 node-pty 和 ws，前端原生 ES Modules + xterm.js，无框架无构建步骤。
- **浏览器即界面** — 天然跨平台，无需安装桌面应用。
- **会话不丢失** — 100KB 输出缓冲，刷新或断线后自动恢复；同一 session 仅允许一个标签页连接。
- **够用就好** — 不做 SSH、认证、插件。专注本地多终端，代码约 2000 行。

## 对比

| | mwt | tmux / screen | iTerm2 | Windows Terminal | VS Code 终端 | ttyd | Wetty | code-server |
|---|---|---|---|---|---|---|---|---|
| **多终端管理** | ✅ 列 / 网格 / 标签页 | ✅ 窗格 / 窗口 | ✅ 标签页 / 分屏 | ✅ 标签页 / 分屏 | ✅ 分屏 / 标签页 | ❌ 单终端 | ❌ 单终端 | ✅ 内嵌终端 |
| **运行环境** | 浏览器 | 终端模拟器 | macOS 应用 | Windows 应用 | 桌面应用 | 浏览器 | 浏览器 | 浏览器 |
| **跨平台** | ✅ 任意有浏览器的系统 | ✅ Unix/Linux/macOS | ❌ 仅 macOS | ❌ 仅 Windows | ✅ | ✅ | ✅ | ✅ |
| **上手成本** | 零配置，开箱即用 | 高，需学习快捷键体系 | 低 | 低 | 低 | 低 | 中等 | 中等 |
| **会话持久化** | ✅ 100KB 缓冲 + 自动重连 | ✅ detach/attach | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| **布局切换** | ✅ 四种布局一键切换 | ✅ 手动分屏 | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ |
| **主题切换** | ✅ 深色/浅色 + 跟随系统 | 需手动配置 | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ |
| **远程/SSH** | ❌ 仅本地 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| **适用场景** | 本地开发多终端 | 服务器运维/本地开发 | macOS 日常使用 | Windows 日常使用 | 编码 + 终端一体化 | 远程单终端 | 远程终端 | 远程开发 |

## 更新日志

请查看 [CHANGELOG.md](./CHANGELOG.md) 了解版本历史。

## 许可证

[MIT](./LICENSE)
npm package: @jacksontian/pfa
Description: 个人文件助手，用于处理文件。将本地文件传递至云端，利用云端更高的数据可靠性来存储文件数据。
Latest version: 1.0.0

# Personal File Assistant

个人文件助手，用于处理文件。将本地文件传递至云端，利用云端更高的数据可靠性来存储文件数据。

## Installation

```sh
npm i -g @jacksontian/pfa
```

## Usage

```sh
# Get usage information
pfa
# Config your cloud storage
pfa config
# Upload a file to cloud and remove it from local
pfa move <local-file-path> <cloud-file-path>
# Download a file from remote link and upload to cloud
pfa copy <remote-file-link> <cloud-file-path>
```

## Contributing

1. Fork 本仓库
2. 新建 Feat_xxx 分支
3. 提交代码
4. 新建 Pull Request

## License

The [MIT License](/LICENSE).
npm package: @jacksontian/plant
Description: A web framework
Author: Jackson Tian
Latest version: 0.5.0

# Plant Web Framework

## Features

- Full ECMAScript module mechanism
- No build step

## Roadmap

- [x] route params
- [x] middlewares
- [ ] view templates
- [ ] cluster
- [ ] job scheduler

## License

The [MIT License](./LICENSE).
npm package: @jacksontian/plant-favicon
Description: A plant middleware for favicon.ico
Author: Jackson Tian
Latest version: 0.1.0

# favicon middleware

This is a favicon middleware of [plant web framework](https://github.com/JacksonTian/plant).

The logic of this middleware is to check if the request is a favicon request, if so, return the favicon file.

## Installation

```bash
npm i @jacksontian/plant-favicon
```

## Usage

Add the favicon middleware to your middleware list.

```js
import favicon from '@jacksontian/plant_favicon';

export default [
  favicon
];
```

The `middleware.js` is under the `app` directory.

## License

The [MIT](./LICENSE) license.
npm package: @jacksontian/plant_favicon
Description: A plant middleware for favicon.ico
Author: Jackson Tian
Latest version: 1.0.0

# favicon middleware

This is a favicon middleware of [plant web framework](https://github.com/JacksonTian/plant).

The logic of this middleware is to check if the request is a favicon request, if so, return the favicon file.

## Installation

```bash
npm i @jacksontian/plant-favicon
```

## Usage

Add the favicon middleware to your middleware list.

```js
import favicon from '@jacksontian/plant_favicon';

export default [
  favicon
];
```

The `middleware.js` is under the `app` directory.

## License

The [MIT](./LICENSE) license.
npm package: @jacksontian/preview-markdown
Description: 快速预览 Markdown 文件
Latest version: 1.0.2

# preview-markdown

快速预览 Markdown 文件的本地工具：指定一个 `.md` 文件，启动 Web 服务，在浏览器中查看渲染结果。

## 特性

- **不落盘**：所有渲染在内存中完成，不生成、不写入任何 HTML/CSS 文件
- **自动刷新**：通过 SSE 长连接监听文件变更，保存后浏览器自动刷新；仅当内容实际变化时才通知刷新，断开后自动重连
- **命令简单**：安装后使用 `pmd` 即可；未指定端口时使用随机可用端口，启动后自动打开浏览器
- **自动目录**：从标题提取 TOC（h2/h3/h4），侧边栏可收起/展开，状态持久化到本地
- **GFM 脚注**：支持 `[^1]` 与 `[^1]: 内容` 式参考引用（marked-footnote）
- **本地图片**：支持 `![](figures/xx.png)` 等相对路径，从 Markdown 所在目录的 `figures` 提供静态资源
- 通过 highlight.js 提升代码块视觉效果
- 通过 mermaid.js 支持丰富的图表（流程图、时序图等）
- 打印友好：`@media print` 下隐藏侧边栏与控件，内容单栏输出，便于导出 PDF

## 安装

```bash
npm i @jacksontian/preview-markdown -g
```

## 使用

```bash
pmd -f <markdown文件路径> [-p 端口]
```

未指定端口时使用随机可用端口，启动后终端会打印访问地址。

不安装时，可以用 npx 命令启动：

```bash
npx @jacksontian/preview-markdown -f <markdown文件路径> [-p 端口]
```

## 示例

```bash
$ pmd -f README.md 

  Preview Markdown
  文件: /path/to/preview-markdown/README.md
  地址: http://127.0.0.1:59287/
  修改文件后会自动刷新浏览器。

  SSE 客户端连接，当前 1 个客户端
```

页面效果：

![页面效果](./figures/screenshot.png)

## License

The MIT license.
npm package: @jacksontian/rtf-parser
Description: RTF parser
Latest version: 0.1.0

# RTF Parser

[![GitHub version](https://badge.fury.io/gh/JacksonTian%2Frtf-parser.svg)](https://badge.fury.io/gh/JacksonTian%2Frtf-parser)
[![Build status](https://ci.appveyor.com/api/projects/status/7xq8eq2lil4g2t8j?svg=true&passingText=master%20%E2%9C%93)](https://ci.appveyor.com/project/JacksonTian/rtf-parser)
[![Build Status](https://travis-ci.com/JacksonTian/rtf-parser.svg?branch=master)](https://travis-ci.com/JacksonTian/rtf-parser)
[![codecov](https://codecov.io/gh/JacksonTian/rtf-parser/branch/master/graph/badge.svg)](https://codecov.io/gh/JacksonTian/rtf-parser)
[![Dependency Status](https://david-dm.org/JacksonTian/rtf-parser/status.svg)](https://david-dm.org/JacksonTian/rtf-parser)
[![GitHub issues](https://img.shields.io/github/issues/JacksonTian/rtf-parser.svg)](https://github.com/JacksonTian/rtf-parser/issues)
[![GitHub closed issues](https://img.shields.io/github/issues-closed/JacksonTian/rtf-parser.svg)](https://github.com/JacksonTian/rtf-parser/issues)

## Installation

```sh
$ npm install --save @jacksontian/rtf-parser
```

## Usage

```javascript
const rtf = require('@jacksontian/rtf-parser');

const doc = rtf.parse(`{\\rtf1 foobar}`);
// TODO
```

## License

The MIT License
npm package: @jacksontian/skyline
Description: Base Lexer & Parser
Author: Jackson Tian
Latest version: 1.3.0

# skyline

Base class for Lexer/Parser.

## Usage

For Lexer:

```js
const { BaseLexer } = require('@jacksontian/skyline');

class Lexer extends BaseLexer {
  constructor(source, filename) {
    super(source, filename);
  }
}
```

For Parser:

```js
const { BaseParser } = require('@jacksontian/skyline');

class Parser extends BaseParser {
  constructor(lexer) {
    super(lexer);
  }
}
```

## License
The MIT license.
npm package: @jacksontian/tiny-function
Description: My Function Compute framework
Author: Jackson Tian
Latest version: 0.1.0

# tiny-function

The tiny function compute framework for Node.js.

[![Node.js CI](https://github.com/JacksonTian/tiny-function/actions/workflows/ci.yml/badge.svg)](https://github.com/JacksonTian/tiny-function/actions/workflows/ci.yml)
[![codecov][cov-image]][cov-url]
[![NPM version][npm-image]][npm-url]
[![npm download][download-image]][download-url]

[npm-image]: https://img.shields.io/npm/v/@jacksontian/tiny-function.svg?style=flat-square
[npm-url]: https://npmjs.org/package/@jacksontian/tiny-function
[cov-image]: https://codecov.io/gh/JacksonTian/tiny-function/branch/master/graph/badge.svg
[cov-url]: https://codecov.io/gh/JacksonTian/tiny-function
[download-image]: https://img.shields.io/npm/dm/@jacksontian/tiny-function.svg?style=flat-square
[download-url]: https://npmjs.org/package/@jacksontian/tiny-function

## Installation

```bash
npm install @jacksontian/tiny-function --save
```

## Usage

```js
import { createFunction, read } from '@jacksontian/tiny-function';

const fun = createFunction(async (req, res) => {
    res.writeHead(200);
    const body = await read(req, 'utf8');
    res.end(body);
});

// start function
await fun.start();

// call the function
const { body } = await fun.call({
    message: 'Hello world!'
});
console.log(body);
```

## License

The [MIT License](./LICENSE).
npm package: @jacksonxia/mydumi
Description: A react library developed with dumi
Latest version: 0.0.1

# mydumi

[![NPM version](https://img.shields.io/npm/v/mydumi.svg?style=flat)](https://npmjs.org/package/mydumi)
[![NPM downloads](http://img.shields.io/npm/dm/mydumi.svg?style=flat)](https://npmjs.org/package/mydumi)

A react library developed with dumi

## Usage

TODO

## Options

TODO

## Development

```bash
# install dependencies
$ npm install

# develop library by docs demo
$ npm start

# build library source code
$ npm run build

# build library source code in watch mode
$ npm run build:watch

# build docs
$ npm run docs:build

# check your project for potential problems
$ npm run doctor
```

## LICENSE

MIT
npm package: @jacksonzhou52017/codelint
Description: 自动化统一项目代码规范的工具
Author: JacksonZhou
Latest version: 1.0.3

# @jacksonzhou52017/codelint

用于快速统一项目代码规范的 CLI 工具

## 使用

```bash
npm i -g @jacksonzhou52017/codelint
# 进入项目目录中执行以下命令
codelint
```

## 最后

该项目持续更新中，欢迎 comment！
npm package: @jacksonzhou52017/js-pro-cli
Description: js项目模板
Author: jacksonzhou52017
Latest version: 1.0.0

# js-pro-cli

用于快速搭建 js 项目的脚手架

## 特性

- 多种预设代码模板（react、vue、...）
- 统一的编码和项目规范配置
- 预设高质量的开源库
- 自动检测更新

## 最后

该项目持续更新中，欢迎 comment！
npm package: @jacksonzhou52017/jupiter
Description: js项目模板
Author: JacksonZhou
Latest version: 1.0.4

# @jacksonzhou52017/jupiter

用于快速搭建 js 项目的脚手架

## 使用

```
npm i -g @jacksonzhou52017/jupiter
jupiter init myapp
```

## 版本特性

跟踪 https://github.com/GitHubJackson/fe-engineering/issues/4

## 最后

该项目持续更新中，欢迎 comment！
npm package: @jackspiva/react-native-hold-menu
Description: A performant, easy to use hold to open context menu for React Native powered by Reanimated.
Author: Jack Spiva
Latest version: 0.0.10

# React Native Hold Menu

A performant, easy to use hold to open context menu for React Native powered by Reanimated. 🔥

---

## Features

- Powered with Reanimated v2. 🚀
- Smooth interactions & animations.
- Supports dark/light Mode. 🌚 🌝
- Supports device orientation change.
- Compatible with Expo.
- Written in `TypeScript`.

## Getting Started

Check out [the documentation website](https://enesozturk.github.io/react-native-hold-menu).

---

## Contributors

- [Mo Gorhom](https://gorhom.dev/)

## License

[MIT](./LICENSE)

#### Show Your Support

Please give a star if you like this project! 🤩
npm package: @jackstenglein/chess
Description: Built on top of chess.js and can handle variations (tree-structured move history)
Author: jackstenglein
Latest version: 2.2.19

# @jackstenglein/chess

@jackstenglein/chess is a TypeScript chess library based on [chess.js](https://github.com/jhlywa/chess.js) and [cm-chess](https://github.com/shaack/cm-chess). It provides PGN/FEN loading; move generation/validation; variations, including reordering and promoting; tracking the current move and seeking through a PGN; PGN header values; NAGs; comments; check/checkmate/stalemate detection; null moves; and more.

This library is used to power the [ChessDojo](https://www.chessdojo.club) annotation editor and tactics tests.

## Installation

Run the following command to install the most recent version from NPM:

```bash
npm install @jackstenglein/chess
```

## Importing

```typescript
import { Chess } from '@jackstenglein/chess';
```

## Example Code

The code below plays a random game of chess:

```typescript
import { Chess } from '@jackstenglein/chess';

const chess = new Chess();

while (!chess.isGameOver()) {
    const moves = chess.moves();
    const move = moves[Math.floor(Math.random() * moves.length)];
    chess.move(move);
}

console.log(chess.renderPgn());
```

Also see the [tests](https://github.com/jackstenglein/chess/tree/main/src/__tests__) for further examples.

## User Interface

This is a headless library and does not include user interface elements. ChessDojo has successfully integrated this library with [Lichess Chessground](https://github.com/lichess-org/chessground).

## Features

It has a similar API to [chess.js](https://github.com/jhlywa/chess.js) and provides much of the same functionality. However, it also offers additional features:

-   Handles variations in addition to the mainline PGN
-   Handles Chessbase-style null moves (Z0)
-   Handles NAGs and comments
-   Keeps track of the "current move" and allows seeking/traversing through the PGN
-   Allows fetching/setting known PGN headers, as well as arbitrary PGN headers
-   Allows fetching/setting known PGN commands, as well as arbitrary PGN commands
-   Allows subscribing to specific events and receiving notifications in a callback
npm package: @jackstenglein/chess.ts
Description: Built on top of chess.js and can handle variations (tree-structured move history)
Author: jackstenglein
Latest version: 1.0.1

# cm-chess 

It is like [chess.js](https://github.com/jhlywa/chess.js) (and is based on an older version of chess.js), 
but can handle history variations (tree-structured move history), 
PGN header values, Nags and Comments.

## Install

`npm install cm-chess`

## Features

- It has a similar API to chess.js
- It can handle history variations
- It can add Nags, Comments and Annotations
- It is used by the 7,000 users of [chessmail](https://www.chessmail.de) (it works)

## API

For documentation, see the jsdoc annotations in [Chess.js](https://github.com/shaack/cm-chess/blob/master/src/Chess.js).

cm-chess uses [cm-pgn](https://github.com/shaack/cm-pgn) for the
header and history, therefore you have also the full API of **cm-pgn**.

If I have some time, I will write a better documentation here in this README. :) 

## Examples

See the unit tests for usage examples
https://github.com/shaack/cm-chess/blob/master/test/TestChess.js

And also the unit tests of cm-pgn
https://github.com/shaack/cm-pgn/tree/master/test

## Test

[Run the unit tests](https://shaack.com/projekte/cm-chess/test/)
npm package: @jackstenglein/mui-mentions
Description: @mention people in a MUI TextField
Author: Jack Stenglein
Latest version: 0.1.12

# @jackstenglein/mui-mentions

[![NPM version][npm-image]][npm-url]
[![Build][github-build]][github-build-url]
![npm-typescript]
[![License][github-license]][github-license-url]

[Live Demo](https://jackstenglein.github.io/mui-mentions/)

[npm-url]: https://www.npmjs.com/package/@jackstenglein/mui-mentions
[npm-image]: https://img.shields.io/npm/v/@jackstenglein/mui-mentions
[github-license]: https://img.shields.io/github/license/jackstenglein/mui-mentions
[github-license-url]: https://github.com/jackstenglein/mui-mentions/blob/master/LICENSE
[github-build]: https://github.com/jackstenglein/mui-mentions/actions/workflows/publish.yml/badge.svg
[github-build-url]: https://github.com/jackstenglein/mui-mentions/actions/workflows/publish.yml
[npm-typescript]: https://img.shields.io/npm/types/@jackstenglein/mui-mentions