GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - developerfred/ElixirClaw

BranchesTags
Open more actions menu

Latest commit

 

History

17 Commits
17 Commits

Folders and files

NameName
Last commit message
Last commit date
.github/workflows
.github/workflows
 
 
config
config
 
 
lib
lib
 
 
test
test
 
 
.dockerignore
.dockerignore
 
 
.env.example
.env.example
 
 
.formatter.exs
.formatter.exs
 
 
.gitignore
.gitignore
 
 
CHANGELOG.md
CHANGELOG.md
 
 
CODE_OF_CONDUCT.md
CODE_OF_CONDUCT.md
 
 
COMPARISON.md
COMPARISON.md
 
 
CONTRIBUTING.md
CONTRIBUTING.md
 
 
Dockerfile
Dockerfile
 
 
MELHORAR.md
MELHORAR.md
 
 
README.md
README.md
 
 
SECURITY.md
SECURITY.md
 
 
VIRAL_STRATEGY.md
VIRAL_STRATEGY.md
 
 
demo.asciinema
demo.asciinema
 
 
docker-compose.yml
docker-compose.yml
 
 
elixir_claw
elixir_claw
 
 
llm.txt
llm.txt
 
 
mix.exs
mix.exs
 
 
mix.lock
mix.lock
 
 
stress_test.sh
stress_test.sh
 
 

Repository files navigation

ElixirClaw 🦞⚡

stars license elixir

High-performance OpenClaw Node implemented in pure Elixir. Connect your device to OpenClaw Gateway and expose AI capabilities.

Built on the BEAM - the same technology that powers WhatsApp, Ericsson, and Nintendo Online

Why ElixirClaw?

Feature Benefit
OTP Reliability 99.9999999% uptime - it just runs forever
Hot Reload Update your AI node without restarting
Built-in Telemetry See your agent thinking in real-time
Security First Input sanitization, TLS, command allowlisting
BEAM Distribution Scale to 1000 nodes with built-in clustering

Quick Start

# Clone and build
git clone https://github.com/developerfred/ElixirClaw.git
cd elixir-claw
mix deps.get
mix escript.build

# Register your node
./elixir_claw node-register --display-name "My Elixir Node"

# Start as node
./elixir_claw node-start

Watch the Demo

asciicast

Or run locally:

# Record your own demo
asciinema rec demo.cast
# Play it back
asciinema play demo.cast

With Docker

docker-compose up -d

Features

  • WebSocket client with TLS support
  • Camera capture (macOS, Linux)
  • Screen capture & recording
  • System notifications
  • Location services
  • Command execution with allowlist
  • Device identity & authentication

Commands

./elixir_claw status              # Show node status
./elixir_claw node-register       # Register with gateway
./elixir_claw node-start         # Start node mode
./elixir_claw node-stop          # Stop node
./elixir_claw approvals          # List pending approvals
./elixir_claw -i                # Interactive mode

Configuration

{
  "gateway_host": "127.0.0.1",
  "gateway_port": 18789,
  "display_name": "My Node",
  "caps": ["camera.snap", "screen.snap", "system.notify"]
}

Environment variables:

  • ELIXIR_CLAW_HOST - Gateway host
  • ELIXIR_CLAW_PORT - Gateway port
  • ELIXIR_CLAW_NODE_ID - Node ID
  • ELIXIR_CLAW_TOKEN - Auth token

Comparison

See COMPARISON.md for detailed comparison with ZiggyStarClaw, Clawgo, ZeroClaw, and IronClaw.

Roadmap

  • Real Ed25519 authentication
  • Unified configuration (Config.Provider)
  • Structured logging with telemetry
  • Progress event streaming
  • Phoenix LiveView Dashboard
  • LLM integration (Claude/GPT-4)
  • Livebook integration
  • Nx/Bumblebee for local AI
  • More platform support

Phase 3 Features

Real-time Event Streaming

Track capability execution progress in real-time:

# Subscribe to events
ElixirClaw.Events.subscribe("my_node")

# Execute with progress tracking
ElixirClaw.Node.execute("screen.record", %{duration: 10}, %{
  node_id: "my_node",
  request_id: "req_123"
})

