kiosque
A unified tool for news article extraction and bookmark management.
What is Kiosque?
Kiosque combines three essential capabilities:
- Article Extractor (CLI/API) - Download full-text articles from several paywalled news websites as Markdown
- Bookmark Manager (TUI) - Browse and manage bookmarks from Raindrop.io and GitHub Stars in a beautiful terminal interface
- Content Aggregator - Unified tabbed interface for multiple content sources with smart context-aware actions
Quick Start
# Launch TUI (Terminal User Interface) - default
kiosque
# Extract article to file
kiosque https://www.lemonde.fr/article output.md
# Print to stdout
kiosque https://www.nytimes.com/article - | bat - -l md
# Download NYT front page PDF
kiosque nyt
Installation
# From PyPI
pip install kiosque
# Or with uv (recommended)
uv tool install kiosque
Requirements: Python 3.12+, pandoc
Core Features
📰 Article Extraction
- News Websites - Le Monde, NYT, Guardian, Mediapart, and more
- Authentication - Login support for paywalled sites
- Markdown Output - Clean, readable format with metadata
- Proxy Support - Access geo-blocked websites via SOCKS/HTTP proxies
🔖 Bookmark Management
- Raindrop.io Integration - Browse, preview, archive, delete, edit tags
- GitHub Stars - Explore starred repos, preview READMEs, unstar
- Unified Search - Filter by title, URL, tags, topics across all sources
- Beautiful Previews - Markdown rendering with syntax highlighting
🚀 Content Aggregation
- Tabbed Interface - Switch between Raindrop and GitHub
- Progressive Loading - Non-blocking, fast performance
- Smart Actions - Context-aware keybindings (e.g., star GitHub repos from Raindrop)
Configuration
Create ~/.config/kiosque/kiosque.conf:
# Website authentication
[https://www.lemonde.fr/]
username = your.email@example.com
password = your_password
[https://www.nytimes.com/]
cookie_nyt_s = your_nyt_cookie_value
# Raindrop.io integration
[raindrop.io]
token = your_raindrop_api_token
# GitHub Stars integration
[github]
token = ghp_your_github_personal_access_token
# Proxy for geo-blocked sites (optional)
[proxy]
url = socks5://localhost:1080
Python API
from kiosque import Website
# Extract article as Markdown
url = "https://www.lemonde.fr/article"
markdown = Website.instance(url).full_text(url)
# Save to file
Website.instance(url).save(url, "article.md")
Documentation
📚 Full documentation: https://www.xoolive.org/kiosque
- Installation - Detailed installation guide
- Configuration - Authentication setup for all sites
- TUI Guide - Complete terminal interface reference
- Supported Sites - Full list of websites
- Authentication - Site-specific login instructions
- Adding Sites - Contributing new website support
- Troubleshooting - Common issues and solutions
TUI Keybindings
| Key | Action |
|---|---|
↑ or k / ↓ or j |
Navigate entries |
1 / 2 |
Switch tabs |
/ |
Search |
Space |
Preview article/README |
Enter / o |
Open in browser |
t |
Edit tags (Raindrop) |
e |
Archive (Raindrop) |
d |
Delete (Raindrop) |
u |
Unstar (GitHub) |
s |
Star on GitHub (GitHub URLs) |
r |
Refresh |
q |
Quit |
Contributing
Contributions welcome! See the Contributing Guide for:
- How to add support for new websites
- Code style and testing guidelines
- Architecture overview
License
MIT
Metadata
Release files for kiosque 0.2.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 | |
|---|---|---|---|
| kiosque-0.2.0.tar.gz | 194.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| kiosque-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 249.3 kB
Release files / kiosque-0.2.0.tar.gz
| Download URL | kiosque-0.2.0.tar.gz |
|---|---|
| Size | 194.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
90211e2f45865bc9c5f92d629db6709e1f1cf8b571186c16933b44366be72184
|
|
BLAKE2b-256 checksum How to use checksums |
b2402f83ae13966e12eb17132f3193ca4032d4780eb7512ce1e52795f712e264
|
| 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 Jul 11, 2026.
Transparency logRelease files / kiosque-0.2.0-py3-none-any.whl
| Download URL | kiosque-0.2.0-py3-none-any.whl |
|---|---|
| Size | 54.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fce030a90445fd289044813c10024e6f5a9aaccc7b792994a1314485478fd764
|
|
BLAKE2b-256 checksum How to use checksums |
41ef972f88009e134d7160d4bcc2135b9c7c3ff8208ae4468cd259e9f65e6fdc
|
| 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 Jul 11, 2026.
Transparency log