Developer Guide

SSH access, customization, and hacking your Rawk.


Philosophy

Rawk is yours to wreck. We encourage experimentation, customization, and pushing boundaries. If you brick it, that's part of the experience — reflash and start over.

This guide is for developers who want to:

  • SSH into Rawk and poke around

  • Write custom skills and extensions

  • Integrate external services

  • Use Rawk as a development platform


SSH Access

Default Credentials

  • Username: rawk

  • Password: rawk

  • Hostname: rawk.local

First Login

On first login, change the default password:

For passwordless login:

Disable Password Authentication (Optional)

For extra security:


File System Layout

Key Directories


OpenClaw Configuration

Main Config File

Location: ~/.openclaw/openclaw.json

Structure:

Editing Config

After editing, restart the gateway:

Environment Variables

Store API keys in the env section (recommended) or export them in ~/.bashrc:


Gateway Management

Status & Control

Systemd Service

The gateway runs as a user systemd service:


Developing Skills

Skills are TypeScript/JavaScript modules that extend OpenClaw's capabilities.

Skill Structure

Example: Hello World Skill

SKILL.md:

index.ts:

SKILL.md is what the agent reads to understand how to use your skill. The agent has access to:

  • exec tool — run shell commands

  • read / write — file operations

  • Any custom functions you export

Installing Skills

From ClawdHub:

From local directory:

Publishing Skills

See ClawdHub docsarrow-up-right for publishing guidelines.


Writing Extensions

Extensions are more powerful than skills — they hook into OpenClaw's internal systems (RPC methods, event handlers, etc.).

Extension Structure

openclaw.plugin.json:

index.ts:

Installing Extensions


Customizing the Agent

Personality & Behavior

Edit workspace files to shape your agent's personality:

~/.openclaw/workspace/SOUL.md — Who your agent is ~/.openclaw/workspace/AGENTS.md — Behavior guidelines ~/.openclaw/workspace/USER.md — Info about you

Example (SOUL.md):

Restart the gateway to apply changes.

Memory System

Daily logs: ~/.openclaw/workspace/memory/YYYY-MM-DD.md

The agent writes here automatically. You can also add your own notes:

The agent will see this next time it reads the memory.


Networking & Services

Opening Ports

By default, Rawk only exposes:

  • Port 80 (nginx)

  • Port 18789 (OpenClaw gateway)

To run additional services:

Reverse Proxy (Nginx)

Add custom sites:

Enable:

Port Forwarding (Advanced)

To access Rawk from outside your home network:

  1. Set up port forwarding on your router (e.g., forward port 8080 → rawk.local:18789)

  2. Use a secure token (edit ~/.openclaw/openclaw.json)

  3. Consider HTTPS (use Let's Encrypt + nginx)

Warning: Exposing Rawk to the internet is risky. Use a strong token and monitor logs.


Docker Containers

Rawk has Docker pre-installed. Use it for isolated services.

Running Containers

Persistent Data

Use volumes or bind mounts:

Sandbox Mode

If you enabled Sandbox Mode during setup, OpenClaw runs the assistant in a Docker container with limited access to the host system.

Check if sandbox is active:


System Administration

Updating OpenClaw

Updating System Packages

Disk Usage

If space is low:

Monitoring

CPU/RAM usage:

Network activity:

Gateway metrics:


Backup & Recovery

Backup Configuration

Factory Reset

Reset Rawk to factory state (keeps OS, resets OpenClaw):

This will:

  • Remove setup completion flag

  • Back up existing config to ~/.openclaw/openclaw.json.backup

  • Re-enable WiFi AP mode

Full System Backup (SD Image)

Requires: SD card reader and another Linux machine

  1. Power off Rawk

  2. Remove SD card from Rawk

  3. Insert into your computer and clone:

    Replace /dev/sdX with your SD card device (check with lsblk).

  4. Store the image safely (it's ~32GB)

Restore from Backup


Advanced Hacks

Changing Hostname

Access at http://my-rawk.local.

Custom Boot Services

Create a systemd service:

Enable:

USB Peripherals (If Available)

Current hardware: No USB ports Workaround: Use GPIO pins for serial/I2C devices (advanced)

Future hardware may include USB-C data port.

Home Assistant Integration

Install the skill:

Configure with your Home Assistant URL and token. Then control lights, sensors, etc.:

"Turn off the living room lights"

Voice Input (Experimental)

Rawk has no built-in microphone, but you can integrate external voice input:

  1. Use WhatsApp voice messages (transcribed by OpenClaw)

  2. Connect a USB mic (if future hardware supports it)

  3. Use a separate device (e.g., ESP32 with mic → MQTT → OpenClaw)


Troubleshooting

Common Issues

Gateway won't start:

Out of memory:

Disk full:

Can't SSH in:

  • Check if SSH is running: sudo systemctl status ssh (requires console access)

  • Reset via SD card (mount on another computer, edit /etc/ssh/sshd_config)

Emergency Recovery

If Rawk is completely bricked:

  1. Remove SD card

  2. Reflash with factory image (download from rawk.sharrow-up-right)


Community & Resources

Get Help

Share Your Hacks

  • Post in Discord #rawk-hacks channel

  • Submit pull requests to the docs

  • Publish skills on ClawdHub

Contributing

Rawk is open source (MIT). Contributions welcome:

  • Improve documentation

  • Build new skills

  • Report bugs

  • Share creative use cases


🪨 Happy hacking. Break things. Learn. Rebuild.

Last updated