Phoenix LiveView Dashboard

Monitor your nodes in real-time with a web dashboard:

# Start with dashboard enabled
ELIXIR_CLAW_START_DASHBOARD=true mix run --no-halt

# Open http://localhost:4000
Variable Default Purpose
ELIXIR_CLAW_START_DASHBOARD false Enable the dashboard
ELIXIR_CLAW_DASHBOARD_HOST 127.0.0.1 Bind address. The dashboard has no authentication; keep it on localhost or behind a trusted proxy
ELIXIR_CLAW_DASHBOARD_PORT 4000 HTTP port
ELIXIR_CLAW_SECRET_KEY_BASE random per start At least 64 bytes; set it to keep sessions across restarts

The dashboard serves its JavaScript from the project dependencies, so run it with mix run or a release rather than the standalone elixir_claw escript. It currently shows demo data from ElixirClaw.DashboardStub.

Features:

  • Real-time node status
  • Telemetry visualization
  • Command approval interface
  • Event streaming

LLM Integration

Control ElixirClaw with natural language through multiple LLM providers:

# Unified interface - auto-selects provider
{:ok, response} = ElixirClaw.LLM.chat("Take a screenshot")

# Specific provider selection
{:ok, response} = ElixirClaw.LLM.chat("Take a screenshot", provider: :nvidia)
{:ok, response} = ElixirClaw.LLM.chat("Take a screenshot", provider: :openrouter)
{:ok, response} = ElixirClaw.LLM.chat("Take a screenshot", provider: :opencode)

# Provider-specific functions
{:ok, response} = ElixirClaw.LLM.chat_with_claude("Take a screenshot")
{:ok, response} = ElixirClaw.LLM.chat_with_gpt4("Take a screenshot")
{:ok, response} = ElixirClaw.LLM.chat_with_nvidia("Take a screenshot")
{:ok, response} = ElixirClaw.LLM.chat_with_openrouter("Take a screenshot")
{:ok, response} = ElixirClaw.LLM.chat_with_opencode("Take a screenshot")

# Local pattern matching (no API needed)
{:ok, response} = ElixirClaw.LLM.process_command("screenshot my screen")

Supported Providers

Provider Environment Variable Default Model
Claude (Anthropic) ANTHROPIC_API_KEY claude-3-sonnet-20240229
OpenAI OPENAI_API_KEY gpt-4-turbo-preview
NVIDIA NIM NVIDIA_API_KEY meta/llama-3.1-8b-instruct
OpenRouter OPENROUTER_API_KEY anthropic/claude-3.5-sonnet
OpenCode OPENCODE_API_KEY opencode-default

Configuration

Set your preferred provider:

# Set default provider
export ELIXIR_CLAW_LLM_PROVIDER=nvidia

# Set API keys
export ANTHROPIC_API_KEY=your_key
export OPENAI_API_KEY=your_key
export NVIDIA_API_KEY=your_key
export OPENROUTER_API_KEY=your_key
export OPENCODE_API_KEY=your_key

Stress Testing

Verify 72-hour uptime:

./stress_test.sh

Outputs:

  • Memory usage statistics
  • Error rates
  • Connection stability
  • Performance metrics

Contributing

  1. Fork the repo
  2. Create your feature branch
  3. Commit your changes
  4. Push to the branch
  5. Open a PR

Support

If this project helps you, consider supporting:

  • Ethereum: 0xd1a8Dd23e356B9fAE27dF5DeF9ea025A602EC81e
  • Polkadot: 5DJV8DsPT3KH1rzvqTGqJ7WsCNnFt5tBn6R9yfe8SGi7YmYD
  • Solana: EyFovdqgnLAicTrDzJzjawRciLHTtq5W7ZkUV5Q3azmb

License

MIT License - see LICENSE

About

No description, website, or topics provided.

Resources

Readme

Code of conduct

Code of conduct

Contributing

Contributing

Security policy

Security policy
Activity

Stars

20 stars

Watchers

0 watching

Forks

1 fork
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.