⚡ Nostress
A modern, secure, and lightning-fast CLI for Nostr protocol interactions
Nostress empowers developers and Nostr enthusiasts with a powerful command-line interface for seamless key management, event creation, and relay interactions. Built with security-first principles and modern Python practices, it's the tool you've been waiting for to dive deeper into the decentralized web.
✨ Why Nostress?
🔐 Security First: Cryptographically secure key generation using industry-standard secp256k1 elliptic curve cryptography
⚡ Lightning Fast: Built with modern Python and optimized for performance with rich terminal interfaces
🛠️ Developer Friendly: Intuitive CLI with comprehensive help, JSON output, and scripting support
🔄 Format Flexible: Seamless conversion between hex and bech32 formats (nsec/npub)
🎨 Beautiful Output: Rich terminal formatting with tables, colors, and verbose modes
🚀 Quick Start
Installation
# Install via pip
pip install nostress
# Or using uv (recommended for development)
uv pip install nostress
# Verify installation
nostress --help
Your First Keypair
# Generate a new keypair (hex format)
nostress keys generate
# Generate in bech32 format with verbose output
nostress keys generate --format bech32 --verbose
# Generate both formats and save to file
nostress keys generate --format both --output my-keypair.txt
# JSON output for scripting
nostress keys generate --json
🔑 Core Features
Key Management Made Simple
Generate Secure Keypairs
# Basic generation
nostress keys generate
# Multiple formats
nostress keys generate --format both --verbose
# Encrypted storage
nostress keys generate --encrypt --output secure-key.txt
Validate Any Key
# Validate hex keys
nostress keys validate abc123...def
# Validate bech32 keys with type checking
nostress keys validate nsec1... --type nsec
nostress keys validate npub1... --type npub
Format Conversion
# Convert between hex and bech32 formats
nostress keys convert nsec1... --to hex
nostress keys convert abc123... --to bech32 --type private
Advanced Features
- 🔒 Encryption Support: Password-protected key storage
- 📊 Rich Output: Beautiful tables and formatted displays
- 🤖 JSON Mode: Perfect for automation and scripting
- 🔍 Verbose Logging: Detailed operation insights
- 📁 File Operations: Save and load keys securely
🏗️ Architecture & Design
Nostress is built with a clean, modular architecture:
- CLI Layer: Intuitive command interface with Typer
- Core Logic: Cryptographic operations with the
cryptographylibrary - Utilities: Validation, formatting, and configuration management
- Rich Integration: Beautiful terminal output with colors and tables
Tech Stack
- Python 3.12+: Modern Python with type hints
- Typer: Powerful CLI framework with auto-completion
- Rich: Beautiful terminal formatting
- Cryptography: Industry-standard cryptographic operations
- Pydantic: Data validation and models
📖 Documentation
📚 For comprehensive documentation, tutorials, and API reference, visit our ReadTheDocs site
Quick Command Reference
# Main help
nostress --help
# Key management commands
nostress keys --help
# Specific command help
nostress keys generate --help
nostress keys validate --help
Configuration
Nostress follows XDG Base Directory standards for configuration:
- Config:
~/.config/nostress/ - Data:
~/.local/share/nostress/ - Cache:
~/.cache/nostress/
🛣️ Roadmap
Current Features (v0.1.x)
- ✅ Secure key generation (hex/bech32)
- ✅ Key validation and verification
- ✅ Format conversion between hex/bech32
- ✅ Rich terminal output and JSON support
- ✅ Encrypted key storage
Coming Soon (v0.2.x)
- 📝 Event creation and signing
- 🔗 Relay connection management
- 🏪 Event publishing and querying
Future Plans (v1.0+)
- 📊 Advanced event filtering and search
- 🔐 Multi-signature support
- ⚡ Lightning integration
- 🕸️ Web interface companion
💖 Support the Project
Love Nostress? Support its development by sending some sats or connecting on Nostr!
⚡ Lightning Payments
Lightning Address: hberaud@nostrcheck.me
Scan to send lightning payments
Your support helps maintain and improve Nostress, ensuring it remains free and open-source for the entire Nostr community.
🫂 Follow on Nostr
Nostr Public Key: npub1azaaxhlx3v8lex2gnyxzq8ws9nxsh8ga30d64jeaqxw4e75vxufqm434ty
Scan to follow me on Nostr
Other Ways to Contribute
- 🌟 Star the repository to show your support
- 🐛 Report bugs and suggest features
- 💻 Contribute code via pull requests
- 📖 Improve documentation and examples
- 🗣️ Spread the word in the Nostr community
📄 License
Nostress is open-source software. Check the LICENSE file for details.
🤝 Contributing
We welcome contributions from the community! Whether it's:
- Bug fixes and improvements
- New features and commands
- Documentation updates
- Test coverage improvements
Please see our contribution guidelines and feel free to open issues and pull requests.
🔗 Connect
- Documentation: nostress.readthedocs.io
- GitHub: github.com/4383/nostress
- PyPI: pypi.org/project/nostress
- Lightning:
hberaud@nostrcheck.me - Nostr:
npub1azaaxhlx3v8lex2gnyxzq8ws9nxsh8ga30d64jeaqxw4e75vxufqm434ty
Built with ❤️ for the Nostr community
Nostress - Where cryptographic security meets developer experience
Metadata
Release files for nostress 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 | Provenance | Actions |
|---|---|---|---|---|
| nostress-0.2.0.tar.gz | 707.3 kB | With provenance | Details for nostress-0.2.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| nostress-0.2.0-py3-none-any.whl | Python 3 | none | any | Details for nostress-0.2.0-py3-none-any.whl |
Total release size: 735.5 kB
Release files / nostress-0.2.0.tar.gz
| Download URL | nostress-0.2.0.tar.gz |
|---|---|
| Size | 707.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2e8c302a73c19704e0a6d96de15cadc2b66a19b83ea2ca1bae0b251b9dd8d4e1
|
|
BLAKE2b-256 checksum How to use checksums |
6fa29f4ddd4e5327911cfdbb12715e129f1fff683bcab6c1f2e7cbb850abaa5d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Jan 27, 2026.
Transparency logRelease files / nostress-0.2.0-py3-none-any.whl
| Download URL | nostress-0.2.0-py3-none-any.whl |
|---|---|
| Size | 28.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4d89ea85eed980a2b82f81bc607114d88ced1489756bceadf4c07336862362e4
|
|
BLAKE2b-256 checksum How to use checksums |
28ead3b13a03f5527ee4d214348449ab3b79a1b06e65effbb7f3b52d2de49e72
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Jan 27, 2026.
Transparency logSecurity for nostress 0.2.0
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.
Full provenance
Both files in this release have been uploaded with provenance metadata.
Attestation for nostress-0.2.0.tar.gz
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 Jan 27, 2026.
Transparency logA 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.