MyGo 云音乐
用 Go 与 MyGo 写成的第三方网易云音乐桌面客户端。原生界面,没有 WebView;边下边播,无损与 Hi-Res,逐字歌词与「律动」,刘海播放器。
Translation pending
The pieces I'd show you first.
MediaTypeScript · JavaScriptGitHub @MichailbulOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
ai agent for ugc content marketing
Translation pending
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
A personal vault for AI creators. Save prompts, generated images, reference shots,
and design inspiration via Telegram — they land in a searchable gallery, organized
by content pillar, tagged automatically, indexed for semantic search.
Built originally as Michael's own creative-work vault. Open-sourced so anyone
running their own AI generation workflows can self-host the same setup.Read the full README ↗A personal AI creatorship vault for production media and external references, organized so people and agents can find, reuse and preserve source provenance.
Start agents at /llms.txt, the canonical skills/laniameda-gallery/SKILL.md and authenticated Gallery MCP. Without a connector use the dependency-free Bun client. The deployed manifest reports version/fingerprints. Owner-only world/maintenance policy is private agentInstructions data; public copies are fetch bootstraps. Do not publish private IDs or credentials. Legacy pillar/workflow/folder/pack names are compatibility details, not additional user-facing organization.
You'll need:
@BotFather) for loginbun install
cp .env.example .env.local
Fill in .env.local. Minimum to boot:
NEXT_PUBLIC_CONVEX_URL=https://<your-deployment>.convex.cloud
CONVEX_URL=https://<your-deployment>.convex.cloud
SESSION_SECRET=<at least 32 chars>
For Telegram login:
TELEGRAM_LOGIN_BOT_TOKEN=...
NEXT_PUBLIC_TELEGRAM_BOT_USERNAME=<bot username without @>
To restrict admin actions (delete, curate-to-public) to yourself, set:
KB_OWNER_USER_ID=<your numeric Telegram ID>
CURATION_ADMIN_USER_IDS=<your numeric Telegram ID>,telegram:<your numeric Telegram ID>
NEXT_PUBLIC_CURATION_ADMIN_USER_IDS=<your numeric Telegram ID>,telegram:<your numeric Telegram ID>
CURATION_ADMIN_SECRET=<any long random string>
Run Convex dev (in one terminal):
bun run convex:dev
Run the app (in another):
bun run dev
App listens on http://localhost:3317 by default.
Set EXTENSION_API_TOKEN and EXTENSION_OWNER_USER_ID in the app environment,
then load extension/ with Load unpacked from chrome://extensions (Chrome
114 or newer). Click the toolbar icon to open the persistent upload desk, enter
the gallery origin and the same extension token under Workspace, and save
the settings. You can then choose a collection and drop images, videos, or an
entire folder into the panel; supported media inside folders is queued
recursively before upload.
The extension is loaded unpacked from this repo's extension/ folder. After a
pull, open chrome://extensions and press the reload arrow on Save to
Gallery; there is no build step.
On midjourney.com the extension adds three things for Dear Annete work:
GET /api/extension/moodboards?world=…). A
click sets that board's --profile <code> in the prompt and keeps the taste
profiles; clicking the active chip clears it. Hovering a chip shows six
full-size pictures of the board. Codes are read from the gallery on every
refresh (45 s, tab focus, the ↻ button) and never cached, so a board whose
code changed after a Midjourney sync shows the new code at once. Only the
world choice is stored.Ctrl elsewhere):
⌘⇧D adds it to the Dear Annete world, ⌘⇧L as a location, ⌘⇧P as a
scene, ⌘⇧M adds it and opens a comment box. The targets live in
extension/save-targets.js; comments post to /api/extension/comments.--profile and --ar are never touched. The phrases are in
extension/prompt-packs-data.js and carry no real place, river, artist or
brand names; the gallery world (open_world dear-annete, docs/midjourney.md)
is their source.See agent-docs/ENV_MATRIX.md for the complete env reference
and agent-docs/AUTH.md for the full Telegram login setup.
The gallery has two user tiers:
CURATION_ADMIN_USER_IDS) can additionally delete
assets and mark assets as public/featured. Non-admins see no delete affordance and
the server rejects delete requests they shouldn't be making.This is enforced both server-side (Convex mutations require CURATION_ADMIN_SECRET
bun run dev # Start Next.js
bun run lint # Lint
bun test # Run the complete backend, UI-helper, and extension suite
bun run typecheck # Type check
bun run convex:dev # Canonical cloud backend; serves real gallery data
bunx convex codegen # Regenerate Convex types after schema changes
See convex/schema.ts for the data model. Key tables:
prompts — prompt text, type, domain, tags, owner scopeassets, assetFolders, assetTags — media with source/prompt and multiple membershipsdesignInspirations — design references with platform/workflow type metadataworkflows, workflowFolders — internal storage for reusable SkillsassetPacks — internal media grouping, distinct from collections/Skillsstories, storyRevisions, galleryPresets — private text and curated viewsbookmarks, videoRefs — X post text and separate YouTube researchagentInstructions — private owner skill resources with version/hash guardstags — tag system with categories (model_name, style, content_type, etc.)folders — optional user-defined folder organizationsemanticDocuments — vector index for semantic searchusers, runs, generationLineage, ingest_failures — supporting tablesapp/ Next.js App Router pages + API routes
components/ React components (v8/ is the current dashboard)
convex/ Backend: schema, queries, mutations, actions
lib/ Shared helpers (auth, identity, gallery filters, etc.)
skills/ Repo-local agent skills (ingest + query)
agent-docs/ Architecture docs, env matrix, auth setup, observations
extension/ Chrome extension entry for one-click design saves
tests/ Bun tests for backend + API routes
The agent-docs/ directory has the full set:
PROGRESS.md — what's been built and recent changesOBSERVATIONS.md — known quirks and lessons learnedBACKEND_CONVEX_SETUP.md — Convex setup walkthroughAUTH.md — Telegram auth setup end to endENV_MATRIX.md — every env var, where it's read, and what forSEMANTIC_SEARCH.md — Gemini embedding + vector index setupDESIGN.md — UI design systemMCP_AGENT_ACCESS.md — agent access and schema discoveryMIT. See LICENSE.