intranetLightweight local HTTP file server with plugin support. Serves static files from a webroot, mounts plugin directories at URL prefixes via config, and runs in...
Install via ClawdBot CLI:
clawdbot install odrobnik/intranetLightweight local HTTP file server β no Apache/nginx needed, no root required. Serves static files, mounts plugin directories, and runs index.py entry points as CGI.
Entry point: {baseDir}/scripts/intranet.py
See SETUP.md for prerequisites and setup instructions.
python3 {baseDir}/scripts/intranet.py start # Start on default port 8080
python3 {baseDir}/scripts/intranet.py start --port 9000 # Custom port
python3 {baseDir}/scripts/intranet.py start --host 0.0.0.0 # LAN access (requires token + allowed_hosts)
python3 {baseDir}/scripts/intranet.py start --token SECRET # Enable bearer token auth
python3 {baseDir}/scripts/intranet.py status # Check if running
python3 {baseDir}/scripts/intranet.py stop # Stop server
{workspace}/intranet/
βββ config.json # Server config (NOT served)
βββ www/ # Webroot (served files go here)
βββ index.html
βββ ...
Config lives in {workspace}/intranet/config.json, webroot is {workspace}/intranet/www/. The config file is never exposed to HTTP.
Plugins mount external directories at URL prefixes. Configure in config.json:
{
"plugins": {
"banker": "/path/to/banker",
"deliveries": "/path/to/deliveries"
}
}
Plugin config supports simple (static only) or extended (with CGI hash) format:
{
"plugins": {
"static-only": "/path/to/dir",
"with-cgi": {
"dir": "/path/to/dir",
"hash": "sha256:abc123..."
}
}
}
hash, index.py at the plugin root handles all sub-paths β but only if its SHA-256 matcheshash are static-only (CGI blocked even when globally enabled)shasum -a 256 /path/to/index.pyOff by default. Enable in config.json:
{
"cgi": true
}
When enabled, only files named index.py can execute as CGI:
index.py in any subdirectory handles that directory's requestsindex.py at the plugin root handles all plugin sub-paths.py files β 403 Forbidden (never served, never executed)chmod +x)www/), never served"cgi": true in config.jsonconfig.json are served; must be inside workspaceindex.py β no arbitrary script execution; plugin CGI requires SHA-256 hash in config.json.py files blocked except index.py entry points (not served as text, not executed)allowed_hosts restricts which Host headers are accepted--token flag or config.json. Browser clients visit ?token=SECRET once β session cookie set β all subsequent navigation works. API clients use Authorization: Bearer header.127.0.0.1 (loopback only). LAN access via --host 0.0.0.0 requires both token auth and allowed_hosts in config.json.{workspace}/intranet/config.json{workspace}/intranet/.pid{workspace}/intranet/.conf{workspace}/intranet/www/AI Usage Analysis
Analysis is being generated⦠refresh in a few seconds.
Advanced filesystem operations - listing, searching, batch processing, and directory analysis for Clawdbot
Perform advanced filesystem tasks including listing, recursive searching by name or content, batch copying/moving/deleting files, and analyzing directory siz...
Essential SSH commands for secure remote access, key management, tunneling, and file transfers.
Extract text from PDF files for LLM processing
The directory for AI agent services. Discover tools, platforms, and infrastructure built for agents.
Advanced filesystem operations - listing, searching, batch processing, and directory analysis for Clawdbot