Skip to main content

A REPL shell that is resilient in the face of childish expectations

Project description

kidshell

icon

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...1 or 0...10000...10...0.01
  • Math: 1+1, pi, c, g, h, tau (constants and expressions)
  • Symbolic algebra:
    • x, x + 3, x = 2, then x + 3 again
    • 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

  1. 👥 Multiple profiles for N users in your family/classroom
  2. 🖥 Run in browser or host at a web site
  3. 📥 Load user/family configs from public https URLs
  4. 📖 Dictionary database/API integration for spelling validation
  5. 💬 Translation lookups for multilingual households
  6. 🔊 Text-to-speech integration via localtalk
  7. ✨ Local/offline AI magic, if applicable and reasonably to introduce to children.
  8. 🏞 Local/offline image generation with content moderation
  9. 🧮 Expand usage of math libraries
  10. 🌐 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:

  1. Review SECURITY.md for security guidelines
  2. See DEVELOPMENT.md for development setup and workflow
  3. Run just check before submitting PRs
  4. Follow secure coding practices for any changes

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kidshell-0.1.0a0.tar.gz (40.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kidshell-0.1.0a0-py3-none-any.whl (52.6 kB view details)

Uploaded Python 3

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

Hashes for kidshell-0.1.0a0.tar.gz
Algorithm Hash digest
SHA256 d9b6fc75d5f021c3819f99cb323268d41adbfbcc1f02363679c3334086270e71
MD5 de67ed307903d5dfc17fc1346b72d3e3
BLAKE2b-256 bb6fc1ec2c50b37867276b07512693ad13c52c834f220e0bb08ee00be5a5bb3f

See more details on using hashes here.

File details

Details for the file kidshell-0.1.0a0-py3-none-any.whl.

File metadata

File hashes

Hashes for kidshell-0.1.0a0-py3-none-any.whl
Algorithm Hash digest
SHA256 b9f902d9bd9a845d2cd937be003962962b8e2e43da15ba75d3001852b739eb9b
MD5 9f1e5de16145e75ae2e722dc0119cfae
BLAKE2b-256 f315beb0588c813d993144c4b7fbd3c07038caa54460735eb1eecbf212c624a4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page