semvec/pypi-packages huggingface dataset:
mcp-server-demo-supine 0.1.1
A demo MCP server for weather and basic tools
Requires Python: >=3.10

# MCP Server Demo

A demo Model Context Protocol (MCP) server providing weather information and basic utility tools.

## Features

- **Weather Information**: Get real-time weather data via Amap API.
- **Cat Tool**: A simple demonstration tool.
- **MCP Integration**: Fully compatible with MCP clients like Claude Desktop.

## Installation

```bash
pip install mcp-server-demo-supine
```

## Usage

### Running the server

You can run the server directly using the installed script:

```bash
mcp-server-demo-supine
```

Or via python:

```bash
python server.py
```

### Configuration for Claude Desktop

Add the following to your `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "mcp-server-demo-supine": {
      "command": "mcp-server-demo-supine"
    }
  }
}
```

## Development

This project uses `uv` for dependency management.

```bash
uv sync
uv build
```

## License

MIT
alarm4pdcloud 1.0.2
4pd cloud alarm tools
Requires Python: >=3.8

# alarm4pdcloud
Python Package alarm4pdcloud by 4pd

## Installation
```bash
pip install alarm4pdcloud
```

## how to use
```python
from alarm4pdcloud import Sender
sender = Sender(robot_endpoint="https://",
                robot_ak="")

sender.send_robot_with_at(group_id=[1], message="message\n", at_user_ids=["user"])
sender.call_ali("phone", "message")
```
ks-session-manager 0.12.0
KS session manager
Requires Python: >=3.10

# Session converter from Telethon session + json to Pyrogram and vice versa

