semvec/pypi-packages huggingface dataset:
boxjoin 0.3.3
Bounding box clustering: group overlapped box into a large box
Requires Python: >=3.10

## boxjoin

### Install

```shell
pip install boxjoin
````

### How it works

It works by detecting overlapped bounding box. Overlapped box will be grouped as one large bouding box.
It is useful for grouping some bounding box (from YOLO, etc).
But, currently it is not label aware and working based on coordinate.

### Showcase

#### Group of people
![Inference](https://raw.githubusercontent.com/dukenmarga/boxjoin/main/images/people.jpg)
![Grouped](https://raw.githubusercontent.com/dukenmarga/boxjoin/main/images/people-grouped.jpg)

#### Walking at the park
![Inference](https://raw.githubusercontent.com/dukenmarga/boxjoin/main/images/people-walking.jpg)
![Grouped](https://raw.githubusercontent.com/dukenmarga/boxjoin/main/images/people-walking-grouped.jpg)

#### Group of text from Medium
Source: https://stackoverflow.com/questions/66490374/how-to-merge-nearby-bounding-boxes-opencv

![Medium](https://raw.githubusercontent.com/dukenmarga/boxjoin/main/images/medium.png)
![Grouped](https://raw.githubusercontent.com/dukenmarga/boxjoin/main/images/medium-grouped.png)

### Example

```python
import boxjoin
import cv2

filename = "people-walking-original.jpg"
save_path = "people-walking-original-grouped.jpg"

img = cv2.imread(filename)

# Each box is in the format of [x1, y1, x2, y2]
# They can be extracted from YOLO output.
# This example is simply for demonstration
boxes = [
    [143, 91, 174, 118],
    [142, 98, 164, 123],
    [143, 87, 204, 165],
    [127, 118, 225, 181],
    [371, 195, 386, 220],
    [334, 152, 380, 243],
    [293, 193, 335, 301],
    [470, 136, 494, 167],
    [464, 123, 500, 214],
    [565, 234, 586, 260],
    [554, 178, 582, 261],
    [219, 313, 261, 405],
    [182, 297, 223, 387],
    [151, 315, 196, 421]
]

clusters = boxjoin.BoxClustering(boxes=boxes, img=img, save_path=save_path)

for i, cluster in enumerate(clusters):
    print(f"Cluster {i}: {cluster}")
    # The output should look like this:
    # Cluster 0: [[143, 91, 174, 118], [142, 98, 164, 123], [143, 87, 204, 165], [127, 118, 225, 181]]
    # Cluster 1: [[371, 195, 386, 220], [334, 152, 380, 243], [293, 193, 335, 301]]
    # Cluster 2: [[470, 136, 494, 167], [464, 123, 500, 214]]
    # Cluster 3: [[565, 234, 586, 260], [554, 178, 582, 261]]
    # Cluster 4: [[219, 313, 261, 405], [182, 297, 223, 387], [151, 315, 196, 421]]
```

Full example can be found in `example` directory
devtool-mcp 0.6.0
DEPRECATED: This package has been renamed to 'agnt'. Please install 'agnt' instead.
Requires Python: >=3.10
Keywords: accessibility, ai, debugging, deprecated, development, devtools, diagnostics, frontend, mcp, model-context-protocol, process-management, proxy

# devtool-mcp (DEPRECATED)

> **This package has been renamed to [`agnt`](https://pypi.org/project/agnt/).** Please install `agnt` instead.

## Migration

```bash
pip uninstall devtool-mcp
pip install agnt
```

Then update your MCP configuration:

**Before:**
```json
{
  "mcpServers": {
    "devtool": {
      "command": "devtool-mcp"
    }
  }
}
```

**After:**
```json
{
  "mcpServers": {
    "agnt": {
      "command": "agnt",
      "args": ["serve"]
    }
  }
}
```

## Why the rename?

The project has evolved beyond just development tooling into a full AI coding agent toolkit. The new name `agnt` better reflects its capabilities:

- Process management for development workflows
- Reverse proxy with traffic logging and browser instrumentation
- 50+ diagnostic primitives for frontend debugging
- Sketch mode for wireframing directly on your UI
- PTY wrapper for AI coding tools (Claude Code, Gemini, etc.)

## New Features in agnt

- `agnt run claude` - Wrap AI tools with overlay features
- `agnt serve` - Run as MCP server
- Sketch mode for wireframing
- Floating indicator panel
- Toast notifications

See the [agnt documentation](https://standardbeagle.github.io/agnt/) for details.

## Backward Compatibility

This wrapper package will continue to work but will not receive updates. The `devtool-mcp` command will forward to `agnt` with a deprecation notice.

## License

MIT