A personal AI note app with two surfaces:
index.htmlrecord view for voice/text capture.index.htmlfeed view for private, Nostr-delivered AI posts.
- The separate YouTube tab was removed from the app header.
- Static feed JSON loading was removed from the UI.
- YouTube API-based generation was removed.
- Feed content is now loaded from private Nostr events only.
- YouTube-style recommendations can still be generated, but now through Gemini and published to Nostr like any other feed post.
├── index.html
├── start_server.sh
├── utilities/
│ ├── my_sky_app.gs
│ ├── vectorize_notes.js
│ └── feed_generator/
│ ├── package.json
│ └── scripts/
│ ├── feed_gen.sh
│ ├── youtube_feed_gen.sh
│ ├── publish_feed.js
│ ├── nand_prompt.txt
│ └── youtube_prompt.txt
- Generate posts with Gemini from local notes (
feed_gen.shoryoutube_feed_gen.sh). - Publish encrypted payload via
publish_feed.js(kind10001, tagged to user pubkey). - App decrypts and renders posts in Feed after NIP-07 login.
chmod +x start_server.sh
./start_server.shOpen http://localhost:8000/index.html.
From utilities/feed_generator:
npm run generate:notes
npm run generate:youtubeOptional env vars before running:
BOT_PRIVKEYUSER_PUBKEYRELAYS
utilities/my_sky_app.gs handles like/reply persistence to your Google Drive via Web App endpoint configured in index.html.