Spaces:
Running
Running
| #!/usr/bin/env python3 | |
| """ | |
| Generate all HTML category pages from the original-index.md data | |
| """ | |
| import json | |
| # All category data | |
| all_categories = { | |
| "frameworks": { | |
| "title": "Frameworks & Tools", | |
| "description": "Frameworks, tools, and utilities for AI development", | |
| "icon": "π οΈ", | |
| "projects": [ | |
| {"name": "A Few ADKs", "url": "https://github.com/danielrosehill/A-Few-ADKs", "desc": "Point in time collection of some agent development kits (ADKs) to explore"}, | |
| {"name": "Agent SDK Env Setup", "url": "https://github.com/danielrosehill/Agent-SDK-Env-Setup", "desc": "Script to clone a few of the main ADKs (agent development kids) for testing/experimentation"}, | |
| {"name": "AI Friendly Badge", "url": "https://github.com/danielrosehill/AI-Friendly-Badge", "desc": "Website footer badge signalling AI \"friendliness\""}, | |
| {"name": "ASR Training Data Chunker", "url": "https://github.com/danielrosehill/ASR-Training-Data-Chunker", "desc": "Breaks up texts by approximate reading duration"}, | |
| {"name": "Batch ClaudeMD Repo Creator", "url": "https://github.com/danielrosehill/Batch-ClaudeMD-Repo-Creator", "desc": "For batch CLAUDE.md creation in large repository collections"}, | |
| {"name": "Better Safe", "url": "https://github.com/danielrosehill/Better-Safe", "desc": "CLI for taking on-demand Snapper snapshots (BTRFS)"}, | |
| {"name": "Cline Rules", "url": "https://github.com/danielrosehill/Cline-Rules", "desc": "Rules file for Cline"}, | |
| {"name": "Continue Dev Blocks", "url": "https://github.com/danielrosehill/Continue-Dev-Blocks", "desc": "Configuration blocks for Continue.dev code-gen assistants"}, | |
| {"name": "Email AI Outputs Workflow", "url": "https://github.com/danielrosehill/Email-AI-Outputs-Workflow", "desc": "N8N workflow for sharing prompts and outputs with friends and family with a reformatting node for smoother MD to email-safe HTML"}, | |
| {"name": "Gemini CLI Home Guidance", "url": "https://github.com/danielrosehill/Gemini-CLI-Home-Guidance", "desc": "Gemini.md (\"rules\") for the home folder / non repo constrained execution for Gemini CLI (model)"}, | |
| {"name": "Gemini Desktop Recorder Notepad", "url": "https://github.com/danielrosehill/Gemini-Desktop-Recorder-Notepad", "desc": "Voice recorder intended for easy voice note capture with AI (STT) postprocessing/cleanup"}, | |
| {"name": "Gemini Prompt Library ideator", "url": "https://github.com/danielrosehill/Gemini-Prompt-Library-ideator", "desc": "Using Gemini structured outputs to ideate a prompt library for Open Web UI"}, | |
| {"name": "Gemini SSML Formatter", "url": "https://github.com/danielrosehill/Gemini-SSML-Formatter", "desc": "Agent/app using Gemini to format plain markdown into speech synthesis markup language (SSML) for TTS narration"}, | |
| {"name": "Gemini Voice Notepad", "url": "https://github.com/danielrosehill/Gemini-Voice-Notepad", "desc": "Voice note transcription and cleanup with reformatting support"}, | |
| {"name": "Google Air Quality MCP", "url": "https://github.com/danielrosehill/Google-Air-Quality-MCP", "desc": "WIP - MCP server for querying Google Map's environmental API to retrieve air quality data for a geolocation"}, | |
| {"name": "Linux Desktop ClaudeMD Seeder", "url": "https://github.com/danielrosehill/Linux-Desktop-ClaudeMD-Seeder", "desc": "Seeds Claude.md files at common places in Linux Desktop filesystems"}, | |
| {"name": "N8N LLM Workflow Bulk Updater", "url": "https://github.com/danielrosehill/N8N-LLM-Workflow-Bulk-Updater", "desc": "Backend script for applying bulk model updates to workflows (use-case: updating LLMs in nodes)"}, | |
| {"name": "N8N Workflow Sanitiser Agent", "url": "https://github.com/danielrosehill/N8N-Workflow-Sanitiser-Agent", "desc": "Configuration for an AI agent for sanitising (redacting personal details) in N8N workflow exports"}, | |
| {"name": "Open In Windsurf KDE", "url": "https://github.com/danielrosehill/Open-In-Windsurf-KDE", "desc": "Implementing an \"Open In Windsurf\" (AI IDE) context menu element for KDE Plasma"}, | |
| {"name": "Private And Public Claude MD", "url": "https://github.com/danielrosehill/Private-And-Public-Claude-MD", "desc": "Slash command to seed private and public CLAUDE.md files"}, | |
| {"name": "Prompt Library Privacy Screener", "url": "https://github.com/danielrosehill/Prompt-Library-Privacy-Screener", "desc": "Model for a PII screen (using Ollama) for open sourcing prompt libraries safely"}, | |
| {"name": "quick repo creator", "url": "https://github.com/danielrosehill/quick-repo-creator", "desc": "A streamlined CLI tool for fast repository creation workflow with GitHub integration and IDE support"}, | |
| {"name": "Smithery Batch Installer", "url": "https://github.com/danielrosehill/Smithery-Batch-Installer", "desc": "Speeds up installing Smithery MCP servers onto multiple clients"}, | |
| {"name": "Structured System Prompt Generator", "url": "https://github.com/danielrosehill/Structured-System-Prompt-Generator", "desc": "Streamlit generator to aid with the creation of structured prompts"}, | |
| {"name": "Text Transformation Prompt Combiner", "url": "https://github.com/danielrosehill/Text-Transformation-Prompt-Combiner", "desc": "Basic implementation of a prompt concatenation utility for text transformation system prompts for converting transcribed text"}, | |
| {"name": "To Clone Or Not To Clone", "url": "https://github.com/danielrosehill/To-Clone-Or-Not-To-Clone", "desc": "Interactive CLI for cloning your Github repos"}, | |
| {"name": "Vibe Coded Disclosure", "url": "https://github.com/danielrosehill/Vibe-Coded-Disclosure", "desc": "Quick utility for adding FYI type notices to repos that they were vibe coded"}, | |
| {"name": "What Reqs Scanner", "url": "https://github.com/danielrosehill/What-Reqs-Scanner", "desc": "Python utility that scans a repo base for requirements.txt to analyse most used packages and suggest base env"}, | |
| {"name": "Whisper Converter Linux", "url": "https://github.com/danielrosehill/Whisper-Converter-Linux", "desc": "Minimalist AI-generated desktop utility for Linux using Whisper API to transcribe audio files"}, | |
| {"name": "Windsurf Global Rules", "url": "https://github.com/danielrosehill/Windsurf-Global-Rules", "desc": "Some snippets for global rules configurations for Windsurf IDE"}, | |
| {"name": "Windsurf Rules", "url": "https://github.com/danielrosehill/Windsurf-Rules", "desc": "Updated Windsurf rules"}, | |
| {"name": "Windsurf Rules 0925", "url": "https://github.com/danielrosehill/Windsurf-Rules-0925", "desc": "Refactored Windsurf Rules for the program's change to a modular config approach"}, | |
| ] | |
| }, | |
| "claude-code": { | |
| "title": "Claude Code Projects", | |
| "description": "Projects built with and for Claude Code CLI", | |
| "icon": "π»", | |
| "projects": [ | |
| {"name": "AI Developer Notebook", "url": "https://github.com/danielrosehill/AI-Developer-Notebook", "desc": "Notes for configuring a reference notebook with Claude Code"}, | |
| {"name": "Claude Code Context Feature Requests", "url": "https://github.com/danielrosehill/Claude-Code-Context-Feature-Requests", "desc": "A couple of feature requests (including my own) discussing context handling in Claude code"}, | |
| {"name": "Claude Code Linux Desktop Slash Commands", "url": "https://github.com/danielrosehill/Claude-Code-Linux-Desktop-Slash-Commands", "desc": "Slash commands for Linux desktop sysadmin with Claude Code (or any other agent)"}, | |
| {"name": "Claude Code MCP Command Generator", "url": "https://github.com/danielrosehill/Claude-Code-MCP-Command-Generator", "desc": "Provides CC MCP installation commands"}, | |
| {"name": "Claude Code Repo Managers ClaudeMD", "url": "https://github.com/danielrosehill/Claude-Code-Repo-Managers-ClaudeMD", "desc": "CLAUDE.md files for repo base levels for bulk mgmt"}, | |
| {"name": "Claude Code Repos Index", "url": "https://github.com/danielrosehill/Claude-Code-Repos-Index", "desc": "Index of repositories related to Claude Code CLI"}, | |
| {"name": "Claude Code Writing Squad", "url": "https://github.com/danielrosehill/Claude-Code-Writing-Squad", "desc": "Model repository structure for using a Claude Code agent crew for writing related tasks"}, | |
| {"name": "Claude OS Sync Agent", "url": "https://github.com/danielrosehill/Claude-OS-Sync-Agent", "desc": "Idea - using Claude Code in place of Ansible for cross-device updating/sync"}, | |
| {"name": "Claude Slash Commands", "url": "https://github.com/danielrosehill/Claude-Slash-Commands", "desc": "My Claude Code slash commands"}, | |
| {"name": "Claude Sub Agent Network", "url": "https://github.com/danielrosehill/Claude-Sub-Agent-Network", "desc": "Collection of subagents for Claude Code with configs spanning ideation, editing, version control"}, | |
| {"name": "Cool Claude Code Stuff", "url": "https://github.com/danielrosehill/Cool-Claude-Code-Stuff", "desc": "Claude Code repos and other resources"}, | |
| {"name": "Home Folder Claude MD", "url": "https://github.com/danielrosehill/Home-Folder-Claude-MD", "desc": "CLAUDE.md for my home directory on an Ubuntu Linux desktop"}, | |
| {"name": "Non Code Claude Code", "url": "https://github.com/danielrosehill/Non-Code-Claude-Code", "desc": "Small collection of non-development related uses for Claude Code"}, | |
| {"name": "Smithery Claude Code MCP Jumpstarter", "url": "https://github.com/danielrosehill/Smithery-Claude-Code-MCP-Jumpstarter", "desc": "Group of Smithery MCPs for Claude Code"}, | |
| ] | |
| }, | |
| "mcp": { | |
| "title": "MCP Projects", | |
| "description": "Model Context Protocol servers and implementations", | |
| "icon": "π", | |
| "projects": [ | |
| {"name": "Google Air Quality MCP Postman Autogenerated", "url": "https://github.com/danielrosehill/Google-Air-Quality-MCP-Postman-Autogenerated", "desc": "Auto-generated MCP server for Google Air Quality API"}, | |
| {"name": "Jewish Interest MCP Projects", "url": "https://github.com/danielrosehill/Jewish-Interest-MCP-Projects", "desc": "Some MCP (model context protocol) servers which might be of interest to Jewish users"}, | |
| {"name": "Linux MCP Clients", "url": "https://github.com/danielrosehill/Linux-MCP-Clients", "desc": "A very small list of MCP clients that are available to Linux users, GUIs + CLIs"}, | |
| {"name": "MCP Projects", "url": "https://github.com/danielrosehill/MCP-Projects", "desc": "Various MCP related projects I'm either working on (or have worked on)"}, | |
| {"name": "MCP Server Ideas", "url": "https://github.com/danielrosehill/MCP-Server-Ideas", "desc": "Plans/WIP for MCP servers"}, | |
| {"name": "MCP Server JSON Sync", "url": "https://github.com/danielrosehill/MCP-Server-JSON-Sync", "desc": "Sync script for syncing VS Code MCP server JSON to Roo Code's store"}, | |
| {"name": "Qwen Agent", "url": "https://github.com/danielrosehill/Qwen-Agent", "desc": "Agent framework and applications built upon Qwen>=3.0, featuring Function Calling, MCP, Code Interpreter, RAG, Chrome extension, etc."}, | |
| {"name": "awesome mcp clients", "url": "https://github.com/danielrosehill/awesome-mcp-clients", "desc": "A collection of MCP clients."}, | |
| ] | |
| }, | |
| "gemini": { | |
| "title": "Gemini Projects", | |
| "description": "Projects leveraging Google's Gemini AI", | |
| "icon": "β¨", | |
| "projects": [ | |
| {"name": "Gemini AI Podcast Generator Web UI", "url": "https://github.com/danielrosehill/Gemini-AI-Podcast-Generator-Web-UI", "desc": "Web UI for Gemini AI podcast generator (Firebase Studio project)"}, | |
| {"name": "Gemini Ubuntu Maintenance Agent", "url": "https://github.com/danielrosehill/Gemini-Ubuntu-Maintenance-Agent", "desc": "Maintenance agent for Ubuntu systems using Gemini"}, | |
| {"name": "Gemini Vibe Coding Projects", "url": "https://github.com/danielrosehill/Gemini-Vibe-Coding-Projects", "desc": "List of vibe-coded starters created with Google AI Studio app builder"}, | |
| {"name": "Multimodal AI Use Case Ideator", "url": "https://github.com/danielrosehill/Multimodal-AI-Use-Case-Ideator", "desc": "Ideates use-cases for multimodal AI (Gemini)"}, | |
| {"name": "STT To TTS", "url": "https://github.com/danielrosehill/STT-To-TTS", "desc": "Gemini app which captures user speech, condenses (LLM), and then synthes"}, | |
| {"name": "Structured Gemini Prompts", "url": "https://github.com/danielrosehill/Structured-Gemini-Prompts", "desc": "A couple of examples of using Gemini 2.5 with structured outputs in Google AI Studio in order to conduct document analysis."}, | |
| ] | |
| }, | |
| "automation": { | |
| "title": "Automation & Workflows", | |
| "description": "N8N workflows and automation tools", | |
| "icon": "π", | |
| "projects": [ | |
| {"name": "Israel Morning News Briefs N8N Perplexity Sonar", "url": "https://github.com/danielrosehill/Israel-Morning-News-Briefs-N8N-Perplexity-Sonar", "desc": "Using Perplexity API structured prompting and N8N to deliver a tailored news brief"}, | |
| {"name": "N8N Expense Processing Workflow", "url": "https://github.com/danielrosehill/N8N-Expense-Processing-Workflow", "desc": "Expense processing backend workflow with AI agent for doc analysis"}, | |
| {"name": "N8N Test Agents", "url": "https://github.com/danielrosehill/N8N-Test-Agents", "desc": "Simple n8n agent patterns for learning the ropes or validating MCP calling"}, | |
| {"name": "N8N Voice Note Context Pipeline Workflow", "url": "https://github.com/danielrosehill/N8N-Voice-Note-Context-Pipeline-Workflow", "desc": "Workflow for extracting context data from voice notes and passing them into Pipecone vector database for upserting"}, | |
| {"name": "N8N Workflows Index", "url": "https://github.com/danielrosehill/N8N-Workflows-Index", "desc": "Index of N8N workflows that I have shared on Github"}, | |
| {"name": "Parenting Questions AI Agent Workflow", "url": "https://github.com/danielrosehill/Parenting-Questions-AI-Agent-Workflow", "desc": "Workflow for an agent that answers parenting questions by email with upload to Google Drive"}, | |
| {"name": "Save AI Outputs To Nuclino N8N", "url": "https://github.com/danielrosehill/Save-AI-Outputs-To-Nuclino-N8N", "desc": "N8N workflow for saving AI outputs to Nuclino and posting a notification to Slack"}, | |
| {"name": "Stack Research Agent N8N Config", "url": "https://github.com/danielrosehill/Stack-Research-Agent-N8N-Config", "desc": "N8N configuration for stack research agent"}, | |
| {"name": "Structured Output Schemas", "url": "https://github.com/danielrosehill/Structured-Output-Schemas", "desc": "Reuseable JSON schemas for structured Ai assistant/agent workflows"}, | |
| {"name": "System Prompt Tuning Agent N8N", "url": "https://github.com/danielrosehill/System-Prompt-Tuning-Agent-N8N", "desc": "N8N agent workflow for an agent that recommends fixes to system prompts based on structured user inputs provided by form"}, | |
| {"name": "Voice Prompt Enhancement Node", "url": "https://github.com/danielrosehill/Voice-Prompt-Enhancement-Node", "desc": "Configuration for an intermediate agent in voice automation workflows that bridge voice input to other actions"}, | |
| {"name": "Voicenotes Prompt To Email Workflow N8N", "url": "https://github.com/danielrosehill/Voicenotes-Prompt-To-Email-Workflow-N8N", "desc": "Voice notes to email workflow using N8N"}, | |
| ] | |
| }, | |
| "context": { | |
| "title": "Context & Prompt Libraries", | |
| "description": "Context repositories and prompt collections", | |
| "icon": "π", | |
| "projects": [ | |
| {"name": "Audiopenai Edit Prompts", "url": "https://github.com/danielrosehill/Audiopenai-Edit-Prompts", "desc": "Text transformation prompts library for Audiopen.ai (my customs)"}, | |
| {"name": "Career Data AI Context Repo", "url": "https://github.com/danielrosehill/Career-Data-AI-Context-Repo", "desc": "Context repository for AI tools providing career info to guide agents, assistants, etc"}, | |
| {"name": "Long AI Prompting Experiment", "url": "https://github.com/danielrosehill/Long-AI-Prompting-Experiment", "desc": "Experiment testing the \"added value\" of long context-dense prompts (versus casual converastional prompts) and the value of a voice \"prompt optimisation\" agent"}, | |
| {"name": "Software Wish List AI Context", "url": "https://github.com/danielrosehill/Software-Wish-List-AI-Context", "desc": "Context repository to connect to AI tools - things I look for in most software evaluations"}, | |
| {"name": "Text Transformation Prompt Library", "url": "https://github.com/danielrosehill/Text-Transformation-Prompt-Library", "desc": "Updated repo of text transformation prompts (raw STT transcripts -> *). New repo for capturing via automations."}, | |
| {"name": "Voice To Prompt Pipeline", "url": "https://github.com/danielrosehill/Voice-To-Prompt-Pipeline", "desc": "A conceptual voice to prompt pipeline that attempts to separate instructions from provided context for better results"}, | |
| ] | |
| }, | |
| "utilities": { | |
| "title": "Tools & Utilities", | |
| "description": "Standalone tools and utility applications", | |
| "icon": "π§", | |
| "projects": [ | |
| {"name": "ACR 1252 GUI 1025", "url": "https://github.com/danielrosehill/ACR-1252-GUI-1025", "desc": "Updated \"vibe-coded\" GUI for reading/writing to the ACR1252 USB NFC reader/writer (Linux)"}, | |
| {"name": "AI Assistant Ideator Streamlit", "url": "https://github.com/danielrosehill/AI-Assistant-Ideator-Streamlit", "desc": "Streamlit implementation for an AI \"self-ideation\" utility"}, | |
| {"name": "AI Assistant Ideator", "url": "https://github.com/danielrosehill/AI-Assistant-Ideator", "desc": "Streamlit app for ideating AI assisants"}, | |
| {"name": "Bash Alias Manager Claude", "url": "https://github.com/danielrosehill/Bash-Alias-Manager-Claude", "desc": "Claude agent directory for managing bash aliases"}, | |
| {"name": "Bug Reports Public", "url": "https://github.com/danielrosehill/Bug-Reports-Public", "desc": "Sanitised or non-sensitive bug reports that may have diagnostic utility for others"}, | |
| {"name": "Career Pivot AI", "url": "https://github.com/danielrosehill/Career-Pivot-AI", "desc": "Career pivot ideation app (AI Studio, vibe coded starter)"}, | |
| {"name": "Great AI Convos", "url": "https://github.com/danielrosehill/Great-AI-Convos", "desc": "A few timestampped conversations with AI tools that left an impression, recorded for posterity"}, | |
| {"name": "LLM Preferences Guide", "url": "https://github.com/danielrosehill/LLM-Preferences-Guide", "desc": "(Experiment) Predefined set of instructions for local agents governing LLM usage and selection"}, | |
| {"name": "Ollama Ideation UI", "url": "https://github.com/danielrosehill/Ollama-Ideation-UI", "desc": "Desktop app for running batch \"ideation\" prompts with a local LLM"}, | |
| {"name": "Shakespearean Text Generator Streamlit", "url": "https://github.com/danielrosehill/Shakespearean-Text-Generator-Streamlit", "desc": "Strealit app for generating Shakespearean text ... because why not"}, | |
| {"name": "Tech Stack Structured", "url": "https://github.com/danielrosehill/Tech-Stack-Structured", "desc": "Structured version of tech stack, including AI tools"}, | |
| {"name": "Tech Tool Prompting 0525", "url": "https://github.com/danielrosehill/Tech-Tool-Prompting-0525", "desc": "Some stack evaluation prompts as I try to finish my stack \"updating\" process"}, | |
| {"name": "Voice Notepad Prototype Planning", "url": "https://github.com/danielrosehill/Voice-Notepad-Prototype-Planning", "desc": "Planning and outlining for an AI voice app for organisation"}, | |
| {"name": "Whisper Notepad Simple", "url": "https://github.com/danielrosehill/Whisper-Notepad-Simple", "desc": "A Linux desktop utility for converting speech to text using the OpenAI Whisper API"}, | |
| ] | |
| }, | |
| "documentation": { | |
| "title": "Documentation & Indexes", | |
| "description": "Documentation projects and resource indexes", | |
| "icon": "π", | |
| "projects": [ | |
| {"name": "AI Agents", "url": "https://github.com/danielrosehill/AI-Agents", "desc": "Periodically updated index of AI agent configurations that I'm working on (or have created)"}, | |
| {"name": "AI Generated Projects Index", "url": "https://github.com/danielrosehill/AI-Generated-Projects-Index", "desc": "Index of development projects that were partially or fully developed using AI"}, | |
| {"name": "AI Projects Index", "url": "https://github.com/danielrosehill/AI-Projects-Index", "desc": "Index of AI project related indices (master index)"}, | |
| {"name": "Awesome AI Agents And Assistants", "url": "https://github.com/danielrosehill/Awesome-AI-Agents-And-Assistants", "desc": "An ecosystem map of the AI agent and assistant building landscape in Feb 2025"}, | |
| {"name": "Awesome AI Coding Tools", "url": "https://github.com/danielrosehill/Awesome-AI-Coding-Tools", "desc": "September 1st 2025 Snapshot"}, | |
| {"name": "Awesome List Repos Index", "url": "https://github.com/danielrosehill/Awesome-List-Repos-Index", "desc": "Index of listing repositories I have created"}, | |
| {"name": "Awesome Whisper Apps", "url": "https://github.com/danielrosehill/Awesome-Whisper-Apps", "desc": "Useful speech to text tools that use Whisper under the hood (API/local)"}, | |
| {"name": "Backup Projects Index", "url": "https://github.com/danielrosehill/Backup-Projects-Index", "desc": "Indexing repo of backup related projects and scripts"}, | |
| {"name": "Context Projects Index", "url": "https://github.com/danielrosehill/Context-Projects-Index", "desc": "Index of projects related to context-gathering and generation for AI, including via interview approaches"}, | |
| {"name": "Deep Research Projects 0425", "url": "https://github.com/danielrosehill/Deep-Research-Projects-0425", "desc": "A collection of links to a few AI \"deep research\" projects and agents, April 2025"}, | |
| {"name": "Hebrew LLMs", "url": "https://github.com/danielrosehill/Hebrew-LLMs", "desc": "A pathfinder repo (index) to some Hebrew language LLMs on Hugging Face"}, | |
| {"name": "Linux STT And Voice Assistants", "url": "https://github.com/danielrosehill/Linux-STT-And-Voice-Assistants", "desc": "Point in time snapshot/index of STT and voice assistants projects for Linux desktop"}, | |
| {"name": "My Docs Index", "url": "https://github.com/danielrosehill/My-Docs-Index", "desc": "An index to my various documentation projects, both on Github and elsewhere"}, | |
| {"name": "Text Transformation Prompt Collection 2", "url": "https://github.com/danielrosehill/Text-Transformation-Prompt-Collection-2", "desc": "An abbreviated collection of STT transformation prompts"}, | |
| ] | |
| }, | |
| "miscellaneous": { | |
| "title": "Miscellaneous", | |
| "description": "Various AI experiments and unique projects", | |
| "icon": "π", | |
| "projects": [ | |
| {"name": "AI Agent Ideation Agent", "url": "https://github.com/danielrosehill/AI-Agent-Ideation-Agent", "desc": "Ideation agent that generates ideas for AI agents!"}, | |
| {"name": "AI Output Storage Backend Data Models", "url": "https://github.com/danielrosehill/AI-Output-Storage-Backend-Data-Models", "desc": "Some simple data tables for populating a backend for storing prompt runs"}, | |
| {"name": "Agents.md Templates", "url": "https://github.com/danielrosehill/Agents.md-Templates", "desc": "Template agents.md templates for use with OpenAI Codex"}, | |
| {"name": "Ai Development Template", "url": "https://github.com/danielrosehill/Ai-Development-Template", "desc": "Development template for AI projects"}, | |
| {"name": "Assistant Self Ideation 280325", "url": "https://github.com/danielrosehill/Assistant-Self-Ideation-280325", "desc": "AI assistant \"self-ideation\" run"}, | |
| {"name": "Back Up Your SaaS", "url": "https://github.com/danielrosehill/Back-Up-Your-SaaS", "desc": "Notes for fellow cautious trusters of \"the cloud\""}, | |
| {"name": "Github AI Searches", "url": "https://github.com/danielrosehill/Github-AI-Searches", "desc": "A series of search links for those wishing to drink from the firehose of open-source AI"}, | |
| {"name": "LLM Detective", "url": "https://github.com/danielrosehill/LLM-Detective", "desc": "Agent that tries to probe other models' capabilities with conversation"}, | |
| {"name": "Llama OS Doctor Idea", "url": "https://github.com/danielrosehill/Llama-OS-Doctor-Idea", "desc": "Planning notes for an AI agent / experiment"}, | |
| {"name": "Local Linux Repair Bot", "url": "https://github.com/danielrosehill/Local-Linux-Repair-Bot", "desc": "Experimentary repo to try use an AI IDE as a local agent workspace for local OS debugging"}, | |
| {"name": "Multimodal AI Taxonomy", "url": "https://github.com/danielrosehill/Multimodal-AI-Taxonomy", "desc": "Attempting to map out the various input/output permutations for multimodal AI"}, | |
| {"name": "My Weird Prompts", "url": "https://github.com/danielrosehill/My-Weird-Prompts", "desc": "Blog/podcast made out of colorful (and mundane) AI prompts - and answers!"}, | |
| {"name": "OSINT Missile Intelligence Agent", "url": "https://github.com/danielrosehill/OSINT-Missile-Intelligence-Agent", "desc": "Snap reports about causes and quantitiative info about hostile missile launches"}, | |
| {"name": "One Prompt AI Book", "url": "https://github.com/danielrosehill/One-Prompt-AI-Book", "desc": "Experiment - generating a book using a single prompt"}, | |
| {"name": "OpenAI Image Renamer", "url": "https://github.com/danielrosehill/OpenAI-Image-Renamer", "desc": "Simple Python script for batch file renaming operations with OpenAI API"}, | |
| {"name": "Perplexity API Tests 020425", "url": "https://github.com/danielrosehill/Perplexity-API-Tests-020425", "desc": "Quick test prompts to compare respones against various Sonar API endpoints"}, | |
| {"name": "Remote Jobs Research Agent", "url": "https://github.com/danielrosehill/Remote-Jobs-Research-Agent", "desc": "Company research agent targeted towards the needs of remote job seekers sourcing detailed information about company backgrounds as well as remote-specific information"}, | |
| {"name": "STT Fine Tune Project Outline", "url": "https://github.com/danielrosehill/STT-Fine-Tune-Project-Outline", "desc": "Planning doc for STT fine-tuning and eval project"}, | |
| {"name": "STT Voice Note Evaluation", "url": "https://github.com/danielrosehill/STT-Voice-Note-Evaluation", "desc": "STT voice note evaluation project"}, | |
| {"name": "Text To Image Test Prompts", "url": "https://github.com/danielrosehill/Text-To-Image-Test-Prompts", "desc": "Informal prompts for testing out text-to-image"}, | |
| {"name": "The Bot Has A Question", "url": "https://github.com/danielrosehill/The-Bot-Has-A-Question", "desc": "Weird AI experiment #342"}, | |
| {"name": "The Jerusalem Odyssey Text", "url": "https://github.com/danielrosehill/The-Jerusalem-Odyssey-Text", "desc": "A 100 page book manuscript generated from a single prompt using Sonnet 3.7"}, | |
| {"name": "Veo 31 Prompts", "url": "https://github.com/danielrosehill/Veo-31-Prompts", "desc": "A few ridiculous prompts for trying out Veo 3.1"}, | |
| {"name": "Voice Note Dataset", "url": "https://github.com/danielrosehill/Voice-Note-Dataset", "desc": "Frontend for open source vote note dataset for annotation/classifictaion project"}, | |
| {"name": "Voice Notepad With Transformations", "url": "https://github.com/danielrosehill/Voice-Notepad-With-Transformations", "desc": "Linux voice notepad (latest version) with text transformations in addition to STT"}, | |
| {"name": "Whisper Notepad For Linux", "url": "https://github.com/danielrosehill/Whisper-Notepad-For-Linux", "desc": "Notepad for Linux that uses OpenAI Whisper (API) and reformats dictated text"}, | |
| {"name": "Wireframe Cleaner Nano Banana", "url": "https://github.com/danielrosehill/Wireframe-Cleaner-Nano-Banana", "desc": "Clean up handdrawn wireframes/sketches with Nano Banana (WIP)"}, | |
| ] | |
| } | |
| } | |
| def generate_category_page(filename, category_data): | |
| """Generate an HTML page for a category""" | |
| html = f'''<!DOCTYPE html> | |
| <html lang="en"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| <title>{category_data["title"]} - AI Projects Index</title> | |
| <link rel="stylesheet" href="style.css"> | |
| </head> | |
| <body> | |
| <header> | |
| <div class="container"> | |
| <h1>{category_data["icon"]} {category_data["title"]}</h1> | |
| <p class="subtitle">{category_data["description"]}</p> | |
| </div> | |
| </header> | |
| <main class="container"> | |
| <a href="index.html" class="back-link">β Back to Index</a> | |
| <section class="search-section"> | |
| <input type="text" id="projectSearch" placeholder="Search projects..." /> | |
| </section> | |
| <section class="projects-list"> | |
| ''' | |
| for project in category_data["projects"]: | |
| html += f''' <div class="project-card"> | |
| <h3><a href="{project["url"]}" target="_blank">{project["name"]}</a></h3> | |
| <span class="badge">{category_data["title"]}</span> | |
| <p>{project["desc"]}</p> | |
| </div> | |
| ''' | |
| html += ''' </section> | |
| </main> | |
| <footer> | |
| <div class="container"> | |
| <p>© 2025 Daniel Rosehill. Last Updated: August 2025</p> | |
| <p> | |
| <a href="https://github.com/danielrosehill" target="_blank">GitHub</a> | | |
| <a href="https://danielrosehill.com" target="_blank">Website</a> | | |
| <a href="mailto:public@danielrosehill.com">Contact</a> | |
| </p> | |
| </div> | |
| </footer> | |
| <script src="script.js"></script> | |
| </body> | |
| </html> | |
| ''' | |
| with open(filename, 'w') as f: | |
| f.write(html) | |
| print(f"Generated {filename}") | |
| # Generate pages | |
| for category_key, category_data in all_categories.items(): | |
| generate_category_page(f"{category_key}.html", category_data) | |
| print("\nAll category pages generated successfully!") | |