Skip to content

Instantly share code, notes, and snippets.

View adamcjoiner's full-sized avatar

Adam C. Joiner adamcjoiner

View GitHub Profile
@KevInTheCloud5617
KevInTheCloud5617 / DESIGN-FINAL.md
Created March 23, 2026 16:49
MC Gateway Integration Design

Mission Control ↔ OpenClaw Gateway Integration — Final Design

1. Executive Summary

Mission Control (MC) is a Next.js 15 dashboard that currently has broken service control, fake audits, and Docker-incompatible CLI shelling. This design replaces all of that with a narrow, auditable proxy layer that routes structured operations through the OpenClaw Gateway API. Direct tool invocations handle deterministic operations (cron, config reads); prompt-based streaming handles intelligent operations (security audits, autonomy evals, plugin config assistance). The browser never touches the Gateway — MC is the sole authenticated intermediary.


2. Architecture Overview

How to Install OpenClaw on a VirtualBox VM

A step-by-step guide for setting up OpenClaw (the open-source AI agent) on an isolated Linux virtual machine, accessible via Telegram and a web dashboard from your host machine.

What you'll end up with:

  • An Ubuntu Server VM running OpenClaw
  • A Telegram bot you can chat with from your phone
  • A web dashboard accessible from your host browser at http://localhost:18789
  • OpenClaw auto-starting every time the VM boots
  • Skills installed via ClawHub
@whistlermike
whistlermike / product-manager-skill.md
Last active April 3, 2026 10:20
The Product Manager Skill — SkillBar × OpenClaw

🎯 The Product Manager Skill — SkillBar × OpenClaw

Give your digital employee the skills of a $150K/year product manager — for a fraction of the cost.


Who Is This For?

🏪 Small & Medium Business Owner

@Jany-M
Jany-M / openclaw_wsl_quicksetup.md
Last active May 18, 2026 13:04
OpenClaw WSL Quick Setup for Windows 11
function add_toolbar_items($wp_admin_bar) {
$wp_admin_bar->add_node( array(
'id' => 'supportlink',
'title' => 'Contact support',
'href' => 'mailto:support@domain.com',
) );
}
add_action('admin_bar_menu', 'add_toolbar_items', 999);
@anttiviljami
anttiviljami / wp-admin-modal-dialog.php
Last active October 9, 2024 00:34
WordPress admin modal dialog example
<?php
// enqueue these scripts and styles before admin_head
wp_enqueue_script( 'jquery-ui-dialog' ); // jquery and jquery-ui should be dependencies, didn't check though...
wp_enqueue_style( 'wp-jquery-ui-dialog' );
?>
<!-- The modal / dialog box, hidden somewhere near the footer -->
<div id="my-dialog" class="hidden" style="max-width:800px">
<h3>Dialog content</h3>
<p>This is some terribly exciting content inside this dialog. Don't you agree?</p>
@plugnburn
plugnburn / README.md
Last active January 31, 2023 15:02
DaBi - live two-way DOM-to-data binding in 25 lines of JS

DaBi: data binding library that keeps it simple

DaBi (short for Data Binding) is a dead simple yet complete and self-contained DOM-to-JS and JS-to-DOM data binding library in just 25 lines of pure ES5 and 454 bytes when minified.

How to obtain

Download it right here or include it into your HTML:

@straker
straker / two-way-binding.js
Last active October 14, 2024 19:31
Simple and small two-way data binding between DOM and data
/**
* @param {object} scope - Object that all bound data will be attached to.
*/
function twoWayBind(scope) {
// a list of all bindings used in the DOM
// @example
// { 'person.name': [<input type="text" data-bind="person.name"/>] }
var bindings = {};
// each bindings old value to be compared for changes
@paulirish
paulirish / bling.js
Last active May 2, 2026 11:52
bling dot js
/* bling.js */
window.$ = document.querySelector.bind(document);
window.$$ = document.querySelectorAll.bind(document);
Node.prototype.on = window.on = function(name, fn) { this.addEventListener(name, fn); };
NodeList.prototype.__proto__ = Array.prototype;
NodeList.prototype.on = function(name, fn) { this.forEach((elem) => elem.on(name, fn)); };
@austinhyde
austinhyde / js-observables-binding.md
Last active January 7, 2025 08:27
Vanilla JavaScript Data Binding

Observables

You don't really need a framework or fancy cutting-edge JavaScript features to do two-way data binding. Let's start basic - first and foremost, you need a way to tell when data changes. Traditionally, this is done via an Observer pattern, but a full-blown implementation of that is a little clunky for nice, lightweight JavaScript. So, if native getters/setters are out, the only mechanism we have are accessors:

var n = 5;
function getN() { return n; }
function setN(newN) { n = newN; }

console.log(getN()); // 5

setN(10);