emoji_transcoder 0.0.2
SDKdartflutter
Platformandroidioswindowslinuxmacosweb
Encode messages into emojis and decode them using Unicode variation selectors. Hide text within any Unicode character invisibly.
Emoji CLI - Clipboard Transcoder
A command-line application that demonstrates clipboard functionality with the emoji_transcoder package. Hide messages in clipboard text using Unicode variation selectors.
Features
- Command-line interface with comprehensive argument parsing.
- Interactive mode when no arguments are provided.
- Multiple encoding methods including safe ZWJ encoding.
- Batch operations for encoding multiple messages.
- Statistics and analysis of clipboard content.
- Cross-platform clipboard support via daniboard.
Installation
- Navigate to the CLI directory:
cd example/emoji_cli
- Install dependencies:
dart pub get
- Run the application:
dart run bin/main.dart
Or install globally:
dart pub global activate --source path .
emoji_cli --help
Usage
Command Line Mode
# Encode a message into an emoji.
emoji_cli --encode "😊:Hello World"
# Decode first message from clipboard.
emoji_cli --decode
# Decode all messages from clipboard.
emoji_cli --decode-all
# Check if clipboard contains hidden data.
emoji_cli --check
# Show clipboard statistics.
emoji_cli --stats
# Show raw clipboard content.
emoji_cli --raw
# Show only visible characters.
emoji_cli --visible
# Set clipboard to plain text.
emoji_cli --set "Plain text message"
# Encode multiple messages.
emoji_cli --encode-multiple "😊:hello,🌟:world,🔐:secret"
Interactive Mode
Run without arguments to enter interactive mode:
emoji_cli
Available interactive commands:
encode <base> <message>- Encode message into base character.decode- Decode first message from clipboard.decode-all- Decode all messages from clipboard.check- Check if clipboard has hidden data.stats- Show clipboard statistics.raw- Show raw clipboard content.visible- Show only visible characters.set <text>- Set clipboard to plain text.clear- Clear clipboard.help- Show help.quit- Exit.
Examples
Basic Encoding/Decoding
# Encode a secret message
$ emoji_cli --encode "😊:This is a secret message"
✓ Encoded "This is a secret message" into 😊 and copied to clipboard
# Check what's in clipboard (looks normal)
$ emoji_cli --raw
Raw clipboard content:
"😊"
# But it contains hidden data
$ emoji_cli --check
✓ Clipboard contains hidden data
# Decode the hidden message
$ emoji_cli --decode
Decoded message: This is a secret message
Multiple Messages
# Encode multiple messages
$ emoji_cli --encode-multiple "😊:hello,🌟:world,🔐:secret"
✓ Encoded 3 messages and copied to clipboard
😊: "hello"
🌟: "world"
🔐: "secret"
# Decode all messages
$ emoji_cli --decode-all
Found 3 hidden message(s):
1. 😊: "hello"
2. 🌟: "world"
3. 🔐: "secret"
Statistics
$ emoji_cli --stats
Clipboard Statistics:
Total length: 27 characters
Visible length: 3 characters
Hidden bytes: 24
Message count: 3
Interactive Session
$ emoji_cli
🔤 Emoji Transcoder CLI - Interactive Mode
Hide messages in clipboard text using emoji steganography
Type "help" for commands or "quit" to exit.
emoji_cli> encode 🎉 Happy New Year!
✓ Encoded "Happy New Year!" into 🎉
emoji_cli> stats
Stats: 1 visible, 15 hidden, 1 messages
emoji_cli> decode
Decoded: "Happy New Year!"
emoji_cli> quit
Goodbye! 👋
API Reference
The CLI uses the ClipboardTranscoder class which provides:
Encoding Methods
encodeAndWriteToClipboard(baseChar, message)- Basic encoding.encodeMultipleAndWriteToClipboard(messages)- Multiple messages.
Decoding Methods
readAndDecodeFromClipboard()- Decode first message.readAndDecodeAllFromClipboard()- Decode all messages.
Utility Methods
clipboardHasHiddenData()- Check for hidden data.getClipboardStats()- Get statistics.getRawClipboardText()- Get raw content.setRawClipboardText(text)- Set raw content.getVisibleText(text)- Extract visible characters.
Dependencies
emoji_transcoder- Core encoding/decoding functionality.daniboard- Cross-platform clipboard access.args- Command-line argument parsing.
License
This project is licensed under the MIT License - see the LICENSE file for details.