Skill: dannyshmueli/jits-builder (version 1.0.0)

# JITS Builder - Just-In-Time Software 🚀 Build instant mini-apps from voice or text descriptions. Describe what you need, get a working tool deployed in seconds. ## What is JITS? **Just-In-Time Software** - the idea that you don't need to find or install tools. You describe what you need and it gets built on the spot. > "I need a timer that plays a sound after 25 minutes" > "Make me a tool to split a bill between friends" > "Create a page where I can paste JSON and see it formatted" ## Requirements - Cloudflared binary (auto-downloads to `/tmp/cloudflared` if missing) - Node.js (for serving the app) ## How It Works 1. **Describe** - Voice or text, explain what you want 2. **Generate** - Agent builds a single-file HTML/JS/CSS app 3. **Deploy** - Cloudflare tunnel makes it instantly accessible 4. **Use** - Get a URL, use your tool, share it ## Usage Just ask naturally: ``` "Build me a pomodoro timer" "I need a quick tool to convert CSV to JSON" "Make a tip calculator" "Create a color palette generator" ``` The agent will: 1. Generate the HTML/JS code 2. Save to `/data/clawd/jits-apps/<name>.html` 3. Serve on a local port 4. Create Cloudflare tunnel 5. Return the public URL ## Managing JITS Apps ```bash # List running apps /data/clawd/skills/jits-builder/jits.sh list # Stop an app /data/clawd/skills/jits-builder/jits.sh stop <name> ``` ## App Guidelines When building JITS apps: 1. **Single file** - All HTML, CSS, JS in one file 2. **No dependencies** - Use vanilla JS, no external libraries 3. **Mobile-friendly** - Responsive design 4. **Dark theme** - Looks good, easy on eyes 5. **Self-contained** - No backend/API calls needed 6. **Branded** - Include "Built with JITS" badge ## Template Structure ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>🚀 JITS - [App Name]</title> <style> /* Dark theme, centered layout */ body { font-family: -apple-system, sans-serif; background: linear-gradient(135deg, #1a1a2e, #16213e); min-height: 100vh; display: flex; align-items: center; justify-content: center; color: white; } /* ... app styles ... */ </style> </head> <body> <div class="container"> <h1>[App Title]</h1> <div class="badge">Built with JITS</div> <!-- App content --> </div> <script> // App logic </script> </body> </html> ``` ## Example Apps | App | Description | |-----|-------------| | Pomodoro Timer | 25/5 min work/break cycles with sound | | Tip Calculator | Split bills with custom tip % | | JSON Formatter | Paste JSON, see it pretty-printed | | Color Picker | Generate and copy color palettes | | Countdown | Timer to a specific date/event | | QR Generator | Text to QR code | | Unit Converter | Length, weight, temperature | | Decision Maker | Random picker for choices | ## Limitations - **Single-page only** - No multi-page apps - **No backend** - Client-side only, no databases - **Temporary URLs** - Tunnels expire when stopped - **No persistence** - Data doesn't survive refresh (use localStorage if needed) ## Directory Structure ``` /data/clawd/jits-apps/ ├── pomodoro.html # App HTML ├── pomodoro.pid # Server process ID ├── pomodoro.port # Port number ├── pomodoro.url # Tunnel URL └── pomodoro.tunnel.pid # Tunnel process ID ``` --- *"The best tool is the one you build exactly when you need it."* 🐱🦞

path: README.md
content: # 🚀 JITS Builder - Just-In-Time Software

Build instant mini-apps from voice or text descriptions. Describe what you need, get a working tool deployed in seconds via Cloudflare tunnel.

## What is JITS?

**Just-In-Time Software** - you don't search for tools or install apps. You describe what you need and it gets built on the spot.

```
"Build me a pomodoro timer"
→ 30 seconds later: https://your-app.trycloudflare.com
```

## Features

- 🎤 **Voice or text** - Describe what you want naturally
- ⚡ **Instant deploy** - Live URL in seconds
- 🌐 **Cloudflare tunnel** - Shareable public URLs
- 📱 **Mobile-ready** - Responsive by default
- 🎨 **Beautiful** - Dark theme, polished UI

## How It Works

1. You describe the tool you need
2. Your Moltbot agent generates the code
3. Serves it locally + creates Cloudflare tunnel
4. You get a public URL instantly

## Example Apps Built

- ⏱️ Pomodoro Timer
- 💰 Tip Calculator
- 🎨 Color Palette Generator
- 📊 JSON Formatter
- 🔢 Unit Converter
- ✂️ Text Diff Tool
- 🎲 Random Decision Maker
- ⏳ Event Countdown

## Installation

### For Moltbot users:

```bash
moltbot skill install jits-builder
```

### Manual:

