Skip to content

Instantly share code, notes, and snippets.

View michaelneale's full-sized avatar
😀
Not updating github status

Michael Neale michaelneale

😀
Not updating github status
View GitHub Profile
@michaelneale
michaelneale / privacy-policy.md
Created March 14, 2026 05:27
Blank App — Privacy Policy

Blank — Privacy Policy

Last updated: March 14, 2026

Blank ("the App") is developed by Michael Neale. This policy explains what data the App collects, how it's used, and your choices.

Summary

Blank does not require an account. It does not collect your name, email, or any personal information. It does not track you or use analytics. The data you provide (text descriptions, photos) is sent to our server solely to generate your store, and is not used for any other purpose.

@michaelneale
michaelneale / goosed-tunnel-setup.sh
Created December 21, 2025 23:57
Script to launch goosed agent with automatic tunnel setup for remote access
#!/bin/bash
# goosed-tunnel-setup.sh
# Script to launch goosed agent with automatic tunnel setup
#
# This creates a publicly accessible URL for your local goosed agent
# using a Cloudflare Worker proxy.
#
# Usage:
# ./goosed-tunnel-setup.sh
# GOOSE_PORT=8080 ./goosed-tunnel-setup.sh
@michaelneale
michaelneale / agent.sh
Created October 28, 2025 00:16
agent.sh
#!/bin/bash
# Simple bash-based agent that can call shell commands via OpenAI API
# Requires: curl, jq, OPENAI_API_KEY environment variable
set -e
API_URL="https://api.openai.com/v1/chat/completions"
MODEL="gpt-5"
CONVERSATION_FILE="/tmp/agent_conversation_$$.json"
#!/bin/bash
set -e
# Configuration
PORT=62996
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
# Check for goosed binary in multiple locations
if command -v goosed &> /dev/null; then
# goosed is on PATH
@michaelneale
michaelneale / gist:8372cef5c529f04e137445871a7f4709
Last active October 2, 2025 03:15
goosed api surface review
Having implemented a swift client to goosed (and others), some feedback on it as a general api:
Improvements:
* making it easy to start a blank session with config "as is" on disk: ie provider, and extensions, should be one shot (vs now which is many calls)
* goose-server/ui/desktop/openapi.json can be removed, not sure why it is there. It may also be possible to get rid of the ui/desktop/openapi.json and just generate it on the fly, not commit?
* we use a simple api key approach, might be nicer to specify a non shared secret approach with PKI (but still easy to implement from client side)
Tidy ups/Questions:
* extensions are listed in /config, but enabled in /extensions/add endpoint, which seems kind of inconstent
* you can add/remove to /extensions, but not clearly documented if you can (and what it means) to add a non enabled extension.
#!/bin/bash
# Git Work Summary Script
echo "========================================="
echo "GIT WORK SUMMARY"
echo "========================================="
echo ""
# Get current git user
@michaelneale
michaelneale / pre comit hook
Created February 2, 2025 22:13
goose-check.sh
#!/bin/sh
# Run Goose AI check on staged files
files=$(git diff --cached --name-only --diff-filter=ACM | grep -E '\.txt$|\.md$|\.rst$')
if [ -z "$files" ]; then
exit 0
fi
echo "Running Goose AI spell check..."
  1. install ollama

brew install ollama

  1. check you can run deepseek:

ollama run deepseek-r1:14b

(bigger model is better - if you can run 70B that is amazing!)

@michaelneale
michaelneale / example_usage.go
Created December 9, 2022 02:02
ChatGPT writes a golang key/value store abstraction
store := &InMemoryKVStore{data: make(map[string]string)}
store.Set("key1", "value1")
value, err := store.Get("key1")
if err != nil {
// handle error
}
store.Delete("key1")
results, err := store.Query("value")
if err != nil {
// handle error