A REPL shell that is resilient in the face of childish expectations
Project description
kidshell
A REPL shell that is resilient in the face of childish expectations.
🔒 Security First: kidshell implements comprehensive security measures to protect young users.
See SECURITY.md for details on our security features and vulnerability reporting.
Quick Start
# Run without installation (recommended)
uvx kidshell
Once launched, think "What would a child do?" and try:
- Colors:
blue,red,green(or any color name) - Emojis:
bread,cat,star(anything with an emoji) - Ranges:
0...100...1or0...10000...10...0.01 - Math:
1+1,pi,c,g,h,tau(constants and expressions) - Symbolic algebra:
x,x + 3,x = 2, thenx + 3again- Define multiple variables:
x + y - z
- Just press Enter - see what happens!
- Smash the keyboard - it handles gibberish gracefully
Installation Options
For Parents and IT Admin
# Fastest - no installation needed
uvx kidshell
# Traditional pip install
pip install kidshell
# Or any of these valid ways of installing kidshell as a reusable command
pipx install kidshell # global in PATH
uv tool install kidshell # global in PATH
# or into your preferred venv
python -m venv OR uv venv
source .venv/bin/activate
uv pip install kidshell # into an isolated venv
For Developers
See DEVELOPMENT.md for the complete development guide.
Quick start:
git clone https://github.com/anthonywu/kidshell.git
cd kidshell
just setup # Creates venv, installs deps
source .venv/bin/activate
just run # Run kidshell
Custom Data Configuration
kidshell supports custom input→output mappings stored in platform-specific directories:
# Edit custom data
kidshell config # Opens editor with example.json
kidshell config edit mydata.json # Create/edit specific file
kidshell config list # List all data files
kidshell config info # Show config locations
Data files are JSON with custom mappings:
{
"hello": "👋",
"world": "🌍",
"cat": "🐱",
"dog": "🐕"
}
Project Structure
kidshell/
├── src/kidshell/ # Source code
│ ├── cli/ # CLI and REPL
│ ├── core/ # Core services
│ └── frontends/ # UI frontends
├── tests/ # Test files
├── justfile # Development commands
└── pyproject.toml # Project configuration
Roadmap
- 👥 Multiple profiles for N users in your family/classroom
- 🖥 Run in browser or host at a web site
- 📥 Load user/family configs from public https URLs
- 📖 Dictionary database/API integration for spelling validation
- 💬 Translation lookups for multilingual households
- 🔊 Text-to-speech integration via localtalk
- ✨ Local/offline AI magic, if applicable and reasonably to introduce to children.
- 🏞 Local/offline image generation with content moderation
- 🧮 Expand usage of math libraries
- 🌐 More UI languages
Security
kidshell takes security seriously, especially given our young user base. We implement:
- Path traversal protection preventing unauthorized file system access
- Safe JSON processing without code execution risks
- Subprocess security with command validation and safe defaults
- Secure file operations confined to user-specific directories
For detailed security information, vulnerability reporting, and best practices, see SECURITY.md.
License
MIT
Contributing
Contributions welcome! Please:
- Review SECURITY.md for security guidelines
- See DEVELOPMENT.md for development setup and workflow
- Run
just checkbefore submitting PRs - Follow secure coding practices for any changes
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file kidshell-0.1.0a0.tar.gz.
File metadata
- Download URL: kidshell-0.1.0a0.tar.gz
- Upload date:
- Size: 40.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d9b6fc75d5f021c3819f99cb323268d41adbfbcc1f02363679c3334086270e71
|
|
| MD5 |
de67ed307903d5dfc17fc1346b72d3e3
|
|
| BLAKE2b-256 |
bb6fc1ec2c50b37867276b07512693ad13c52c834f220e0bb08ee00be5a5bb3f
|
File details
Details for the file kidshell-0.1.0a0-py3-none-any.whl.
File metadata
- Download URL: kidshell-0.1.0a0-py3-none-any.whl
- Upload date:
- Size: 52.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b9f902d9bd9a845d2cd937be003962962b8e2e43da15ba75d3001852b739eb9b
|
|
| MD5 |
9f1e5de16145e75ae2e722dc0119cfae
|
|
| BLAKE2b-256 |
f315beb0588c813d993144c4b7fbd3c07038caa54460735eb1eecbf212c624a4
|