Skip to main content
Beam Logo

Beam

Cross-device clipboard.

PyPI version License: MIT

中文文档

Command-line tool for cross-device text sharing via cloud API.

Just 2 commands: bm c (copy) and bm p (paste)

Quick Start

# Install (basic)
pip install beam-clipboard -i https://pypi.org/simple

# Install with clipboard support (recommended)
pip install 'beam-clipboard[clipboard]' -i https://pypi.org/simple

# First time: set your personal key
bm c "hello world"
# Prompt: No key configured. Please enter your personal key:
# Enter your key (recommend 20+ characters)

# Daily use
bm c "copy this"    # copy to cloud
bm p                # paste from cloud

Features

  • ✨ Minimalist - Just bm c and bm p
  • 🚀 Zero config - Auto setup on first use
  • 🔄 Cross-device - Mac, Linux, Windows, iPhone browser
  • 📦 Pure Python - No external dependencies
  • 🔐 Encrypted - Content encrypted before upload
  • 🗜️ Compressed - Reduce transfer size (~60% for code)
  • 🔓 Open source - MIT License

Usage

Copy & Paste

# Copy text directly
bm c "hello world"

# Copy from stdin (all platforms)
echo "hello" | bm c
cat file.txt | bm c

# Copy from system clipboard (requires pyperclip)
bm c

# Platform-specific clipboard commands (alternative without pyperclip)
pbpaste | bm c           # macOS
xclip -o | bm c          # Linux X11
wl-paste | bm c          # Linux Wayland
Get-Clipboard | bm c     # Windows PowerShell

# Plain text mode (for browser viewing on mobile devices)
bm c --plain "hello world"

# Paste text
bm p

Edit Key & Password

# Interactive edit (server + key + password)
bm e

# Set new key directly
bm e mynewkey

# Set custom server URL
bm e -s https://your-domain.com

# Set encryption password
bm e -p mypassword

Alternative Usage

python -m beam c "hello world"
python -m beam p

Use Cases

💻 Computer Sync

# computer A
bm c "some data"

# computer B
bm p

📱 Computer & Mobile

Computer to Mobile (view in browser)

# on computer
bm c --plain "hello world"

# on mobile browser
# visit: https://textdb.online/yourkey

Mobile to Computer (input in browser)

# on mobile browser
# visit: https://textdb.online/yourkey
# input your text directly

# on computer
bm p

API Details

Based on TextDB.online free service:

  • Create/Update: https://api.textdb.online/update/?key={key}&value={text}
  • Read: https://textdb.online/{key}
  • Delete: https://api.textdb.online/update/?key={key}&value=

Key requirements:

  • Length: 6-60 characters
  • No slashes (/)
  • Recommend 20+ chars for security

Service Limitations

TextDB.online is a free public service with the following characteristics:

  • ✅ Free to use - No registration required
  • ✅ Unlimited reads - No limit on data retrieval
  • ⚠️ 500 writes/day/IP - Combined create/update/delete operations
  • ⚠️ Testing recommended - Not guaranteed for production use
  • ⚠️ 1-year retention - Data auto-deleted after 1 year of inactivity
  • ⚠️ No password protection - Use long keys (20+ chars) to avoid collisions

Important: This tool is designed for convenient text sharing between your own devices, not for storing critical or highly sensitive data. The encryption provides basic privacy protection but should not be relied upon for confidential information.

Private Deployment

For production use or higher reliability, you can deploy your own TextDB server:

  1. Get the offline version: TextDB.online offers a private deployment version
  2. Configure Beam to use your server:
    bm e -s https://your-domain.com
    
  3. Benefits of private deployment:
    • Higher stability and performance
    • No rate limits
    • Full data control
    • Better security

For custom API server implementations, ensure they follow the TextDB API format:

  • Write endpoint: {api_base}/update/?key={key}&value={text}
  • Read endpoint: {read_base}/{key}

Configuration

Config file location: ~/.config/beam/config.json

{
  "api_base": "https://api.textdb.online",
  "read_base": "https://textdb.online",
  "key": "your_personal_key",
  "password": "your_encryption_password"
}
  • api_base: API server URL for write operations (default: https://api.textdb.online)
  • read_base: Server URL for read operations (default: https://textdb.online)
  • key: Your personal key for TextDB API
  • password: Encryption password (default: 123456)

Using Private Deployment

If you deploy your own TextDB server, configure it with:

bm e -s https://your-domain.com

Or edit the config file directly to set api_base and read_base.

Security

All content is compressed (zlib) and encrypted (XOR + SHA256) before upload:

Your text → Compress → Encrypt → Base64 → Upload

The server only sees encrypted data like BM2:xxxxx..., unable to read your content.

Use --plain option to skip compression and encryption for non-sensitive content that needs to be viewed in a browser on mobile devices.

⚠️ This is lightweight encryption for convenience, not for highly sensitive data.

Requirements

  • Python 3.6+
  • pyperclip (optional, for clipboard support)

To install with clipboard support:

pip install 'beam-clipboard[clipboard]'

Contributing

Contributions are welcome! Feel free to:

  • 🐛 Report bugs
  • 💡 Suggest features
  • 🔧 Submit pull requests

License

MIT License

Author

vw2x


Star ⭐ this repo if you find it useful!

Metadata

Release files for beam-clipboard 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for beam-clipboard 0.2.1
File Size Uploaded Provenance
beam_clipboard-0.2.1.tar.gz 12.4 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for beam-clipboard 0.2.1
File Interpreter ABI Platform
beam_clipboard-0.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 21.1 kB

Release files / beam_clipboard-0.2.1.tar.gz

Download URL beam_clipboard-0.2.1.tar.gz
Size 12.4 kB
Tags Source
SHA-256 checksum
How to use checksums
f6b05f0863dda997864fc6ac9fdc91383f406d2b478924079c290523b1c7a20c
BLAKE2b-256 checksum
How to use checksums
6bf577cc2bc42a62b51a80b846e9ca73d780ae96f361411dab004195fdd467cb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.13

Release files / beam_clipboard-0.2.1-py3-none-any.whl

Download URL beam_clipboard-0.2.1-py3-none-any.whl
Size 8.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3f17b4ad24326b22c6163cf455a0e46be4fa470b1185a4d70b46760067d3ea1a
BLAKE2b-256 checksum
How to use checksums
7558b142d1a1a0c74b073aae2ffe5cdbe844d9f5d1dc35ffcd63d4ab72ae2731
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.13

Security for beam-clipboard 0.2.1

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.2.1 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page