Metadata-Version: 2.4
Name: notebook-terminal
Version: 0.3.4
Summary: A cross-platform PTY/ConPTY terminal for Jupyter with bundled xterm.js
Author: Robert Zawadzki
License: MIT
Project-URL: Homepage, https://github.com/ZawadzkiR/notebook-terminal
Project-URL: Repository, https://github.com/ZawadzkiR/notebook-terminal
Project-URL: Issues, https://github.com/ZawadzkiR/notebook-terminal/issues
Project-URL: Changelog, https://github.com/ZawadzkiR/notebook-terminal/blob/main/CHANGELOG.md
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: ipywidgets>=8.1
Requires-Dist: ipython>=8
Requires-Dist: traitlets>=5
Requires-Dist: jupyterlab_widgets<4,>=3.0
Requires-Dist: widgetsnbextension<5,>=4.0
Requires-Dist: pywinpty>=3.0.0; platform_system == "Windows"
Provides-Extra: flask
Requires-Dist: Flask>=2.3; extra == "flask"
Requires-Dist: flask-sock>=0.7; extra == "flask"
Provides-Extra: django
Requires-Dist: Django>=4.2; extra == "django"
Requires-Dist: channels>=4; extra == "django"
Provides-Extra: plotly
Requires-Dist: plotly>=5; extra == "plotly"
Provides-Extra: data
Requires-Dist: pandas>=1.5; extra == "data"
Requires-Dist: matplotlib>=3.6; extra == "data"
Provides-Extra: dev
Requires-Dist: build>=1.2; extra == "dev"
Requires-Dist: twine>=5; extra == "dev"
Requires-Dist: pytest>=8; extra == "dev"
Dynamic: license-file

# Notebook Terminal 0.3.4

A real PTY/ConPTY terminal embedded in Jupyter using bundled xterm.js and only standard `ipywidgets` channels. It needs no `anywidget`, JupyterLab extension, administrator installation, HTTP server, WebSocket, CDN, or internet connection.

## Installation

```bash
python -m pip install notebook_terminal-0.3.4-py3-none-any.whl
```

Restart the kernel after replacing an older version.

## Usage

```python
from notebook_terminal import terminal
term = terminal(height=450, interactive=True)
```

The shell prompt, username, host, and working directory come from the actual PowerShell, CMD, Bash, or Zsh process. They are not hardcoded.

## 0.5.0 transport changes

- lossless output packets with sequence numbers and acknowledgements;
- every frontend state contains all unacknowledged packets, so coalesced widget updates cannot drop output;
- exact byte transport preserves split UTF-8 and ANSI sequences;
- output batching every 25 ms and maximum 64 KiB packets;
- ordered, acknowledged input queue prevents lost keystrokes;
- xterm writes are serialized and acknowledged only after rendering;
- resize events and terminal control messages remain deduplicated.

This release specifically addresses missing characters, overwritten output, invisible fast commands such as `ls`, and severe lag caused by sending every PTY fragment as an independent widget trait update.


## Repository

GitHub: `ZawadzkiR/notebook-terminal`
