Skip to content

Instantly share code, notes, and snippets.

Set up these as real Codex lifecycle hooks by following the official documentation:
https://learn.chatgpt.com/docs/hooks
Important: use ~/.codex/hooks.json and a PreToolUse command hook. Do not implement this only as a ~/.codex/rules/*.rules execution-policy file.
First inspect any existing hooks and preserve them. Then:
1. Create or merge ~/.codex/hooks.json with a PreToolUse matcher for Bash.
2. Create ~/.codex/hooks/destructive_commands.py.
3. The script must read the hook JSON payload from stdin and inspect tool_input.command.
@austinmw
austinmw / SKILL.md
Created April 14, 2026 03:55
excalidraw-hybrid-skill — Hermes Agent skill: CLI layout + freeform agent JSON editing + Obsidian-native .excalidraw.md output

name: excalidraw description: Create hand-drawn style diagrams — flowcharts, architecture, sequence, concept maps. Default workflow for flowcharts is CLI layout + freeform agent JSON editing + Obsidian native output. Raw JSON for non-flowchart layouts. version: 3.0.0 author: Hermes Agent license: MIT dependencies: [] metadata: hermes: tags: [Excalidraw, Diagrams, Flowcharts, Architecture, Visualization]

OpenClaw: Extracted Prompts (Generalized)

22 copy/paste-ready prompts for building your own AI agent system. Each prompt builds a functional system or implements a proven best practice you can hand to an AI coding assistant.

Replace placeholders like <your-workspace>, <your-messaging-platform>, and <your-model> with your own values.


1. Personal CRM

@velvet-shark
velvet-shark / openclaw-50-day-prompts.md
Last active July 17, 2026 20:49
OpenClaw after 50 days: all prompts for 20 real workflows (companion to YouTube video)

OpenClaw after 50 days: all prompts

Companion prompts for the video: OpenClaw after 50 days: 20 real workflows (honest review)

These are the actual prompts I use for each use case shown in the video. Copy-paste them into your agent and adjust for your setup. Most will work as-is or the agent will ask you clarifying questions.

Each prompt describes the intent clearly enough that the agent can figure out the implementation details. You don't need to hand-hold it through every step.

My setup: OpenClaw running on a VPS, Discord as primary interface (separate channels per workflow), Obsidian for notes (markdown-first), Coolify for self-hosted services.

@benuski
benuski / compose.yml
Created January 31, 2024 15:50
changedetection.io and browserless v2 docker compose
version: '3.2'
services:
changedetection:
image: ghcr.io/dgtlmoon/changedetection.io:latest
container_name: changedetection
hostname: changedetection
volumes:
- changedetection-data:/datastore
environment:
@cwsmith-160
cwsmith-160 / node_npx_install.md
Last active March 27, 2026 01:27
How to install node/nodejs & npx

How to install Node.js (node/nodejs, npm, and npx) in different environments

Install nodejs on Windows with PowerShell

Check if any of the required components, Chocolatey package manager, Node Version Manager, or Node.js are already installed

choco -v
nvm -v

node -v

@iRajatDas
iRajatDas / HowToDeleteAllCloudflareRecors.md
Created November 20, 2022 14:51 — forked from AidasK/HowToDeleteAllCloudflareRecors.md
Cloudflare delete all DNS records. Just go to cloudflare dns zones, open your browers developer console and paste this javascript code.

image

Real developers are not used to clicking, it's allways easier to write a script to do it for you.
@xanderificnl
xanderificnl / mikrotik.md
Created August 21, 2022 14:37
Mikrotik TFTP - netboot.xyz

Be sure to replace the Mikrotik IP & the DHCP network (see line 8, "network set #")

Mikrot IP: 192.168.88.1/24 DHCP network: 0

/tool fetch url="https://boot.netboot.xyz/ipxe/netboot.xyz.kpxe"
/ip tftp add ip-addresses=192.168.88.0/24 req-filename=netboot.xyz.kpxe real-filename=netboot.xyz.kpxe allow=yes read-only=yes
/ip dhcp-server network set 0 next-server=192.168.88.1 boot-file-name=netboot.xyz.kpxe
@narze
narze / gh-add-repos-to-team.sh
Created July 22, 2022 08:33
Add repos to team with gh
#!/bin/bash
PERMISSION="push" # Can be one of: pull, push, admin, maintain, triage
ORG="orgname"
TEAM_SLUG="your-team-slug"
# Get names with `gh repo list orgname`
REPOS=(
"orgname/reponame"
)