[![PyPI version shields.io](https://img.shields.io/pypi/v/ks-session-manager.svg)](https://pypi.python.org/pypi/ks-session-manager/)

## Examples

### From telethon to pylogram

```python
import asyncio
import logging

from ks_session_manager.converter import Converter

API_ID = 123456
API_HASH = ""
PHONE_NUMBER = ""


async def main():
    converter = await Converter.from_telethon(PHONE_NUMBER, workdir="./telethon_sessions_path")

    try:
        await converter.export_pylogram_session()
    except FileExistsError as e:
        # Already exported
        logging.warning(e)

    client = await converter.get_pylogram_client()

    async with client:
        me = await client.get_me()
        print(me)


if __name__ == '__main__':
    logging.basicConfig(level=logging.INFO)
    asyncio.run(main())

```

### Telethon sessions revision

```python
import asyncio
import logging

from ks_session_manager.revisors import TelethonRevizor


async def main():
    revizor = TelethonRevizor(
        threads=20,  # How many revisions to run simultaneously
        dry_run=False  # If True, revisions will not actually connect to Telegram, only logs will be printed
    )
    await revizor.revise_all_in_path("./telethon_sessions_path", limit=20)


if __name__ == '__main__':
    logging.basicConfig(level=logging.INFO)
    asyncio.run(main())

```
BUPTmw 0.2.2
Help BUPT students access school system with python.
Requires Python: >=3.11
Keywords: BUPT

# BUPT_Middleware

[![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/ZeroCore-Zero/BUPT_Middleware)

This project aims to help BUPT students simply access school systems with python, without authentication process manually.

## Ability

- Access [CAS](https://auth.bupt.edu.cn/authserver/login)
  - Access [UC](https://uc.bupt.edu.cn/#/user/pc/index)
  - Access [UCloud](https://ucloud.bupt.edu.cn/)
  - Access [Electric](https://app.bupt.edu.cn/buptdf/wap/default/chong/)

## Install

``` bash
pip install buptmw
```

## Usage

Before start, pass your **BUPT Credential** that you needed, which was used in below sites:

1. [CAS](https://auth.bupt.edu.cn/authserver/login)

to the `BUPT_Auth`.

``` python
from buptmw import BUPT_Auth, CAS_Credential

auth: CAS_Credential = {
    "username": "yourUsername",
    "password": "yourPassword"
}
user = BUPT_Auth(cas=auth)
```

Then you can call methods like `get_xxx` to get a verified entity, which you can use it as a `requests.Session`, and any tiresome authentication can be omitted for you.

``` python
from buptmw import BUPT_Auth, CAS_Credential

auth: CAS_Credential = {
    "username": "yourUsername",
    "password": "yourPassword"
}
user = BUPT_Auth(cas=auth)
ucloud = user.get_UCloud()
response = ucloud.get("https://someurl")
# do something with response
```

> [!IMPORTANT]
> 
> DO NOT storage the entities which was obtained by `get_xxx` methods directly, because the cookies will expired but this entity can't detect it timely.
>
> Use the `get_xxx` methods when you try to get a session.
friendly-exceptions 0.3
Human-readable exception explanations with multi-language support
Requires Python: >=3.8
Keywords: exceptions, errors, debugging, i18n, developer-tools

# Friendly Exceptions

Human-readable error messages for Python. Just import and everything works.

## Installation

```bash
pip install friendly-exceptions
```

## Quick Start

```python
import friendly_exceptions

# That's it! All errors now have friendly explanations
d = {}
d['missing']  # KeyError with helpful message
```

## Features

- **Zero configuration** - just import and it works
- **15 languages** - ru, en, de, fr, es, it, pt, zh, ja, ko, pl, uk, ar, hi, tr
- **30+ built-in handlers** - KeyError, TypeError, ValueError, FileNotFoundError, etc.
- **20+ integrations** - Django, Pydantic, FastAPI, SQLAlchemy, Redis, MongoDB, AWS, Stripe, etc.
- **Web console** - visual error dashboard with Supabase sync
- **CLI** - global install for any Python project

## Language Support

```python
import friendly_exceptions

friendly_exceptions.set_language('ru')  # Русский
friendly_exceptions.set_language('de')  # Deutsch
friendly_exceptions.set_language('zh')  # 中文
friendly_exceptions.set_language('ja')  # 日本語
```

## Integrations

All integrations load automatically if the library is installed:

| Category | Libraries |
|----------|-----------|
| Web | Django, FastAPI, Pydantic |
| Database | SQLAlchemy, MongoDB, Redis |
| HTTP | Requests, httpx, aiohttp |
| Cloud | AWS/boto3, Firebase, Stripe |
| Data | Pandas, NumPy, Pillow |
| Bots | Telegram, Discord |
| Testing | Pytest |
| Other | OpenAI, Selenium, Subprocess, Asyncio |

## Server Mode

When running as a server (Django runserver, uvicorn, gunicorn), errors are logged to `fe.log`:

```python
# settings.py or manage.py
import friendly_exceptions

# Errors now logged to fe.log instead of console
```

## Web Console

```bash
python -m friendly_exceptions web-console run -p 8080
```

Features:
- Visual error dashboard
- Supabase authentication
- Cloud sync for errors and settings
- Notification settings (Slack, Telegram, Discord, Email)

## CLI

Global install for any project:

```bash
# Install globally
friendly-exceptions install

# Check status
friendly-exceptions status

# Uninstall
friendly-exceptions uninstall
```

## API

```python
from friendly_exceptions import (
    explain,              # Explain last exception
    explain_exception,    # Explain specific exception
    set_language,         # Set language
    get_language,         # Get current language
    list_languages,       # List available languages
    ErrorCollector,       # Collect multiple errors
)
```

## Example Output

```
Exception: KeyError: 'user_id'
Traceback (most recent call last):
  File "app.py", line 10, in get_user
    return data['user_id']
KeyError: 'user_id'

💡 Explanation: 🔑 Dictionary does not contain key 'user_id'
📋 Dictionary 'data' contains keys: ['name', 'email']

🔧 How to fix:
1. Check the spelling of the key
2. Use .get() method: dict.get('key', default_value)
3. Check if key exists: 'key' in dict
```

## License

MIT
hfs-worker 0.1.0
Distributed worker for HuggingFace Space scheduling
Requires Python: >=3.10

# HFS v2 - HuggingFace Space Worker 分布式调度系统

基于 Redis 的分布式 Worker 调度系统，用于管理 HuggingFace Space 资源池。

## 特性

- ✅ **分布式调度** - 多 Worker 并发，自动负载均衡
- ✅ **状态管理** - 原子操作（Lua 脚本），保证一致性
- ✅ **健康检查** - 自动检测崩溃、超时、孤儿资源
- ✅ **账号管理** - 多账号池，自动选择、cooldown、评分
- ✅ **Space 轮换** - 自动创建、绑定、轮换、复用
- ✅ **Admin CLI** - 命令行管理工具

## 快速开始

### 1. 安装依赖

```bash
pip install redis huggingface-hub click tabulate
```

### 2. 初始化系统

```bash
cd v2
python admin/init.py
```

### 3. 查看状态

```bash
python admin/cli.py --redis-url="redis://..." list-nodes
python admin/cli.py --redis-url="redis://..." list-accounts
```

### 4. 运行 Worker

```bash
python -m hfs --redis-url="redis://..." --space-id=my-space --project-id=demo --node-id=node-1
```

## 架构

```
┌─────────────┐
│   Redis     │  ← 状态存储
└──────┬──────┘
       │
   ┌───┴────┐
   │        │
┌──▼──┐  ┌─▼───┐
│Worker│  │Worker│  ← 独立进程
└──┬──┘  └─┬───┘
   │       │
┌──▼───────▼──┐
│  Scheduler  │  ← 调度器
└─────────────┘
```

## 核心模块

- **state.py** - 状态机 + 原子操作（Lua 脚本）
- **health.py** - 健康检查（崩溃检测、一致性验证）
- **policy.py** - 策略配置（场景、命名）
- **worker.py** - Worker 主循环（心跳、进程管理）
- **scheduler.py** - 调度器（分配、轮换、创建）
- **account.py** - 账号管理（选择、cooldown、评分）
- **hf.py** - HuggingFace API 封装

## 测试

```bash
# 运行所有测试
pytest tests/ -v

# 运行特定模块
pytest tests/test_state.py -v
pytest tests/test_worker.py -v
pytest tests/test_scheduler.py -v
```

## 文档

- [设计文档](docs/design/) - 架构、数据模型、状态机
- [开发计划](docs/dev/PLAN.md) - Phase 划分、任务清单
- [Admin CLI](docs/ADMIN_CLI.md) - 命令行工具使用指南

## 配置

### Redis

```bash
export HFS_REDIS_URL="redis://:password@host:port/db"
```

### HuggingFace 账号

在 `admin/init.py` 中配置账号列表：

```python
ACCOUNTS = [
    {'username': 'user1', 'token': 'hf_xxx'},
    {'username': 'user2', 'token': 'hf_yyy'}
]
```

## 开发

### 测试驱动开发

1. 先写测试（`tests/test_*.py`）
2. 再实现功能（`hfs/*.py`）
3. 运行测试验证

### 代码结构

```
v2/
├── hfs/                # Worker 包
│   ├── state.py        # 状态机
│   ├── health.py       # 健康检查
│   ├── policy.py       # 策略配置
│   ├── worker.py       # Worker 主循环
│   ├── scheduler.py    # 调度器
│   ├── account.py      # 账号管理
│   └── hf.py           # HF API
├── admin/              # Admin 工具
│   ├── cli.py          # 命令行工具
│   └── init.py         # 快速初始化
├── tests/              # 测试
└── docs/               # 文档
```

## 许可

MIT License
slidcord 0.3.1
A Discord/XMPP gateway
Requires Python: >=3.11
Keywords: xmpp, gateway, bridge, instant messaging, chat, discord

# slidcord

A
[feature-rich](https://slidge.im/docs/slidcord/main/user/features.html)
[Discord](https://discord.com/) to
[XMPP](https://xmpp.org/) puppeteering
[gateway](https://xmpp.org/extensions/xep-0100.html), based on
[slidge](https://slidge.im) and
[discord.py-self](https://discordpy-self.readthedocs.io).

[![CI pipeline status](https://ci.codeberg.org/api/badges/14067/status.svg)](https://ci.codeberg.org/repos/14067)
[![Chat](https://rooms.slidge.im:5281/muc_badge/support@rooms.slidge.im)](https://slidge.im/xmpp-web/#/guest?join=support@rooms.slidge.im)
[![PyPI package version](https://badge.fury.io/py/slidcord.svg)](https://pypi.org/project/slidcord/)




slidcord lets you chat with users of Discord without leaving your favorite XMPP client.

## Quickstart

```sh
docker run codeberg.org/slidge/slidcord \  # works with podman too
    --jid discord.example.org \  # can be whatever you want it to be
    --secret some-secret \  # must match your XMPP server config
    --home-dir /somewhere/writeable  # for data persistence
```

Use the `:latest` tag for the latest release, `:vX.X.X` for release X.X.X, and `:main`
for the bleeding edge.

If you do not like containers, other installation methods are detailed
[in the docs](https://slidge.im/docs/slidcord/main/admin/install.html).

## Documentation

Hosted on [codeberg pages](https://slidge.im/docs/slidcord/main/).

## Contributing

Contributions are **very** welcome, and we tried our best to make it easy
to start hacking on slidcord. See [CONTRIBUTING.md](./CONTRIBUTING.md).


## Related projects

- [xmpp-discord-bridge](https://git.linux.ucla.edu/jshiffer/xmpp-discord-bridge) uses a discord bot to mirror a discord
  channel in a MUC
polars-sim 0.4.1
Fast similarity join for polars DataFrames.
Requires Python: <3.14,>=3.10

# polars_sim

[![Polars >= 1 Compatibility Test](https://github.com/schemaitat/polars_sim/actions/workflows/polars-compatibility.yml/badge.svg)](https://github.com/schemaitat/polars_sim/actions/workflows/polars-compatibility.yml)

## Description

Implements an **approximate join** of two polars dataframes based on string columns.


Right now, we use a fixed vectorization, which is applied on the fly and eventually
used in a sparse matrix multiplication combined with a top-n selection. This produces
the cosine similarities of the individual string pairs.

The `join_sim` function is similar to a left join or `join_asof` but for strings instead of timestamps.

## Installation

```bash
pip install polars_sim
```

## Development

We use [uv](https://docs.astral.sh/uv/) for python package management. Furthermore, you need rust to be installed, see [install rust](https://www.rust-lang.org/tools/install). You won't need to activate an enviroment by yourself at any point. This is handled by uv. To get started, run
```bash
# install python dependencies and compile the rust code
make install 
# run tests
make test
```

## Usage

```python
import polars as pl
import polars_sim as ps

df_left = pl.DataFrame(
    {
        "name": ["alice", "bob", "charlie", "david"],
    }
)

df_right = pl.DataFrame(
    {
        "name": ["ali", "alice in wonderland", "bobby", "tom"],
    }
)

df = ps.join_sim(
    df_left,
    df_right,
    on="name",
    top_n=4,
)

shape: (3, 3)
┌───────┬──────────┬─────────────────────┐
│ name  ┆ sim      ┆ name_right          │
│ ---   ┆ ---      ┆ ---                 │
│ str   ┆ f32      ┆ str                 │
╞═══════╪══════════╪═════════════════════╡
│ alice ┆ 0.57735  ┆ ali                 │
│ alice ┆ 0.522233 ┆ alice in wonderland │
│ bob   ┆ 0.57735  ┆ bobby               │
└───────┴──────────┴─────────────────────┘
```

# Performance

A benchmark can be executed with `make run-bench`. 
In general, the performance heavily depends on the length of the dataframes.
By default, the computation is parallelized over the left dataframe. However, serveral benchmarks 
showed that if the right dataframe is much bigger than the left dataframe and no normalization is applied, it is faster to parallelize over the right dataframe. 

If no normalization is applied, the performance is usually better since the a small uint type will
be used for the sparse matrix multiplication, e.g. u16. Otherwise, all types will be of 32 bit size.

# References

The implementation is based on an algorithm used in [sparse_dot_topn](https://github.com/ing-bank/sparse_dot_topn), which itself is an improvement of the scipy sparse matrix multiplication.
mpool-worker 0.1.0
Distributed worker for HuggingFace Space scheduling
Requires Python: >=3.10

# HFS v2 - HuggingFace Space Worker 分布式调度系统

基于 Redis 的分布式 Worker 调度系统，用于管理 HuggingFace Space 资源池。

## 特性

- ✅ **分布式调度** - 多 Worker 并发，自动负载均衡
- ✅ **状态管理** - 原子操作（Lua 脚本），保证一致性
- ✅ **健康检查** - 自动检测崩溃、超时、孤儿资源
- ✅ **账号管理** - 多账号池，自动选择、cooldown、评分
- ✅ **Space 轮换** - 自动创建、绑定、轮换、复用
- ✅ **Admin CLI** - 命令行管理工具

## 快速开始

### 1. 安装依赖

```bash
pip install redis huggingface-hub click tabulate
```

### 2. 初始化系统

```bash
cd v2
python admin/init.py
```

### 3. 查看状态

```bash
python admin/cli.py --redis-url="redis://..." list-nodes
python admin/cli.py --redis-url="redis://..." list-accounts
```

### 4. 运行 Worker

```bash
python -m hfs --redis-url="redis://..." --space-id=my-space --project-id=demo --node-id=node-1
```

## 架构

```
┌─────────────┐
│   Redis     │  ← 状态存储
└──────┬──────┘
       │
   ┌───┴────┐
   │        │
┌──▼──┐  ┌─▼───┐
│Worker│  │Worker│  ← 独立进程
└──┬──┘  └─┬───┘
   │       │
┌──▼───────▼──┐
│  Scheduler  │  ← 调度器
└─────────────┘
```

## 核心模块

- **state.py** - 状态机 + 原子操作（Lua 脚本）
- **health.py** - 健康检查（崩溃检测、一致性验证）
- **policy.py** - 策略配置（场景、命名）
- **worker.py** - Worker 主循环（心跳、进程管理）
- **scheduler.py** - 调度器（分配、轮换、创建）
- **account.py** - 账号管理（选择、cooldown、评分）
- **hf.py** - HuggingFace API 封装

## 测试

```bash
# 运行所有测试
pytest tests/ -v

# 运行特定模块
pytest tests/test_state.py -v
pytest tests/test_worker.py -v
pytest tests/test_scheduler.py -v
```

## 文档

- [设计文档](docs/design/) - 架构、数据模型、状态机
- [开发计划](docs/dev/PLAN.md) - Phase 划分、任务清单
- [Admin CLI](docs/ADMIN_CLI.md) - 命令行工具使用指南

## 配置

### Redis

```bash
export HFS_REDIS_URL="redis://:password@host:port/db"
```

### HuggingFace 账号

在 `admin/init.py` 中配置账号列表：

```python
ACCOUNTS = [
    {'username': 'user1', 'token': 'hf_xxx'},
    {'username': 'user2', 'token': 'hf_yyy'}
]
```

## 开发

### 测试驱动开发

1. 先写测试（`tests/test_*.py`）
2. 再实现功能（`hfs/*.py`）
3. 运行测试验证

### 代码结构

```
v2/
├── hfs/                # Worker 包
│   ├── state.py        # 状态机
│   ├── health.py       # 健康检查
│   ├── policy.py       # 策略配置
│   ├── worker.py       # Worker 主循环
│   ├── scheduler.py    # 调度器
│   ├── account.py      # 账号管理
│   └── hf.py           # HF API
├── admin/              # Admin 工具
│   ├── cli.py          # 命令行工具
│   └── init.py         # 快速初始化
├── tests/              # 测试
└── docs/               # 文档
```

## 许可

MIT License
slidgram 0.3.1
A Telegram/XMPP gateway
Requires Python: >=3.11
Keywords: xmpp, gateway, bridge, instant messaging, chat, telegram

# slidgram

A
[feature-rich](https://slidge.im/docs/slidgram/main/user/features.html)
[Telegram](https://telegram.org) to
[XMPP](https://xmpp.org/) puppeteering
[gateway](https://xmpp.org/extensions/xep-0100.html), based on
[slidge](https://slidge.im) and
[Pyrofork](https://pyrofork.mayuri.my.id/main/).

[![CI pipeline status](https://ci.codeberg.org/api/badges/14064/status.svg)](https://ci.codeberg.org/repos/14064)
[![Chat](https://rooms.slidge.im:5281/muc_badge/support@rooms.slidge.im)](https://slidge.im/xmpp-web/#/guest?join=support@rooms.slidge.im)
[![PyPI package version](https://badge.fury.io/py/slidgram.svg)](https://pypi.org/project/slidgram/)




slidgram lets you chat with users of Telegram without leaving your favorite XMPP client.

## Quickstart

```sh
docker run codeberg.org/slidge/slidgram \  # works with podman too
    --jid telegram.example.org \  # can be whatever you want it to be
    --secret some-secret \  # must match your XMPP server config
    --home-dir /somewhere/writeable  # for data persistence
```

Use the `:latest` tag for the latest release, `:vX.X.X` for release X.X.X, and `:main`
for the bleeding edge.

If you do not like containers, other installation methods are detailed
[in the docs](https://slidge.im/docs/slidgram/main/admin/install.html).

## Documentation

Hosted on [codeberg pages](https://slidge.im/docs/slidgram/main/).

## Contributing

Contributions are **very** welcome, and we tried our best to make it easy
to start hacking on slidgram. See [CONTRIBUTING.md](./CONTRIBUTING.md).


## Similar project

[Telegabber](https://dev.narayana.im/narayana/telegabber/), similar project written in go.
loguru-to-cls-tencent 0.1.2
A loguru handler to send logs to Tencent Cloud CLS via Kafka
Requires Python: >=3.6

# loguru-to-cls
        
        A simple package to send [loguru](https://github.com/Delgan/loguru) logs to Tencent Cloud CLS (Cloud Log Service) using the Kafka protocol.
        
        ## Installation
        
        ### From PyPI (Official)
        If you just published the package, it might take a few minutes to sync to mirrors. Use the official PyPI server to install immediately:
        
        ```bash
        pip install loguru-to-cls-tencent -i https://pypi.org/simple
        ```
        
        ### Gitee (Source)
        
        Or install from source:
        
        ```bash
        pip install .
        ```
        
        ## Usage
        
        ```python
        from loguru import logger
        from loguru_to_cls import setup_cls_logging
        
        # Initialize CLS logging
        secret_id = "YOUR_SECRET_ID"
        secret_key = "YOUR_SECRET_KEY"
        logset_id = "YOUR_LOGSET_ID"
        topic_id = "YOUR_TOPIC_ID"
        
        handler = setup_cls_logging(secret_id, secret_key, logset_id, topic_id)
        
        # Now you can use loguru as usual
        logger.info("This is a test log message sent to Tencent Cloud CLS!")
        logger.error("This is an error message.")
        
        # Ensure all logs are sent before exiting
        handler.flush()
        ```
        
        ## Configuration
        
        The `setup_cls_logging` function accepts the following parameters:
        
        - `secret_id`: Tencent Cloud Secret ID.
        - `secret_key`: Tencent Cloud Secret Key.
        - `logset_id`: CLS Logset ID.
        - `topic_id`: CLS Topic ID.
        - `level`: Logging level (default: "INFO").
        - `bootstrap_servers`: List of Kafka bootstrap servers (default: Tencent Cloud Guangzhou region).
clipy-manager 0.1.1
A lightweight clipboard manager for Wayland and X11
Requires Python: >=3.9
Keywords: clipboard, manager, linux, wayland, x11, rofi, fzf, telescope

# Clipy - Python Clipboard Manager

Clipy is a simple clipboard manager written in Python that is designed to be piped into `rofi`, `dmenu`, or `fzf`.

### Dependencies
- Python 3
- **Wayland**: `wl-clipboard`
- **X11**: `xclip`

## Features
- **Wayland Support**: Uses `wl-paste --watch` for efficient monitoring.
- **X11 Support**: Uses polling with `xclip`.
- **Image Support**: Automatically detects and caches images.
- **Database**: Stores history in `~/.local/share/clipy/clipy.db`.

### Installation
```bash
git clone https://github.com/andriy-git/clipy
cd clipy
./setup.sh
```
This will install the `clipy` command to `~/.local/bin`. **Ensure `~/.local/bin` is in your `$PATH`.**

Alternatively, install as a Python package:
```bash
pip install .
```
This will provide the `clipy` command directly.

## Usage

### 1. Start the Daemon
Run the daemon in the background to watch for clipboard changes.
```bash
clipy daemon &
```
Add this to your startup script (e.g., `~/.config/sway/config` or `~/.xinitrc`).

### Systemd Service
You can also run Clipy as a user systemd service. Create `~/.config/systemd/user/clipy-daemon.service`:

```ini
[Unit]
Description=Clipboard history daemon

[Service]
ExecStart=%h/.local/bin/clipy daemon
Restart=on-failure

[Install]
WantedBy=default.target
```

Then enable and start it:
```bash
systemctl --user daemon-reload
systemctl --user enable --now clipy-daemon.service
```

### 2. Status & Management
```bash
clipy status
clipy clear        # Clear all history
clipy clear '^.{1,3}$'  # Clear entries between 1-3 characters
```

### 3. Integrated Pickers
Clipy comes with built-in support for popular search tools. You can run them directly:

- **fzf**: `clipy fzf` (Supports live search, delete with `Ctrl+d`, and outputs selection to stdout)
- **Rofi**: `clipy rofi` (Supports select and delete with `Ctrl+d`, restores to clipboard)
- **dmenu**: `clipy dmenu` (Restores to clipboard)

> [!TIP]
> You can use `clipy fzf` in command substitutions, e.g., `$(clipy fzf)` to execute or capture the selection.

### 4. Neovim Integration (Telescope)
The Telescope integration is available as a Lua script in the `scripts/` directory.

To use it, run `clipy telescope` for setup instructions or add this to your Neovim config:
```lua
local clipy = require('clipy-telescope') -- Or path in subfolder
clipy.setup({ clipy_path = "clipy" }) -- Path to the clipy command
vim.keymap.set('n', '<leader>c', clipy.clipboard_history, { desc = "Clipy Clipboard History" })
```
> [!NOTE]
> You must add the `scripts/` directory to your Neovim `runtimepath` or copy clipy-telescope.lua to your lua folder.