Intro
When the claws 🦞 are asleep the gloamies 🦉 come out to play !
Hi I'm Gloamy, I execute tasks on your behalf without deleting your stuff, leaking your private business, oh and I'm lightweight unlike that damn lobster (openclaw).
Overview

Gloamy is built around explicit subsystem contracts:
Providerfor model backendsChannelfor messaging platformsToolfor execution surfacesMemoryfor persistence and recallObserverfor observabilityRuntimeAdapterfor runtime isolationPeripheralfor boards and device integrations
The project goal is simple: Local first agents for real-world tasks
What Gloamy Does
Gloamy can:
- chat with you in your terminal
- stay running in the background to handle messages
- control apps on your pc with permissions
- let desktop and external API clients connect through the gateway
- use different AI models to answer questions
- run tools and scripts on your computer or online, safely
- remember things between sessions
- connect to devices and smart hardware
Out of the box, the runtime supports:
- local CLI usage
- channel-based operation through providers such as Telegram, Discord, Slack, Matrix, WhatsApp, iMessage, Email, IRC, Nostr, and others
- OpenAI-compatible and non-OpenAI model providers
- SQLite, Markdown, Lucid, PostgreSQL, and no-op memory modes
Project Shape
High-level repository map:
src/main.rs: CLI entrypoint and command routingsrc/lib.rs: shared exports and command enumssrc/agent/: orchestration loopsrc/config/: config schema, loading, merging, env overridessrc/providers/: model provider implementations and factory wiringsrc/channels/: channel integrationssrc/tools/: tool execution surfacesrc/memory/: memory backendssrc/security/: policy, pairing, secret handlingsrc/gateway/: HTTP and websocket gatewaysrc/runtime/: runtime adapterssrc/peripherals/: hardware integrationsdesktop/: Tauri + Vue desktop applicationdocs/: operator, reference, and contribution docs
Key Properties
- Trait-driven architecture
- Secure-by-default runtime behavior
- Small binary and low runtime overhead
- Explicit config and CLI contracts
- Swappable providers, channels, memory backends, and tools
- Deterministic, Rust-first deployment model
Optional Robot
The repository also includes crates/robot, a standalone robot-control crate for motion, sensing, speech, vision, simple robot expression, and safety-gated drive control.
Use it when you want to experiment with Raspberry Pi or robot hardware integrations without wiring those surfaces directly into the main runtime. It is a workspace member, but it is not auto-registered into gloamy's core tool factory.
Start here:
crates/robot/README.mdfor the crate surface and integration modelcrates/robot/robot.tomlfor the sample configurationcrates/robot/PI5_SETUP.mdfor Raspberry Pi 5 setup notes
Quick Start
Prerequisites
You need:
- a working Rust toolchain
- standard platform build tools
- an API key or local model endpoint, depending on your provider
On macOS:
On Debian or Ubuntu:
Install Rust:
|
Verify:
Install
Install from crates.io:
Then run full onboarding:
If you prefer to run from source, clone the repository and start onboarding:
The crates.io install is the recommended default for end users. The source path is better when you want to develop, patch, or test unreleased changes.
The full onboarding flow lets you:
- choose your provider and default model
- configure channels
- set memory behavior
- create workspace identity files
- avoid partial setup drift
After onboarding, start a direct CLI session:
If you want persistent channel operation after setup:
Bootstrap Script
If you prefer the bootstrap path:
Useful bootstrap variants:
Reference: docs/one-click-bootstrap.md
Non-Interactive Setup
If you already know exactly what you want, you can skip the full wizard:
This path is faster, but the interactive onboarding flow is the better default for first setup.
Migrating from OpenClaw
Gloamy can import memory from an existing OpenClaw workspace into your current Gloamy workspace.
Preview the migration first:
Run the import:
Use a custom OpenClaw workspace path if needed:
What the migration does:
- reads importable memory from
~/.openclaw/workspaceby default - imports entries from
memory/brain.db,MEMORY.md, andmemory/*.md - skips unchanged entries on re-run and renames conflicting keys deterministically
- creates a backup of the target Gloamy memory before writing
What it does not do:
- it does not migrate arbitrary workspace files
- it does not convert OpenClaw config into Gloamy
config.toml
If you want a safe preview of the candidate entries without writing data, use --dry-run.
Desktop App
This repository also includes a desktop application in desktop/, built with Tauri (Rust backend) and Vue 3 (frontend).
Use the desktop app for the primary UI, and use the gateway for webhook/API access.
If you want to run the desktop UI locally:
For desktop-specific setup, development, and packaging details, see desktop/README.md.
Running Modes
Interactive CLI
Start a direct chat session:
Run a one-shot prompt:
Override provider and model for one run:
Daemon
Run the long-lived runtime:
The daemon starts:
- configured channels
- gateway server
- heartbeat
- scheduler
Use this mode when you want Telegram or other channels to stay online.
Gateway
Run only the local gateway:
The gateway exposes HTTP, webhook, and websocket endpoints for external integrations. It no longer serves a browser dashboard.
Channels Only
Run the configured channels without the full daemon stack:
First-Time Configuration
The primary setup command is:
Common variants:
If you already have a config and only want to wire channels, use:
Channels
Gloamy supports multiple inbound and outbound channels. Channel setup is stored in config, and the daemon uses that config at runtime.
Typical flow:
- Run
gloamy onboard --channels-only - Configure Telegram, Discord, Slack, WhatsApp, or another channel
- Start
gloamy daemon - Verify with
gloamy statusandgloamy channel doctor
Important operational note:
gloamy agentis for direct CLI usegloamy daemonis what you run for persistent channel operation
Canonical reference: docs/channels-reference.md
Configuration
Default config location:
~/.gloamy/config.toml
Default workspace:
~/.gloamy/workspace
Minimal example:
= "sk-..."
= "openai"
= "gpt-5-mini"
= 0.7
[]
= "sqlite"
= true
= "none"
= 0.7
= 0.3
Notes:
default_providercontrols the main runtime providerdefault_modelcontrols the default model for CLI, channel, and daemon flowsdefault_temperaturemay be ignored by some providers or models- several settings can also be overridden by environment variables
Canonical reference: docs/config-reference.md
Provider Model
Gloamy supports:
- direct providers such as OpenAI, Anthropic, Gemini, Groq, Mistral, DeepSeek, Venice, GLM, Qwen, and others
- OpenAI-compatible custom endpoints
- provider aliases and routed model configuration
- subscription-native auth flows for supported providers
Examples:
References:
Security Model
Gloamy is designed to fail closed where practical.
Important defaults:
- localhost-first binding
- explicit pairing for gateway auth flows
- workspace-scoped file access
- deny-by-default channel allowlists
- encrypted secret support
- explicit security policy for tool and command execution
Operational guidance:
- do not expose the gateway directly without understanding the bind and tunnel settings
- use allowlists for channels instead of wide-open routing
- keep secrets in config or environment variables, not in workspace files
- review tool and command permissions before enabling broad autonomy
References:
Memory
Supported memory backends include:
- SQLite
- Markdown
- Lucid
- PostgreSQL
none
SQLite is the usual default because it gives:
- local persistence
- keyword and vector search support
- practical low-friction setup
Reference: docs/config-reference.md
Commands You Will Actually Use
Canonical command reference: docs/commands-reference.md
Development
Recommended local validation:
Preferred full local validation path when available:
Useful development commands:
If you are working on docs, start here:
Documentation Map
Start from the docs hub:
- Docs hub:
docs/README.md - Unified TOC:
docs/SUMMARY.md - Getting started:
docs/getting-started/README.md - Reference:
docs/reference/README.md - Operations:
docs/operations/README.md - Security:
docs/security/README.md - Hardware:
docs/hardware/README.md - Contributing workflow:
docs/pr-workflow.md
High-signal runtime references:
docs/commands-reference.mddocs/providers-reference.mddocs/channels-reference.mddocs/config-reference.mddocs/operations-runbook.mddocs/troubleshooting.md
Official Repository
Official source of truth:
If you encounter impersonation or a misleading fork, open an issue in the official repository.
Contributing
If you want to contribute:
- review
AGENTS.mdfor repository engineering expectations - read
docs/pr-workflow.md - use
docs/reviewer-playbook.mdfor review standards
Good entry points:
- new provider in
src/providers/ - new channel in
src/channels/ - new tool in
src/tools/ - new memory backend in
src/memory/ - new observer in
src/observability/
License
Gloamy is licensed under MIT.
Contact
reach me @ issakaibrahimrayamah@gmail.com