Skip to content

Instantly share code, notes, and snippets.

View prashant-shahi's full-sized avatar

Prashant Shahi prashant-shahi

View GitHub Profile

See more of my writing here.

In this post, I'll start from scratch and build up to OpenClaw's architecture step by step, showing how you could have invented it yourself from first principles, using nothing but a messaging API, an LLM, and the desire to make AI actually useful outside the chat window.

End goal: understand how persistent AI assistants work, so you can build your own (or become an OpenClaw power user).

First, let's establish the problem

When you use ChatGPT or Claude in a browser, there are several limitations:

@prashant-shahi
prashant-shahi / GNU-Make.md
Created April 2, 2025 11:57 — forked from rueycheng/GNU-Make.md
GNU Make cheatsheet
@prashant-shahi
prashant-shahi / main.go
Created April 24, 2024 14:04
Example clickhouse DNS strings and how it is parsed
package main
import (
"fmt"
"net/url"
"strings"
)
func main() {
dsnStrings := []string{
@prashant-shahi
prashant-shahi / main.go
Created March 11, 2024 06:25
Array sum using Loop, Goroutines and Recursion in Go
package main
import "fmt"
const (
BATCH_COUNT = 5
)
func loopSum(s []int) int {
sum := 0
@prashant-shahi
prashant-shahi / index.md
Created March 11, 2024 05:29
Time zones available in Go (Linux)

Time zones available in Golang

  • Retrieving time zones from : /usr/share/zoneinfo/
  • OS : linux
  • Total timezone ids : 608
GMT+00:00 Africa/Abidjan
GMT+00:00 Africa/Accra
GMT+03:00 Africa/Addis_Ababa
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<script>
L_NO_TOUCH = false;
L_DISABLE_3D = false;
</script>

SigNoz Dashboards for Monitoring Kubernetes

Dashboard URL
PVC Metrics [kubernetes-pvc-metrics.json][1]
Pods Metrics (Overall) [kubernetes-pod-metrics-overall.json][2]
Pods Metrics (Detailed) [kubernetes-pod-metrics-detailed.json][3]
Node Metrics (Overall) [kubernetes-node-metrics-overall.json][4]
Node Metrics (Detailed) [kubernetes-node-metrics-detailed.json][5]
@prashant-shahi
prashant-shahi / main.go
Created January 17, 2024 08:58
kebab casing string for valid URL paths in Golang
package main
import (
"fmt"
"regexp"
"strings"
)
func toKebabCase(s string) string {
// Regular expression to match non-alphanumeric characters
@prashant-shahi
prashant-shahi / gist:2efb55e97cd4c6226c1789ca7b56765b
Created January 11, 2024 12:10 — forked from rxaviers/gist:7360908
Complete list of github markdown emoji markup

People

:bowtie: :bowtie: πŸ˜„ :smile: πŸ˜† :laughing:
😊 :blush: πŸ˜ƒ :smiley: ☺️ :relaxed:
😏 :smirk: 😍 :heart_eyes: 😘 :kissing_heart:
😚 :kissing_closed_eyes: 😳 :flushed: 😌 :relieved:
πŸ˜† :satisfied: 😁 :grin: πŸ˜‰ :wink:
😜 :stuck_out_tongue_winking_eye: 😝 :stuck_out_tongue_closed_eyes: πŸ˜€ :grinning:
πŸ˜— :kissing: πŸ˜™ :kissing_smiling_eyes: πŸ˜› :stuck_out_tongue:
#!/usr/bin/env bash
# require: git version > 2.3
# require: `db/letsencrypt` existed in git repo
if [[ -z "$CERTBOT_DOMAIN" ]] || [[ -z "$CERTBOT_VALIDATION" ]]; then
echo '$CERTBOT_DOMAIN and $CERTBOT_VALIDATION environment variables required.'
fi
source /etc/letsencrypt/dns-auth.conf