```bash
mkdir -p ~/.moltbot/skills/jits-builder
cd ~/.moltbot/skills/jits-builder
curl -O https://raw.githubusercontent.com/Cluka-399/jits-builder/main/SKILL.md
curl -O https://raw.githubusercontent.com/Cluka-399/jits-builder/main/jits.sh
chmod +x jits.sh
```

## Usage

Just ask your agent:

```
"Build me a timer that counts down from 5 minutes"
"I need a tool to calculate tips and split bills"
"Make a page where I can paste JSON and format it"
"Create a random color palette generator"
```

## Requirements

- Node.js
- Cloudflared (auto-downloads if missing)

## License

MIT

---

Built with 🐱🦞 by [Cluka](https://github.com/Cluka-399)


path: jits.sh
content: #!/bin/bash
# JITS Builder - Just-In-Time Software
# Usage: jits.sh <command> [args]

JITS_DIR="/data/clawd/jits-apps"
mkdir -p "$JITS_DIR"

case "$1" in
  list)
    echo "🚀 Running JITS Apps:"
    for f in "$JITS_DIR"/*.pid 2>/dev/null; do
      if [ -f "$f" ]; then
        name=$(basename "$f" .pid)
        pid=$(cat "$f")
        port=$(cat "$JITS_DIR/$name.port" 2>/dev/null || echo "?")
        url=$(cat "$JITS_DIR/$name.url" 2>/dev/null || echo "no tunnel")
        if kill -0 "$pid" 2>/dev/null; then
          echo "  ✅ $name (port $port) - $url"
        else
          echo "  ❌ $name (stopped)"
          rm -f "$f" "$JITS_DIR/$name.port" "$JITS_DIR/$name.url"
        fi
      fi
    done
    ;;
    
  stop)
    name="$2"
    if [ -f "$JITS_DIR/$name.pid" ]; then
      pid=$(cat "$JITS_DIR/$name.pid")
      kill "$pid" 2>/dev/null
      # Also kill tunnel if exists
      tunnel_pid=$(cat "$JITS_DIR/$name.tunnel.pid" 2>/dev/null)
      [ -n "$tunnel_pid" ] && kill "$tunnel_pid" 2>/dev/null
      rm -f "$JITS_DIR/$name".*
      echo "🛑 Stopped $name"
    else
      echo "❌ App '$name' not found"
    fi
    ;;
    
  serve)
    # Internal: serve an HTML file
    name="$2"
    port="$3"
    html_file="$JITS_DIR/$name.html"
    
    if [ ! -f "$html_file" ]; then
      echo "❌ HTML file not found: $html_file"
      exit 1
    fi
    
    # Simple Node.js server
    node -e "
      const http = require('http');
      const fs = require('fs');
      const html = fs.readFileSync('$html_file', 'utf-8');
      http.createServer((req, res) => {
        res.writeHead(200, {'Content-Type': 'text/html'});
        res.end(html);
      }).listen($port, () => console.log('JITS server on port $port'));
    " &
    
    echo $! > "$JITS_DIR/$name.pid"
    echo "$port" > "$JITS_DIR/$name.port"
    echo "✅ Serving $name on port $port"
    ;;
    
  tunnel)
    # Internal: create tunnel for an app
    name="$2"
    port="$3"
    
    /tmp/cloudflared tunnel --url "http://localhost:$port" 2>&1 | while read line; do
      if echo "$line" | grep -q "trycloudflare.com"; then
        url=$(echo "$line" | grep -oE 'https://[a-z0-9-]+\.trycloudflare\.com')
        if [ -n "$url" ]; then
          echo "$url" > "$JITS_DIR/$name.url"
          echo "🌐 Tunnel: $url"
        fi
      fi
    done &
    
    echo $! > "$JITS_DIR/$name.tunnel.pid"
    ;;
    
  *)
    echo "JITS Builder - Just-In-Time Software"
    echo ""
    echo "Usage:"
    echo "  jits.sh list          - List running apps"
    echo "  jits.sh stop <name>   - Stop an app"
    echo ""
    echo "To build a new app, describe what you want to Claude!"
    ;;
esac


path: package.json
content: {
  "name": "jits-builder",
  "version": "1.0.0",
  "description": "Just-In-Time Software - Build instant mini-apps from voice or text descriptions. Describe what you need, get a working tool deployed in seconds via Cloudflare tunnel.",
  "keywords": ["jits", "vibe-coding", "instant-apps", "cloudflare", "tunnel", "builder"],
  "author": "Cluka <[REDACTED_SECRET]>",
  "license": "MIT",
  "repository": {
    "type": "git",
    "url": "https://github.com/Cluka-399/jits-builder"
  },
  "moltbot": {
    "emoji": "🚀",
    "category": "development"
  }
}


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: suspicious | SkillSpector: suspicious (CRITICAL)