clipable
clipable converts spreadsheet data from your clipboard into a Markdown table — instantly.
Copy cells from Excel, Google Sheets, or any CSV/TSV source, run clipable, and the Markdown table is already in your clipboard, ready to paste into any document or wiki.
Why clipable?
Manually converting spreadsheet data to Markdown tables is tedious. clipable eliminates that entirely.
With watch mode, you don't even run a command — just copy cells from a spreadsheet and the clipboard is automatically converted. The flow becomes simply: copy → paste.
Install
pip install clipable
With uv:
uv tool install clipable
Usage
Watch mode (recommended)
Start the watcher once in a terminal. After that, every time you copy cells from a spreadsheet the clipboard is silently converted to Markdown in the background.
clipable watch
╭─────────────────────────────────────────────────────╮
│ clipable watch — watching clipboard │
│ Copy cells from a spreadsheet and they will be │
│ auto-converted to Markdown. │
│ Ctrl+C to stop │
╰─────────────────────────────────────────────────────╯
✓ Detected TSV — converted to Markdown and updated clipboard
╭─ Markdown ──────────────────────────────────────────╮
│ | Name | Age | Department | │
│ | ----- | --- | ----------- | │
│ | Alice | 30 | Engineering | │
│ | Bob | 25 | Design | │
╰─────────────────────────────────────────────────────╯
One-shot conversion
Copy cells from a spreadsheet, then run:
clipable
The clipboard is replaced with the Markdown table and printed to the terminal for confirmation.
Options
| Option | Default | Description |
|---|---|---|
-f, --format |
auto | Force format: tsv or csv |
-l, --linesep |
<br> |
Replacement string for in-cell line breaks |
--version |
Show version and exit |
For clipable watch:
| Option | Default | Description |
|---|---|---|
-l, --linesep |
<br> |
Replacement string for in-cell line breaks |
-i, --interval |
0.5 |
Clipboard polling interval in seconds |
Format auto-detection
clipable automatically detects whether your clipboard contains TSV (tab-separated) or CSV (comma-separated) data. Use -f to override when needed.
Example output
Input (copied from Google Sheets):
Name Age Department
Alice 30 Engineering
Bob 25 Design
Output (Markdown, written back to clipboard):
| Name | Age | Department |
| ----- | --- | ----------- |
| Alice | 30 | Engineering |
| Bob | 25 | Design |
License
MIT
Metadata
Release files for clipable 0.5.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| clipable-0.5.0.tar.gz | 45.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| clipable-0.5.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 53.3 kB
Release files / clipable-0.5.0.tar.gz
| Download URL | clipable-0.5.0.tar.gz |
|---|---|
| Size | 45.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f89ed4b4ce34fd195c276cd2e022c564920381c13ddd3d837d2b616b4218bf17
|
|
BLAKE2b-256 checksum How to use checksums |
fae9c2d96e8611a3ecff6194c73ef3db4e11cfff36db541c36aa1257d9a053eb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 26, 2026.
Transparency logRelease files / clipable-0.5.0-py3-none-any.whl
| Download URL | clipable-0.5.0-py3-none-any.whl |
|---|---|
| Size | 7.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4ea656add16e6e0fe975754816188f95426d488643b01a4bebc5d2bc8adf0927
|
|
BLAKE2b-256 checksum How to use checksums |
67aed6afc3e24721d0a1d928d7958aec2f28bdcc6cf769549576eb38731fc00e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 26, 2026.
Transparency log