diff --git a/Asset/Attachment/Clippings/Learn AI for free directly from top companies/IMG-20260416190736025.jpg b/Asset/Attachment/Clippings/Learn AI for free directly from top companies/IMG-20260416190736025.jpg new file mode 100644 index 00000000..62d9b35d Binary files /dev/null and b/Asset/Attachment/Clippings/Learn AI for free directly from top companies/IMG-20260416190736025.jpg differ diff --git a/Asset/Attachment/Clippings/我做了个 Skill:让 AI 帮你生成 Logo 和图标/IMG-20260416190346768.jpg b/Asset/Attachment/Clippings/我做了个 Skill:让 AI 帮你生成 Logo 和图标/IMG-20260416190346768.jpg new file mode 100644 index 00000000..19ddeb29 Binary files /dev/null and b/Asset/Attachment/Clippings/我做了个 Skill:让 AI 帮你生成 Logo 和图标/IMG-20260416190346768.jpg differ diff --git a/Asset/Attachment/Clippings/我做了个 Skill:让 AI 帮你生成 Logo 和图标/IMG-20260416190350719.jpg b/Asset/Attachment/Clippings/我做了个 Skill:让 AI 帮你生成 Logo 和图标/IMG-20260416190350719.jpg new file mode 100644 index 00000000..57b974e5 Binary files /dev/null and b/Asset/Attachment/Clippings/我做了个 Skill:让 AI 帮你生成 Logo 和图标/IMG-20260416190350719.jpg differ diff --git a/Asset/Attachment/Clippings/我做了个 Skill:让 AI 帮你生成 Logo 和图标/IMG-20260416190406665.jpg b/Asset/Attachment/Clippings/我做了个 Skill:让 AI 帮你生成 Logo 和图标/IMG-20260416190406665.jpg new file mode 100644 index 00000000..16cbf48c Binary files /dev/null and b/Asset/Attachment/Clippings/我做了个 Skill:让 AI 帮你生成 Logo 和图标/IMG-20260416190406665.jpg differ diff --git a/Asset/Attachment/Clippings/我做了个 Skill:让 AI 帮你生成 Logo 和图标/IMG-20260416190406695.jpg b/Asset/Attachment/Clippings/我做了个 Skill:让 AI 帮你生成 Logo 和图标/IMG-20260416190406695.jpg new file mode 100644 index 00000000..0bbb423c Binary files /dev/null and b/Asset/Attachment/Clippings/我做了个 Skill:让 AI 帮你生成 Logo 和图标/IMG-20260416190406695.jpg differ diff --git a/Asset/Attachment/Clippings/我做了个 Skill:让 AI 帮你生成 Logo 和图标/IMG-20260416190406745.jpg b/Asset/Attachment/Clippings/我做了个 Skill:让 AI 帮你生成 Logo 和图标/IMG-20260416190406745.jpg new file mode 100644 index 00000000..b85f1d0d Binary files /dev/null and b/Asset/Attachment/Clippings/我做了个 Skill:让 AI 帮你生成 Logo 和图标/IMG-20260416190406745.jpg differ diff --git a/Asset/Attachment/Clippings/我做了个 Skill:让 AI 帮你生成 Logo 和图标/IMG-20260416190406778.jpg b/Asset/Attachment/Clippings/我做了个 Skill:让 AI 帮你生成 Logo 和图标/IMG-20260416190406778.jpg new file mode 100644 index 00000000..79e17f20 Binary files /dev/null and b/Asset/Attachment/Clippings/我做了个 Skill:让 AI 帮你生成 Logo 和图标/IMG-20260416190406778.jpg differ diff --git a/Asset/Attachment/Clippings/我做了个 Skill:让 AI 帮你生成 Logo 和图标/IMG-20260416190406807.jpg b/Asset/Attachment/Clippings/我做了个 Skill:让 AI 帮你生成 Logo 和图标/IMG-20260416190406807.jpg new file mode 100644 index 00000000..275dc48f Binary files /dev/null and b/Asset/Attachment/Clippings/我做了个 Skill:让 AI 帮你生成 Logo 和图标/IMG-20260416190406807.jpg differ diff --git a/Asset/Attachment/Clippings/我做了个 Skill:让 AI 帮你生成 Logo 和图标/IMG-20260416190406837.png b/Asset/Attachment/Clippings/我做了个 Skill:让 AI 帮你生成 Logo 和图标/IMG-20260416190406837.png new file mode 100644 index 00000000..72e13423 Binary files /dev/null and b/Asset/Attachment/Clippings/我做了个 Skill:让 AI 帮你生成 Logo 和图标/IMG-20260416190406837.png differ diff --git a/Clippings/Learn AI for free directly from top companies.md b/Clippings/Learn AI for free directly from top companies.md new file mode 100644 index 00000000..41b8f66c --- /dev/null +++ b/Clippings/Learn AI for free directly from top companies.md @@ -0,0 +1,62 @@ +--- +title: "Thread by @RodmanAi" +source: "https://x.com/RodmanAi/status/2044486250288320960" +author: + - "[[@RodmanAi]]" +published: 2026-04-16 +created: 2026-04-16 +description: "Learn AI for free directly from top companies. 1 - Anthropic: http://anthropic.skilljar.com 2 - Google: http://grow.google/ai 3 - Met" +tags: + - "clippings" +--- +**Leonard Rodman** @RodmanAi [2026-04-15](https://x.com/RodmanAi/status/2044486250288320960) + +Learn AI for free directly from top companies. + +1 - Anthropic: + +http://anthropic.skilljar.com + +2 - Google: + +http://grow.google/ai + +3 - Meta: + +http://ai.meta.com/resources/ + +4 - NVIDIA: + +http://developer.nvidia.com/cuda + +5 - Microsoft: + +http://learn.microsoft.com/en-us/training/ + +6 - OpenAI: + +http://academy.openai.com + +7 - IBM: + +http://skillsbuild.org + +8 - AWS: + +http://skillbuilder.aws + +9 - http://DeepLearning.AI: + +http://deeplearning.ai + +10 - Hugging Face: + +http://huggingface.co/learn + +👇Comment "Learning" if you find this helpful. + +Repost so others can take help. + +Must bookmark for future reference. + +![[IMG-20260416190736025.jpg|图像]] \ No newline at end of file diff --git a/Clippings/Obsidian CLI.md b/Clippings/Obsidian CLI.md new file mode 100644 index 00000000..473d9082 --- /dev/null +++ b/Clippings/Obsidian CLI.md @@ -0,0 +1,1535 @@ +--- +title: "Obsidian CLI" +source: "https://obsidian.md/help/cli#macOS" +author: +published: +created: 2026-04-16 +description: "Obsidian CLI - Obsidian Help" +tags: + - "clippings" +--- +Obsidian CLI is a command line interface that lets you control Obsidian from your terminal for scripting, automation, and integration with external tools. + +Anything you can do in Obsidian you can do from the command line. Obsidian CLI even includes [developer commands](https://obsidian.md/help/cli#Developer%20commands) to access developer tools, inspect elements, take screenshots, reload plugins, and more. + + + +> [!warning] Requires Obsidian 1.12 installer +> Using the CLI requires the Obsidian 1.12 installer. See the [installer version update guide](https://obsidian.md/help/updates#Installer%20updates). + +## Install Obsidian CLI + +Upgrade to the latest [Obsidian installer version](https://obsidian.md/help/updates) (1.12.7+). + +Enable Obsidian CLI in Obsidian: + +1. Go to **Settings** → **General**. +2. Enable **Command line interface**. +3. Follow the prompt to register Obsidian CLI. + +If you run into issues installing Obsidian CLI see [Troubleshooting](https://obsidian.md/help/cli#Troubleshooting). + +## Get started + +Obsidian CLI supports both single commands and a terminal user interface (TUI) with interactive help and autocomplete. + +> [!info] Obsidian app must be running +> Obsidian CLI requires the Obsidian app to be running. If Obsidian is not running, the first command you run launches Obsidian. +> +> Looking to sync without the desktop app? See [Obsidian Headless](https://obsidian.md/help/headless). + +### Run a command + +Run an individual command without opening the TUI: + +```shell +# Run the help command +obsidian help +``` + +### Use the terminal interface + +Use the TUI by entering `obsidian`. Subsequent commands can be entered without `obsidian`. + +```shell +# Open the TUI, then run help +obsidian +help +``` + +The TUI supports autocomplete, command history, and reverse search. Use `Ctrl+R` to search your command history. See [Keyboard shortcuts](https://obsidian.md/help/cli#Keyboard%20shortcuts) for all available shortcuts. + +## Examples + +Here are a few examples of what Obsidian CLI can do. + +### Everyday use + +```shell +# Open today's daily note +obsidian daily + +# Add a task to your daily note +obsidian daily:append content="- [ ] Buy groceries" + +# Search your vault +obsidian search query="meeting notes" + +# Read the active file +obsidian read + +# List all tasks from your daily note +obsidian tasks daily + +# Create a new note from a template +obsidian create name="Trip to Paris" template=Travel + +# List all tags in your vault with counts +obsidian tags counts + +# Compare two versions of a file +obsidian diff file=README from=1 to=3 +``` + +### For developers + +Many [Developer commands](https://obsidian.md/help/cli#Developer%20commands) are available for plugin and theme development. These commands allow agentic coding tools to automatically test and debug. + +```shell +# Open developer tools +obsidian devtools + +# Reload a community plugin you're developing +obsidian plugin:reload id=my-plugin + +# Take a screenshot of the app +obsidian dev:screenshot path=screenshot.png + +# Run JavaScript in the app console +obsidian eval code="app.vault.getFiles().length" +``` + +## How to + +### Use parameters and flags + +Commands can use **parameters** and **flags**. Most commands do not require any parameters or flags. Required parameters are marked as `required`. For example: + +```shell +# Create a new note using the default "Untitled" name +obsidian create +``` + +A **parameter** takes a value, written as `parameter=value`. If the value has spaces, wrap it in quotes: + +```shell +# Create a new note called "Note" with content "Hello world" +obsidian create name=Note content="Hello world" +``` + +A **flag** is a boolean switch with no value. Include it to turn it on, for example `open` and `overwrite` are flags: + +```shell +# Create a note and open it +obsidian create name=Note content="Hello" open overwrite +``` + +For multiline content use `\n` for newline. Use `\t` for tab. + +```bash +obsidian create name=Note content="# Title\n\nBody text" +``` + +### Target a vault + +If your terminal's current working directory is a vault folder, that vault is used by default. Otherwise, the currently active vault is used. + +Use `vault=` or `vault=` to target a specific vault. This must be the first parameter before your command: + +```shell +obsidian vault=Notes daily +obsidian vault="My Vault" search query="test" +``` + +In the TUI, use `vault:open ` or `` to switch to a different vault. + +### Target a file + +Many commands accept `file` and `path` parameters to target a specific file. If neither is provided, the command defaults to the active file. + +- `file=` resolves the file using the same link resolution as [wikilinks](https://obsidian.md/help/links), matching by file name without requiring the full path or extension. +- `path=` requires the exact path from the vault root, e.g. `folder/note.md`. + +```shell +# These are equivalent if "Recipe.md" is the only file with that name +obsidian read file=Recipe +obsidian read path="Templates/Recipe.md" +``` + +### Copy output + +Add `--copy` to any command to copy the output to the clipboard: + +```shell +read --copy +search query="TODO" --copy +``` + +## General commands + +### help + +Show list of all available commands. + +| Parameter | Description | +| --- | --- | +| `` | Show help for a specific command. | + +### version + +Show Obsidian version. + +### reload + +Reload the app window. + +### restart + +Restart the app. + +## Bases + +Commands for [Bases](https://obsidian.md/help/bases). + +### bases + +List all `.base` files in the vault. + +### base:views + +List views in the current base file. + +### base:create + +Create a new item in a base. Defaults to the active base view if no file is specified. + +```bash +file= # base file name +path= # base file path +view= # view name +name= # new file name +content= # initial content + +open # open file after creating +newtab # open in new tab +``` + +### base:query + +Query a base and return results. + +```bash +file= # base file name +path= # base file path +view= # view name to query +format=json|csv|tsv|md|paths # output format (default: json) +``` + +## Bookmarks + +Commands for [Bookmarks](https://obsidian.md/help/plugins/bookmarks). + +### bookmarks + +List bookmarks. + +```bash +total # return bookmark count +verbose # include bookmark types +format=json|tsv|csv # output format (default: tsv) +``` + +### bookmark + +Add a bookmark. + +```bash +file= # file to bookmark +subpath= # subpath (heading or block) within file +folder= # folder to bookmark +search= # search query to bookmark +url= # URL to bookmark +title= # bookmark title +``` + +## Command palette + +Commands for [Command palette](https://obsidian.md/help/plugins/command-palette) and [Hotkeys](https://obsidian.md/help/hotkeys). This includes all commands registered by plugins. + +### commands + +List available command IDs. + +```bash +filter=<prefix> # filter by ID prefix +``` + +### command + +Execute an Obsidian command. + +```bash +id=<command-id> # (required) command ID to execute +``` + +### hotkeys + +List hotkeys for all commands. + +```bash +total # return hotkey count +verbose # show if hotkey is custom +format=json|tsv|csv # output format (default: tsv) +``` + +### hotkey + +Get hotkey for a command. + +```bash +id=<command-id> # (required) command ID + +verbose # show if custom or default +``` + +## Daily notes + +Commands for [Daily notes](https://obsidian.md/help/plugins/daily-notes). + +### daily + +Open daily note. + +```bash +paneType=tab|split|window # pane type to open in +``` + +### daily:path + +Get daily note path. Returns the expected path even if the file hasn't been created yet. + +### daily:read + +Read daily note contents. + +### daily:append + +Append content to daily note. + +```bash +content=<text> # (required) content to append +paneType=tab|split|window # pane type to open in + +inline # append without newline +open # open file after adding +``` + +### daily:prepend + +Prepend content to daily note. + +```bash +content=<text> # (required) content to prepend +paneType=tab|split|window # pane type to open in + +inline # prepend without newline +open # open file after adding +``` + +## File history + +### diff + +List or compare versions from local [File recovery](https://obsidian.md/help/plugins/file-recovery) and [Sync](https://obsidian.md/help/sync). Versions are numbered from newest to oldest. + +```bash +file=<name> # file name +path=<path> # file path +from=<n> # version number to diff from +to=<n> # version number to diff to +filter=local|sync # filter by version source +``` + +**Examples:** + +```shell +# List all versions of the active file +diff + +# List all versions of a specific file +diff file=Recipe + +# Compare the latest version to the current file +diff file=Recipe from=1 + +# Compare two versions +diff file=Recipe from=2 to=1 + +# Only show Sync versions +diff filter=sync +``` + +### history + +List versions from [File recovery](https://obsidian.md/help/plugins/file-recovery) only. See [sync:history](https://obsidian.md/help/cli#Sync) for the equivalent Sync command. + +```bash +file=<name> # file name +path=<path> # file path +``` + +### history:list + +List all files with local history. + +### history:read + +Read a local history version. + +```bash +file=<name> # file name +path=<path> # file path +version=<n> # version number (default: 1) +``` + +### history:restore + +Restore a local history version. + +```bash +file=<name> # file name +path=<path> # file path +version=<n> # (required) version number +``` + +### history:open + +Open file recovery. + +```bash +file=<name> # file name +path=<path> # file path +``` + +## Files and folders + +### file + +Show file info (default: active file). + +```bash +file=<name> # file name +path=<path> # file path +``` + +Example: + +``` +path Notes/Recipe.md +name Recipe +extension md +size 1024 +created 1700000000000 +modified 1700001000000 +``` + +### files + +List files in the vault. + +```bash +folder=<path> # filter by folder +ext=<extension> # filter by extension + +total # return file count +``` + +### folder + +Show folder info. + +```bash +path=<path> # (required) folder path +info=files|folders|size # return specific info only +``` + +### folders + +List folders in the vault. + +```bash +folder=<path> # filter by parent folder + +total # return folder count +``` + +### open + +Open a file. + +```bash +file=<name> # file name +path=<path> # file path + +newtab # open in new tab +``` + +### create + +Create or overwrite a file. + +```bash +name=<name> # file name +path=<path> # file path +content=<text> # initial content +template=<name> # template to use + +overwrite # overwrite if file exists +open # open file after creating +newtab # open in new tab +``` + +### read + +Read file contents (default: active file). + +```bash +file=<name> # file name +path=<path> # file path +``` + +### append + +Append content to a file (default: active file). + +```bash +file=<name> # file name +path=<path> # file path +content=<text> # (required) content to append + +inline # append without newline +``` + +### prepend + +Prepend content after frontmatter (default: active file). + +```bash +file=<name> # file name +path=<path> # file path +content=<text> # (required) content to prepend + +inline # prepend without newline +``` + +### move + +Move or rename a file (default: active file). This will automatically update [internal links](https://obsidian.md/help/links) if turned on in your [vault settings](https://obsidian.md/help/settings#Automatically%20update%20internal%20links). + +```bash +file=<name> # file name +path=<path> # file path +to=<path> # (required) destination folder or path +``` + +### rename + +Rename a file (default: active file). The file extension is preserved automatically if omitted from the new name. Use [move](https://obsidian.md/help/cli#%60move%60) to rename and move a file at the same time. This will automatically update [internal links](https://obsidian.md/help/links) if turned on in your [vault settings](https://obsidian.md/help/settings#Automatically%20update%20internal%20links). + +```bash +file=<name> # file name +path=<path> # file path +name=<name> # (required) new file name +``` + +### delete + +Delete a file (default: active file, trash by default). + +```bash +file=<name> # file name +path=<path> # file path + +permanent # skip trash, delete permanently +``` + +## Links + +Commands for [Backlinks](https://obsidian.md/help/plugins/backlinks) and [Outgoing links](https://obsidian.md/help/plugins/outgoing-links). + +### backlinks + +List backlinks to a file (default: active file). + +```bash +file=<name> # target file name +path=<path> # target file path + +counts # include link counts +total # return backlink count +format=json|tsv|csv # output format (default: tsv) +``` + +### links + +List outgoing links from a file (default: active file). + +```bash +file=<name> # file name +path=<path> # file path + +total # return link count +``` + +### unresolved + +List unresolved links in vault. + +```bash +total # return unresolved link count +counts # include link counts +verbose # include source files +format=json|tsv|csv # output format (default: tsv) +``` + +### orphans + +List files with no incoming links. + +```bash +total # return orphan count +``` + +### deadends + +List files with no outgoing links. + +```bash +total # return dead-end count +``` + +## Outline + +Commands for [Outline](https://obsidian.md/help/plugins/outline). + +### outline + +Show headings for the current file. + +```bash +file=<name> # file name +path=<path> # file path +format=tree|md|json # output format (default: tree) + +total # return heading count +``` + +## Plugins + +Commands for [Core plugins](https://obsidian.md/help/plugins) and [Community plugins](https://obsidian.md/help/community-plugins). + +### plugins + +List installed plugins. + +```bash +filter=core|community # filter by plugin type + +versions # include version numbers +format=json|tsv|csv # output format (default: tsv) +``` + +### plugins:enabled + +List enabled plugins. + +```bash +filter=core|community # filter by plugin type + +versions # include version numbers +format=json|tsv|csv # output format (default: tsv) +``` + +### plugins:restrict + +Toggle or check restricted mode. + +```bash +on # enable restricted mode +off # disable restricted mode +``` + +### plugin + +Get plugin info. + +```bash +id=<plugin-id> # (required) plugin ID +``` + +### plugin:enable + +Enable a plugin. + +```bash +id=<id> # (required) plugin ID +filter=core|community # plugin type +``` + +### plugin:disable + +Disable a plugin. + +```bash +id=<id> # (required) plugin ID +filter=core|community # plugin type +``` + +### plugin:install + +Install a community plugin. + +```bash +id=<id> # (required) plugin ID + +enable # enable after install +``` + +### plugin:uninstall + +Uninstall a community plugin. + +```bash +id=<id> # (required) plugin ID +``` + +### plugin:reload + +Reload a plugin (for developers). + +```bash +id=<id> # (required) plugin ID +``` + +## Properties + +### aliases + +List aliases in the vault. Use `active` or `file` / `path` to show aliases for a specific file. + +```bash +file=<name> # file name +path=<path> # file path + +total # return alias count +verbose # include file paths +active # show aliases for active file +``` + +### properties + +List properties in the vault. Use `active` or `file` / `path` to show properties for a specific file. + +```bash +file=<name> # show properties for file +path=<path> # show properties for path +name=<name> # get specific property count +sort=count # sort by count (default: name) +format=yaml|json|tsv # output format (default: yaml) + +total # return property count +counts # include occurrence counts +active # show properties for active file +``` + +### property:set + +Set a property on a file (default: active file). + +```bash +name=<name> # (required) property name +value=<value> # (required) property value +type=text|list|number|checkbox|date|datetime # property type +file=<name> # file name +path=<path> # file path +``` + +### property:remove + +Remove a property from a file (default: active file). + +```bash +name=<name> # (required) property name +file=<name> # file name +path=<path> # file path +``` + +### property:read + +Read a property value from a file (default: active file). + +```bash +name=<name> # (required) property name +file=<name> # file name +path=<path> # file path +``` + +## Publish + +Commands for [Obsidian Publish](https://obsidian.md/help/publish). + +### publish:site + +Show publish site info (slug, URL). + +### publish:list + +List published files. + +```bash +total # return published file count +``` + +### publish:status + +List publish changes. + +```bash +total # return change count +new # show new files only +changed # show changed files only +deleted # show deleted files only +``` + +### publish:add + +Publish a file or all changed files (default: active file). + +```bash +file=<name> # file name +path=<path> # file path + +changed # publish all changed files +``` + +### publish:remove + +Unpublish a file (default: active file). + +```bash +file=<name> # file name +path=<path> # file path +``` + +### publish:open + +Open file on published site (default: active file). + +```bash +file=<name> # file name +path=<path> # file path +``` + +## Random notes + +Commands for [Random note](https://obsidian.md/help/plugins/random-note). + +### random + +Open a random note. + +```bash +folder=<path> # limit to folder + +newtab # open in new tab +``` + +### random:read + +Read a random note (includes path). + +```bash +folder=<path> # limit to folder +``` + +## Search + +Commands for [Search](https://obsidian.md/help/plugins/search). + +### search + +Search vault for text. Returns matching file paths. + +```bash +query=<text> # (required) search query +path=<folder> # limit to folder +limit=<n> # max files +format=text|json # output format (default: text) + +total # return match count +case # case sensitive +``` + +### search:context + +Search with matching line context. Returns grep-style `path:line: text` output. + +```bash +query=<text> # (required) search query +path=<folder> # limit to folder +limit=<n> # max files +format=text|json # output format (default: text) + +case # case sensitive +``` + +### search:open + +Open search view. + +```bash +query=<text> # initial search query +``` + +## Sync + +Commands for [Obsidian Sync](https://obsidian.md/help/sync). + +> [!tip] Sync without the desktop app +> These commands control Sync within the running Obsidian app. To sync vaults from the command line without the desktop app, see [Headless Sync](https://obsidian.md/help/sync/headless). + +### sync + +Pause or resume sync. + +```bash +on # resume sync +off # pause sync +``` + +### sync:status + +Show sync status and usage. + +### sync:history + +List sync version history for a file (default: active file). + +```bash +file=<name> # file name +path=<path> # file path + +total # return version count +``` + +### sync:read + +Read a sync version (default: active file). + +```bash +file=<name> # file name +path=<path> # file path +version=<n> # (required) version number +``` + +### sync:restore + +Restore a sync version (default: active file). + +```bash +file=<name> # file name +path=<path> # file path +version=<n> # (required) version number +``` + +### sync:open + +Open sync history (default: active file). + +```bash +file=<name> # file name +path=<path> # file path +``` + +### sync:deleted + +List deleted files in sync. + +```bash +total # return deleted file count +``` + +## Tags + +Commands for [Tags](https://obsidian.md/help/tags). + +### tags + +List tags in the vault. Use `active` or `file` / `path` to show tags for a specific file. + +```bash +file=<name> # file name +path=<path> # file path +sort=count # sort by count (default: name) + +total # return tag count +counts # include tag counts +format=json|tsv|csv # output format (default: tsv) +active # show tags for active file +``` + +### tag + +Get tag info. + +```bash +name=<tag> # (required) tag name + +total # return occurrence count +verbose # include file list and count +``` + +## Tasks + +Commands for task management. + +### tasks + +List tasks in the vault. Use `active` or `file` / `path` to show tasks for a specific file. + +```bash +file=<name> # filter by file name +path=<path> # filter by file path +status="<char>" # filter by status character + +total # return task count +done # show completed tasks +todo # show incomplete tasks +verbose # group by file with line numbers +format=json|tsv|csv # output format (default: text) +active # show tasks for active file +daily # show tasks from daily note +``` + +**Examples:** + +```bash +# List all tasks in the vault +tasks + +# List incomplete tasks in the vault +tasks todo + +# List completed tasks from a specific file +tasks file=Recipe done + +# List tasks from today's daily note +tasks daily + +# Count tasks in daily note +tasks daily total + +# List tasks with file paths and line numbers +tasks verbose + +# Filter by custom status (quote special chars) +tasks 'status=?' +``` + +### task + +Show or update a task. + +```bash +ref=<path:line> # task reference (path:line) +file=<name> # file name +path=<path> # file path +line=<n> # line number +status="<char>" # set status character + +toggle # toggle task status +daily # daily note +done # mark as done +todo # mark as todo +``` + +**Examples:** + +```bash +# Show task info +task file=Recipe line=8 +task ref="Recipe.md:8" + +# Toggle task completion +task ref="Recipe.md:8" toggle + +# Toggle task in daily note +task daily line=3 toggle + +# Set task status +task file=Recipe line=8 done # → [x] +task file=Recipe line=8 todo # → [ ] +task file=Recipe line=8 status=- # → [-] +task daily line=3 done # Mark daily note task as done +``` + +## Templates + +Commands for [Templates](https://obsidian.md/help/plugins/templates). + +### templates + +List templates. + +```bash +total # return template count +``` + +### template:read + +Read template content. + +```bash +name=<template> # (required) template name +title=<title> # title for variable resolution + +resolve # resolve template variables +``` + +### template:insert + +Insert template into active file. + +```bash +name=<template> # (required) template name +``` + +**Notes:** + +- `resolve` option processes `{{date}}`, `{{time}}`, `{{title}}` variables +- Use `create path=<path> template=<name>` to create a file with a template + +## Themes and snippets + +Commands for [Themes](https://obsidian.md/help/themes) and [CSS snippets](https://obsidian.md/help/snippets). + +### themes + +List installed themes. + +```bash +versions # include version numbers +``` + +### theme + +Show active theme or get info. + +```bash +name=<name> # theme name for details +``` + +### theme:set + +Set active theme. + +```bash +name=<name> # (required) theme name (empty for default) +``` + +### theme:install + +Install a community theme. + +```bash +name=<name> # (required) theme name + +enable # activate after install +``` + +### theme:uninstall + +Uninstall a theme. + +```bash +name=<name> # (required) theme name +``` + +### snippets + +List installed CSS snippets. + +### snippets:enabled + +List enabled CSS snippets. + +### snippet:enable + +Enable a CSS snippet. + +```bash +name=<name> # (required) snippet name +``` + +### snippet:disable + +Disable a CSS snippet. + +```bash +name=<name> # (required) snippet name +``` + +## Unique notes + +Commands for [Unique note creator](https://obsidian.md/help/plugins/unique-note). + +### unique + +Create unique note. + +```bash +name=<text> # note name +content=<text> # initial content +paneType=tab|split|window # pane type to open in + +open # open file after creating +``` + +## Vault + +### vault + +Show vault info. + +```bash +info=name|path|files|folders|size # return specific info only +``` + +### vaults + +List known vaults. + +```bash +total # return vault count +verbose # include vault paths +``` + +### vault:open + +Switch to a different vault (TUI only). + +```bash +name=<name> # (required) vault name +``` + +## Web viewer + +Commands for [Web viewer](https://obsidian.md/help/plugins/web-viewer). + +### web + +Open URL in web viewer. + +```bash +url=<url> # (required) URL to open + +newtab # open in new tab +``` + +## Wordcount + +Commands for [Word count](https://obsidian.md/help/plugins/word-count). + +### wordcount + +Count words and characters (default: active file). + +```bash +file=<name> # file name +path=<path> # file path + +words # return word count only +characters # return character count only +``` + +## Workspace + +Commands for [Workspace](https://obsidian.md/help/workspace) and the [Workspaces](https://obsidian.md/help/plugins/workspaces) plugin. + +### workspace + +Show workspace tree. + +```bash +ids # include workspace item IDs +``` + +### workspaces + +List saved workspaces. + +```bash +total # return workspace count +``` + +### workspace:save + +Save current layout as workspace. + +```bash +name=<name> # workspace name +``` + +### workspace:load + +Load a saved workspace. + +```bash +name=<name> # (required) workspace name +``` + +### workspace:delete + +Delete a saved workspace. + +```bash +name=<name> # (required) workspace name +``` + +### tabs + +List open tabs. + +```bash +ids # include tab IDs +``` + +### tab:open + +Open a new tab. + +```bash +group=<id> # tab group ID +file=<path> # file to open +view=<type> # view type to open +``` + +### recents + +List recently opened files. + +```bash +total # return recent file count +``` + +## Developer commands + +Commands to help you develop [Community plugins](https://obsidian.md/help/community-plugins) and [Themes](https://obsidian.md/help/themes). Learn more by heading to the [Obsidian Developer Documentation](https://docs.obsidian.md/). + +### devtools + +Toggle Electron dev tools. + +### dev:debug + +Attach/detach Chrome DevTools Protocol debugger. + +```bash +on # attach debugger +off # detach debugger +``` + +### dev:cdp + +Run a Chrome DevTools Protocol command. + +```bash +method=<CDP.method> # (required) CDP method to call +params=<json> # method parameters as JSON +``` + +### dev:errors + +Show captured JavaScript errors. + +```bash +clear # clear the error buffer +``` + +### dev:screenshot + +Take a screenshot (returns base64 PNG). + +```bash +path=<filename> # output file path +``` + +### dev:console + +Show captured console messages. + +```bash +limit=<n> # max messages to show (default 50) +level=log|warn|error|info|debug # filter by log level + +clear # clear the console buffer +``` + +### dev:css + +Inspect CSS with source locations. + +```bash +selector=<css> # (required) CSS selector +prop=<name> # filter by property name +``` + +### dev:dom + +Query DOM elements. + +```bash +selector=<css> # (required) CSS selector +attr=<name> # get attribute value +css=<prop> # get CSS property value + +total # return element count +text # return text content +inner # return innerHTML instead of outerHTML +all # return all matches instead of first +``` + +### dev:mobile + +Toggle mobile emulation. + +```bash +on # enable mobile emulation +off # disable mobile emulation +``` + +### eval + +Execute JavaScript and return result. + +```bash +code=<javascript> # (required) JavaScript code to execute +``` + +## Keyboard shortcuts + +These shortcuts are available in the [TUI](https://obsidian.md/help/cli#Use%20the%20terminal%20interface). + +### Navigation + +| Action | Shortcut | +| --- | --- | +| Move cursor left | `←` / `Ctrl+B` | +| Move cursor right (accepts suggestion at end of line) | `→` / `Ctrl+F` | +| Jump to start of line | `Ctrl+A` | +| Jump to end of line | `Ctrl+E` | +| Move back one word | `Alt+B` | +| Move forward one word | `Alt+F` | + +### Editing + +| Action | Shortcut | +| --- | --- | +| Delete to start of line | `Ctrl+U` | +| Delete to end of line | `Ctrl+K` | +| Delete previous word | `Ctrl+W` / `Alt+Backspace` | + +### Autocomplete + +| Action | Shortcut | +| --- | --- | +| Enter suggestion mode / accept selected suggestion | `Tab` | +| Exit suggestion mode | `Shift+Tab` | +| Enter suggestion mode (from fresh input) | `↓` | +| Accept first/selected suggestion (at end of line) | `→` | + +### History + +| Action | Shortcut | +| --- | --- | +| Previous history entry / navigate suggestions up | `↑` / `Ctrl+P` | +| Next history entry / navigate suggestions down | `↓` / `Ctrl+N` | +| Reverse history search (type to filter, `Ctrl+R` to cycle) | `Ctrl+R` | + +### Other + +| Action | Shortcut | +| --- | --- | +| Execute command or accept suggestion | `Enter` | +| Undo autocomplete / exit suggestion mode / clear input | `Escape` | +| Clear screen | `Ctrl+L` | +| Exit | `Ctrl+C` / `Ctrl+D` | + +## Troubleshooting + +If you are having trouble running Obsidian CLI: + +- Make sure you are using the latest [Obsidian installer version](https://obsidian.md/help/updates) (1.12.7 or above). +- If you just updated Obsidian from an earlier version, turn off the CLI setting and turn it back on again, then allow Obsidian to perform the automatic PATH registration. +- Restart your terminal after registering the CLI for the PATH changes to take effect. +- Obsidian must be running. The CLI connects to the running Obsidian instance. + +### Windows + +Obsidian CLI on Windows requires the Obsidian 1.12.7+ installer. See [Installer version update](https://obsidian.md/help/updates). + +Windows uses a terminal redirector that connects Obsidian to stdin/stdout properly. This is necessary because Obsidian normally runs as a GUI app which is incompatible with terminal outputs on Windows. When you install Obsidian 1.12.7+ the `Obsidian.com` terminal redirector will be added in the folder where you installed the `Obsidian.exe` file. + +The CLI registration adds Obsidian into your user's PATH variable, which takes only takes effect after you re-start the terminal. + +### macOS + +The CLI registration creates a symlink at `/usr/local/bin/obsidian` pointing to the CLI binary bundled inside the app. This requires administrator privileges — you will be prompted via a system dialog. + +Check that the symlink exists and points to the correct binary: + +``` +ls -l /usr/local/bin/obsidian +``` + +If the symlink is missing, create it manually: + +``` +sudo ln -sf /Applications/Obsidian.app/Contents/MacOS/obsidian-cli /usr/local/bin/obsidian +``` + +> [!note] If you previously registered the CLI with an older version of Obsidian, you may have a leftover PATH entry in ~/.zprofile. The new registration process removes this automatically, but if it remains, you can safely delete the lines starting with # Added by Obsidian from ~/.zprofile. +> + +### Linux + +The CLI registration copies the CLI binary to `~/.local/bin/obsidian`. This is done because some Linux installation methods run from temporary directories that cannot be symlinked persistently. + +Make sure `~/.local/bin` is in your PATH. Add the following to your `~/.bashrc` or `~/.zshrc` if it isn't: + +``` +export PATH="$PATH:$HOME/.local/bin" +``` + +Check that the binary exists: + +``` +ls -l ~/.local/bin/obsidian +``` + +If the binary is missing, copy it manually from the Obsidian installation directory: + +``` +cp /path/to/Obsidian/obsidian-cli ~/.local/bin/obsidian +chmod 755 ~/.local/bin/obsidian +``` \ No newline at end of file diff --git a/Clippings/Obsidian 官方 CLI 命令全景速查表.md b/Clippings/Obsidian 官方 CLI 命令全景速查表.md new file mode 100644 index 00000000..81c785b6 --- /dev/null +++ b/Clippings/Obsidian 官方 CLI 命令全景速查表.md @@ -0,0 +1,107 @@ +### Obsidian 官方 CLI 命令全景速查表 (版本要求: v1.12+) + +**核心执行逻辑说明:** +- 基础格式:`obsidian <命令> 参数名=参数值 标记参数` +- 含有空格的值必须加双引号,例如:`content="Hello world"`。 +- **标记参数**(如 `open`, `inline`, `total`)不需要赋值,写上就代表启用。 +- 以下表格中 `file=Recipe` 代表对库中名为 Recipe 的文件执行操作,实际使用时需要替换为你库中真实存在的文件名。 + +| 所属模块 | 命令 | 功能解释 | 完整样例 (直接在终端运行) | +| :-------- | :----------------------------- | :-------------------------------- | :-------------------------------------------------------------------- | +| **基础操作** | `help` | 显示帮助。加上具体命令就是查看这个命令的帮助。 | `obsidian help search` | +| | `version` | 显示当前 Obsidian 软件版本号。 | `obsidian version` | +| | `reload` | 重新加载应用窗口。 | `obsidian reload` | +| | `restart` | 重启整个 Obsidian 应用程序。 | `obsidian restart` | +| **数据库** | `bases` | 列出仓库中所有的 `.base` 数据库文件。 | `obsidian bases` | +| | `base:views` | 列出当前活动数据库文件中的视图。 | `obsidian base:views file=Contacts` | +| | `base:create` | 在数据库中创建新记录,支持指定字段内容。 | `obsidian base:create file=Contacts name="John Doe"` | +| | `base:query` | 查询数据库并返回 JSON 或 CSV 结果。 | `obsidian base:query file=Contacts view=Active format=json` | +| **书签** | `bookmarks` | 列出书签。 | `obsidian bookmarks format=json` | +| | `bookmark` | 将指定文件或查询条件保存为书签。 | `obsidian bookmark file="Project A" title="当前项目"` | +| **命令面板** | `commands` | 获取所有内置或插件命令的 ID。 | `obsidian commands filter=workspace` | +| | `command` | 强制执行一个内部命令。 | `obsidian command id=workspace:close` | +| | `hotkeys` | 列出所有快捷键映射。 | `obsidian hotkeys verbose` | +| | `hotkey` | 获取单个命令的具体快捷键。 | `obsidian hotkey id=workspace:close` | +| **日记** | `daily` | 打开当天的每日笔记。 | `obsidian daily paneType=tab` | +| | `daily:path` | 输出每日笔记的物理路径。 | `obsidian daily:path` | +| | `daily:read` | 打印当天每日笔记的文本内容。 | `obsidian daily:read` | +| | `daily:append` | 向每日笔记末尾追加文本,适合快速记录。 | `obsidian daily:append content="- [ ] 记得回复邮件"` | +| | `daily:prepend` | 向每日笔记开头插入文本。 | `obsidian daily:prepend content="# 今日重点"` | +| **文件历史** | `diff` | 对比不同历史版本。 | `obsidian diff file=Recipe from=2 to=1` | +| | `history` / `history:list` | 显示有本地历史记录的文件列表。 | `obsidian history file=Recipe` | +| | `history:read` | 读取某个历史版本的内容。 | `obsidian history:read file=Recipe version=1` | +| | `history:restore` | 将文件回滚到指定历史版本。 | `obsidian history:restore file=Recipe version=2` | +| | `history:open` | 在界面中打开文件恢复面板。 | `obsidian history:open file=Recipe` | +| **文件与目录** | `file` / `folder` | 显示文件或文件夹的元数据(大小、时间)。 | `obsidian file path="Notes/Recipe.md"` | +| | `files` / `folders` | 遍历列表,支持后缀过滤并返回总数。 | `obsidian files ext=md total` | +| | `open` | 打开文件。 | `obsidian open file=Recipe newtab` | +| | `create` | 静默创建文件,支持预设内容或应用模板。 | `obsidian create name=Meeting content="# 会议记录" overwrite` | +| | `read` | 打印文件内容,Agent 接入必用命令。 | `obsidian read file=Recipe` | +| | `append` / `prepend` | 在文件末尾或头部插入内容。 | `obsidian append file=Recipe content="追加的文本"` | +| | `move` / `rename` | 移动或重命名文件(自动更新双链)。 | `obsidian rename file=Recipe name=NewRecipe` | +| | `delete` | 删除文件,可附加 `permanent` 彻底删除。 | `obsidian delete file=Recipe permanent` | +| **链接网络** | `backlinks` | 列出指向这个文件的反向链接。 | `obsidian backlinks file=Index format=json` | +| | `links` | 列出这个文件包含的出站链接。 | `obsidian links file=Index total` | +| | `unresolved` | 提取未创建实体文件的死链接节点。 | `obsidian unresolved format=json` | +| | `orphans` | 列出没有被引用的孤立文件。 | `obsidian orphans total` | +| | `deadends` | 列出没有向外发出引用的死胡同笔记。 | `obsidian deadends total` | +| **大纲** | `outline` | 提取文件的标题树状结构。 | `obsidian outline file=Recipe format=tree` | +| **插件管理** | `plugins` / `enabled` | 列出所有插件或已开启的插件。 | `obsidian plugins filter=community` | +| | `plugins:restrict` | 开关安全模式。 | `obsidian plugins:restrict off` | +| | `plugin` / `plugin:enable` | 查询插件信息或开启插件。 | `obsidian plugin:enable id=dataview` | +| | `plugin:disable` | 禁用插件。 | `obsidian plugin:disable id=dataview` | +| | `plugin:install` / `uninstall` | 静默安装或卸载社区插件。 | `obsidian plugin:install id=dataview enable` | +| | `plugin:reload` | 热重载插件(适合开发调试)。 | `obsidian plugin:reload id=my-plugin` | +| **属性元数据** | `aliases` | 提取别名列表。 | `obsidian aliases active` | +| | `properties` | 提取 YAML 属性,支持排序。 | `obsidian properties sort=count` | +| | `property:set` | 修改属性值,规范化文本、日期等类型。 | `obsidian property:set name=status value=draft type=text file=Recipe` | +| | `property:remove` / `read` | 删除属性或提取特定属性值。 | `obsidian property:read name=status file=Recipe` | +| **发布** | `publish:site` / `list` | 获取 Publish 站点信息或已发布清单。 | `obsidian publish:list` | +| | `publish:status` / `add` | 检查变更或推送到云端。 | `obsidian publish:add changed` | +| | `publish:remove` / `open` | 撤销发布或在浏览器中查看线上页面。 | `obsidian publish:open file=Recipe` | +| **随机笔记** | `random` / `random:read` | 打开随机笔记或直接打印其内容。 | `obsidian random folder="Zettelkasten" newtab` | +| **全局搜索** | `search` | 全文检索,返回文件路径列表。 | `obsidian search query="TODO" format=json` | +| | `search:context` | 提供包含上下文的检索结果。 | `obsidian search:context query="重要" limit=5` | +| | `search:open` | 在图形界面中唤出搜索面板。 | `obsidian search:open query="会议记录"` | +| **官方同步** | `sync` / `sync:status` | 控制同步进程开关,查看状态。 | `obsidian sync on` | +| | `sync:history` / `read` | 查阅云端版本历史记录或读取内容。 | `obsidian sync:read file=Recipe version=1` | +| | `sync:restore` | 强制回滚到云端版本。 | `obsidian sync:restore file=Recipe version=2` | +| | `sync:open` / `deleted` | 打开界面查看历史或已删除文件。 | `obsidian sync:deleted` | +| **标签** | `tags` | 提取标签网络,统计频次。 | `obsidian tags sort=count format=json` | +| | `tag` | 查询单个标签的分布和出现次数。 | `obsidian tag name="#important" verbose` | +| **任务管理** | `tasks` | 检索全库或指定日记的任务状态。 | `obsidian tasks todo daily` | +| | `task` | 终端直连修改具体任务的勾选状态。 | `obsidian task ref="Recipe.md:8" toggle` | +| **模板** | `templates` / `template:read` | 查看模板库,或解析带变量的模板内容。 | `obsidian template:read name=Meeting resolve` | +| | `template:insert` | 将模板注入到活动笔记中。 | `obsidian template:insert name=Meeting` | +| **外观与样式** | `themes` / `theme` | 查看安装的主题或查看当前主题详情。 | `obsidian themes versions` | +| | `theme:set` / `install` | 切换主题,或从终端安装并启用新主题。 | `obsidian theme:install name="Minimal" enable` | +| | `theme:uninstall` | 卸载主题。 | `obsidian theme:uninstall name="Minimal"` | +| | `snippets` 相关命令 | 开关 CSS 片段。 | `obsidian snippet:enable name=custom-font` | +| **卡片盒模式** | `unique` | 按照 Zettelkasten 时间戳生成唯一笔记。 | `obsidian unique name="Idea" open` | +| **仓库管理** | `vault` / `vaults` | 获取当前仓库信息或列出所有本地仓库。 | `obsidian vaults verbose` | +| | `vault:open` | 强制软件跳转打开另一个仓库。 | `obsidian vault:open name="My Vault"` | +| **内置浏览器** | `web` | 在 Obsidian 内直接打开网页。 | `obsidian web url="https://google.com" newtab` | +| **字数统计** | `wordcount` | 统计字数或字符数。 | `obsidian wordcount file=Recipe words` | +| **工作区布局** | `workspace` 系列命令 | 保存、载入、删除窗口布局配置。 | `obsidian workspace:load name=Writing` | +| | `tabs` / `tab:open` | 管理标签页组,或者在新标签打开文件。 | `obsidian tab:open file=Recipe` | +| | `recents` | 返回最近打开文件的记录。 | `obsidian recents total` | +| **开发者模式** | `devtools` / `dev:debug` | 调出底层控制台或挂载 Chrome 调试器。 | `obsidian dev:debug on` | +| | `dev:cdp` | 顶级权限,调用 Chrome DevTools Protocol。 | `obsidian dev:cdp method="Network.enable"` | +| | `dev:screenshot` | 生成软件当前界面的 base64 图片数据流。 | `obsidian dev:screenshot path=screenshot.png` | +| | `dev:console` / `css` | 读取控制台日志,或抓取 CSS 渲染数据。 | `obsidian dev:console level=error` | +| | `dev:dom` | 用 CSS 选择器直接抓取界面 DOM 元素。 | `obsidian dev:dom selector=".cm-content" text` | +| | `dev:mobile` | 开启移动端布局模拟。 | `obsidian dev:mobile on` | +| | `eval` | 注入 JavaScript 代码到底层执行并返回结果。 | `obsidian eval code="app.vault.getFiles().length"` | + + +# Obsidian CLI 典型自动化应用场景与工作流 + +| 工作流名称 | 功能简介 | 涉及的 CLI 命令 | +| :---------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **1. 全局极速闪记 ** | **痛点**:记录一闪而过的灵感时,打开软件、等插件加载、找文件太慢。<br>**方案**:在 Raycast、Alfred 甚至手机捷径中绑定一段终端脚本。输入文字后,脚本在后台直接调用 CLI,将文字无感追加到今天的日记末尾。完全不需要唤醒 Obsidian 界面。 | `obsidian daily:append content="灵感内容"` | +| **2. 播客/视频沉浸式知识榨取** | **痛点**:看完 YouTube 视频后,手动整理笔记并建立待办事项费时费力。<br>**方案**:把链接丢给 OpenClaw 或 Telegram 机器人。AI 提取字幕并总结后,调用 CLI 直接使用你的“媒体笔记模板”创建新文件,并把提取出的行动项自动打上标签,插入到当天的日记中。 | `obsidian create name="视频名" template="Media"`<br>`obsidian daily:append content="- [ ] 待办项"` | +| **3. AI 收件箱自动分拣员 ** | **痛点**:平时用 Web Clipper 随手剪藏的网页堆积在 Inbox 文件夹,变成“赛博垃圾场”。<br>**方案**:利用 n8n 建立定时任务,让大模型批量阅读 Inbox 里的文件。理解内容后,通过 CLI 规范化注入 YAML 属性(如作者、分类),最后安全地将文件重命名并移动到对应的归档文件夹。CLI 会自动更新全库的双链,绝不断链。 | `obsidian files folder="Inbox"`<br>`obsidian read file="未命名"`<br>`obsidian property:set name="category" value="AI"`<br>`obsidian move file="旧名" to="新路径"` | +| **4. 绝对隐私的本地 RAG 对话助理** | **痛点**:搭建向量数据库(Chroma/Milvus)太繁琐,且每次笔记更新都要重新 Embedding(向量化)。<br>**方案**:在本地运行 Claude Code 或本地大模型,赋予其 CLI 执行权限。AI 会根据你的提问,自主使用带有上下文的全局搜索指令,并通过提取反向链接顺藤摸瓜,构建准确的背景知识库后再回答,完全零配置。 | `obsidian search:context query="关键词"`<br>`obsidian backlinks file="检索到的文件"`<br>`obsidian read file="目标笔记"` | +| **5. 跨平台数据库级联录入** | **痛点**:外部数据(如记账、习惯打卡)很难干净地录入到 Obsidian 的表格或 Dataview 中。<br>**方案**:结合 Obsidian 1.12 最新的 Bases(数据库)功能。通过 n8n 接收外部 Webhook(比如银行消费短信),直接让 CLI 在指定的 Base 文件中创建一条新记录,并严格按数据类型(数字、日期)注入字段。 | `obsidian base:create file="财务库" name="打车"`<br>`obsidian property:set type="number" value="30"` | +| **6. 历史知识自动唤醒与破冰** | **痛点**:记录了大量笔记但从不回顾,知识变成死水。<br>**方案**:每天早晨执行一个自动化脚本,利用 CLI 提取一篇早于 1 年前的随机笔记,交给 AI 提炼核心观点,并与你最近一周关注的标签(如 `#Agent`)进行强行跨界联想,将联想结果作为“每日思考”追加到今天日记中。 | `obsidian random:read folder="卡片盒"`<br>`obsidian tags sort=count limit=5`<br>`obsidian daily:prepend content="AI的跨界联想"` | +| **7. 批量元数据重构与清洗** | **痛点**:笔记库用久了,属性极其混乱(比如状态标签混用了 `doing`、`in-progress`、`进行中`),导致 Dataview 列表报错。<br>**方案**:让 AI 脚本遍历你的核心文件夹,读取现有的属性值,统一转换为标准格式,然后用 CLI 进行批量覆写。这种方式强制符合 YAML 语法,绝不会多一个空格或少一个引号。 | `obsidian properties`<br>`obsidian property:read name="status"`<br>`obsidian property:set name="status" value="标准值"` | \ No newline at end of file diff --git a/Clippings/Obsidian 必装 Skills.md b/Clippings/Obsidian 必装 Skills.md new file mode 100644 index 00000000..7d352e25 --- /dev/null +++ b/Clippings/Obsidian 必装 Skills.md @@ -0,0 +1,247 @@ + +| 作者 | Skill名称 | 功能描述 | 推荐度 | +| :------------------------------------------------------------------------ | :---------------------- | :------------------------------------------------------------------------------------------------------------------ | :-- | +| **Obsidian CEO @kepano**<br>GitHub: `kepano/obsidian-skills` | defuddle | 网页内容清洗工具,专门用来把杂乱的网页转换成纯净的 Markdown 格式,通过剔除广告和导航栏来帮你节省 AI 调用时的 Token 消耗。 | ✅ | +| | obsidian-cli | 让 AI Agent 能够直接调用 Obsidian 官方的命令行工具,从而实现对笔记、任务、属性的增删改查,以及对插件开发环境的调试与管理。 | ✅ | +| | obsidian-bases | 让 AI 能够创建和维护 .base 格式的配置文件,从而在 Obsidian 里生成类似 Notion 数据库的动态视图,实现对笔记的过滤、计算和结构化展示。 | ✅ | +| | obsidian-markdown | 让 AI 能够编写和编辑符合 Obsidian 官方规范的增强版 Markdown 文档,实现双向链接、内容嵌入、提示框以及结构化属性的深度集成。 | ⚠️ | +| | json-canvas | 让 AI 能够创建和编辑 Obsidian 的 .canvas 白板文件,通过 JSON 结构实现节点(文本、文件、链接、组)的布局以及它们之间的连线逻辑。 | ❌ | +| | | | | +| **Axton,著名博主@回到Axton**<br>GitHub: `axtonliu/axton-obsidian-visual-skills` | obsidian-canvas-creator | 加强版的 json canvas skill,解决了节点重叠和空间分布不均的问题。 | ✅ | +| | mermaid-visualizer | 将文本逻辑转化为专业的 Mermaid 架构图或流程图,并内置了针对 Obsidian 渲染引擎的语法纠错机制。 | ✅ | +| | excalidraw-diagram | 将文本逻辑转化为手绘风格的 Excalidraw 图表 | ✅ | +| | | | | +| **OpenClaw官方GitHub**<br>GitHub: `openclaw/openclaw/skills/obsidian` | obsidian-skill | 直接操作文件系统,也就是文件I/O,非常消耗Token,在官方已经发布Obsidian-cli的情况下,没有理由继续使用这个过时的方式。 | ❌ | +| | | | | +| **Choi Wontak**<br>GitHub: `RoundTable02/tutor-skills` | tutor-skills | 两个 Skill (tutor-setup 和 tutor) ,构成了一个“输入-内化-检测”的完整闭环:将文档或代码库一键转化为结构化的 Obsidian 知识库,之后通过无提示的交互式测验不断暴露出你的知识盲区并记录学习轨迹。 | ✅ | +| | | | | +| **EESJGong**<br>GitHub: `EESJGong/scholar-skill` | scholar-skill | 基于 OpenClaw 框架的学术研究skill,通过L1-L3的分级阅读策略在后台长时间静默解析论文,并自动将结构化笔记、核心记忆与知识冲突报告写入你的本地 Obsidian 知识库中。 | ✅ | + +## Obsidian CEO 发布的 Skills + +### defuddle +#### Skill功能 +Defuddle 主要用来抓取网页里的核心正文。它会自动删掉导航条、侧边栏和广告等干扰元素,只留下干净的 Markdown 内容。这个功能让 AI 在处理长文章、在线文档或博客时,不仅能读得更准,还能大幅减少不必要的字符开销。最近一次更新中已经支持YouTube视频链接,它获取YouTube视频字幕的方式是调用YouTube官方API,而不是我们之前熟知的`yt-dlp`组件。 + +#### 所需依赖 +1. Node.js 运行环境。 +2. 全局安装的 defuddle 包,安装命令是 `npm install -g defuddle`。 + +#### 触发条件和使用方法 +当你给 Agent 发送一个网页链接(URL),并要求它阅读、分析或总结里面的内容时,就会触发这个 Skill。 + +提示词样例: +```text +提取这个网页的正文,转成干净的 Markdown 格式:[URL]。 +``` + +#### 注意事项 +这个工具对标准 HTML 网页(如新闻、博客、官方文档)效果最好,但如果网页需要登录或者是纯动态渲染的单页应用,抓取效果可能受限。 + + + + + +### obsidian-cli + +**功能开启与基础配置** + +1. 确认系统环境,保证 Obsidian 客户端版本在 1.12 以上。 +2. 进入 Obsidian 界面,打开“设置 -> 常规 (General)”。 +3. 找到“命令行界面 (Command line interface)”开关并打开。 +4. 在弹出的窗口中确认注册到系统 Path。 +5. 保证 Obsidian 客户端处于运行状态(如果在未运行状态下执行命令,系统会自动启动客户端)。 + +验证配置成功的方法是打开操作系统的终端工具(Mac 使用 Terminal,Windows 使用 PowerShell),输入下面这个基础命令: + +```bash +obsidian daily +``` + +如果配置正确,Obsidian 会直接自动应用日记模版并在界面中生成今天的日记文件。 + + +### obsidian-bases + + +#### Skill 功能 +这个 Skill 允许 AI 通过编写 YAML 格式的 `.base` 文件来创建Obsidian bases数据库。它支持非常强大的公式系统,可以读取笔记的 Frontmatter 属性或文件元数据(如创建时间、字数等),并进行条件判断、日期运算和字符串处理。 + +#### 所需依赖 +- **Maps 插件**:如果需要使用这个 Skill 里的 map(地图)视图,必须额外安装名为 Maps 的社区插件。 + +#### 触发条件和使用方法 + +样例提示词: +```text +写一个 .base 文件来管理我的项目笔记,要求筛选出所有带 #project 标签的文件,用表格显示项目名称、截止日期和剩余天数。 +``` + +**视图限制**:目前只支持 table(表格)、cards(卡片)、list(列表)和 map(地图)这四种类型。 + +### obsidian-markdown + +#### 使用方法 + +样例提示词: +```text +根据这段会议记录生成一份 Obsidian 笔记。要求在顶部包含日期和参会人的属性,使用双向链接关联到“项目 A”笔记,并把关键决策点用important类型的提示框标注。 +``` + +**扩展**:因为skill是对格式的语法和约束,所以可以将个人obsidian格式偏好加入到skill中,以保证Agent写出的知识笔记符合你的要求。 + +### json-canvas + +#### 使用方法 + +样例提示词: +```text +创建一个名为“AI 学习路径”的 json canvas文件。中心是一个文本节点,连向三个文件节点,分别是“模型基础”、“提示词工程”和“智能体实战”。 +``` + +### obsidian-canvas-creator + +#### Skill 功能 +内置了径向布局(MindMap)和自由排版(Freeform)算法,能够自动计算节点坐标、处理连接线路径、并根据文本长度动态调整节点尺寸,从而生成整齐、美观且逻辑清晰的视觉架构。 + + +#### 使用方法 + +样例提示词: +```text +把这markdown知识笔记转换成一个mindmap格式的 Obsidian Canvas。 +``` + +#### 与 json-canvas skill 的对比 +- **侧重点不同**:`json-canvas` 主要关注底层的 JSON 语法正确性和属性定义;而 `obsidian-canvas-creator` 侧重于高层的排版策略和空间坐标计算。 +- **自动化程度不同**:使用 `json-canvas` 时,AI 可能只是机械地摆放节点;使用本 Skill 时,AI 会根据 `layout-algorithms.md` 计算每个节点的 X/Y 坐标,确保节点不重叠且间距符合视觉审美。 +- **结构化逻辑**:本 Skill 引入了特定的布局模式(如 MindMap 模式和 FreeForm模式),能自动处理父子层级关系,而不仅仅是单一的节点创建。 + +### mermaid-visualizer + +#### 使用方法 + +样例提示词: +```text +根据这段关于软件开发生命周期的描述生成一个横向的 Mermaid 流程图,要求包含不同的子图来区分开发环境和测试环境。 +``` + +### excalidraw-diagram + +#### 所需依赖 +- **Excalidraw 插件**:必须安装并启用 Excalidraw 插件。 + +#### 触发条件和使用方法 + +样例提示词: +```text +用 Excalidraw 画一个 AI 智能体的工作流动画图,按照感知、思考、行动的顺序设置动画步骤,并保存为 .excalidraw 文件。 +``` + +### tutor-skills +#### Skill 功能 +`tutor-setup` 能将任何本地文档或源代码工程自动解析,并生成带有双链、MOC 和复习题的独立 Obsidian 学习金库 (StudyVault);而 `tutor` 则读取知识库的进度数据,在终端内为你生成互动式测验,追踪并攻克你的知识薄弱点。 + +#### 所需依赖 +* **基础环境**:智能体工具如 Claude Code, OpenCode。 + +#### 使用方法 +* **使用方法**:在特定工作目录输入命令 `/tutor-setup` 触发构建,或在已有 StudyVault 的目录下输入 `/tutor` 触发复习。 + +#### Skill 的特殊机制 +* **模式自动侦测**:无需手动指定,Skill 会自动扫描当前工作目录,若发现 `package.json` 或 `pom.xml` 等工程文件会自动进入“代码库模式”;若只有 PDF/纯文本,则进入“文档模式 ”。 + +#### 注意事项 +* **Token 消耗风险**:尽管禁止了 PDF 图像读取,但“代码库模式”会递归读取大量源文件并进行架构溯源(Phase C1-C9 循环),在短时间内消耗大量 Token 额度。 + +### scholar-skill + +#### Skill 功能 +`scholar-skill` 是一个深度的个人知识管理与文献解构工作流。它通过分级标准(L1分发/L2标准阅读/L3深度解构),将原始论文(PDF/ArXiv)转化为 Obsidian 中的双链卡片、MOC(内容地图)以及系统性的反思报告。它还能记录你阅读过程中的误区并提取可复用的研究方法论。 + +#### 所需依赖 +要运行此系统,你需要配置一套相对重型的底层环境: +* **基础环境**:本地 Python 环境与预先安装好的 Obsidian 客户端(及配置好的 Vault 文件夹)。 +* **核心框架**:安装配置好的 OpenClaw 智能体框架。 +* **依赖 Skill (通过 ClawHub 安装)**: + * `obsidian-direct`(必须):用于绕过官方限制,直接通过 Python 强行读写本地 `.md` 文件。 + * `arxiv-watcher`(必须):用于通过 ArXiv API 抓取文献资源。 + * `durable-task-runner`(核心必须):用于支持 L3 级别长时间挂机任务的调度与断点续传。 + * 增强依赖(可选):`tavily`(联网抓取)、`pdf`(文本解析)、`academic-research-hub`。 + +#### 触发条件与使用方法 +* **触发条件**:当意图匹配到“阅读论文”、“L1/L2/L3阅读”、“知识内化”或“文献笔记”时自动触发工作流。 +* **使用方法(提示词样例)**: + +```text +获取这篇文献 ArXiv:2407.19354 并进行处理。 +先做 L1 快速评估,如果判定为 P0 优先级,则请在后台直接启动 L3 深度阅读。 +完成后将知识树更新推送到我的 Obsidian 对应目录。 +``` + +#### Skill 的特殊机制 +* **超长周期任务编排**:由于大模型无法一次性吃透几十页附带复杂公式的论文,L3级深度阅读被设计为长达 2.5 小时的异步挂机任务。底层深度依赖 OpenClaw 的 `durable-task-runner` 来处理多次 LLM 推演循环、API 限流等待以及崩溃恢复。 +* **周期性反思机制**:内置时间触发器逻辑,强制在周末或月末对“临时存储的知识”进行 L2/L3 反思,生成知识体系演进报告。 +* **人类确认防呆机制**:当 AI 发现新论文推翻了你旧笔记的结论时,不会直接覆写旧笔记,而是生成一份确认单放进 `0-Inbox` 文件夹,等待人类审核确认(Human in the loop)。 + +#### 注意事项与风险预警 +* **财务毁灭/算力黑洞风险**:长达 2.5 小时的 L3 循环和高频的历史知识检索(RAG)会消耗极其恐怖的 Token。如果后端挂载的是商用前沿模型(如 Claude 3.5 Sonnet 或 GPT-4o),单篇深读可能带来高昂的 API 账单。 +* **数据覆写与坏档风险**:底层的 `obsidian-direct` 使用的是民间 Python 暴力文件 I/O 脚本,而非 Obsidian 官方 CLI 通信。在文件多端同步(如 iCloud/Obsidian Sync)期间,极易引发文件冲突、内容丢失或双链索引错误。强烈建议在独立测试库中运行,并开启 Git 快照。 + + +--- + +## 核心插件 + +- **claudian**: Obsidian 第三方插件(暂未上架官方市场),适配 Claude Code。GitHub Repo: `YishenTu/claudian` +- **obsidian-agent-client**: 第三方插件(暂未上架官方市场),适配主流智能体:Claude Code, Codex, Gemini CLI, OpenCode, Qwen Code。GitHub Repo: `RAIT-09/obsidian-agent-client` + +### 1. 安装方式 + +#### 方案 A:通过 BRAT 安装 (推荐) +这是保持插件自动更新的最佳方式,适合尚未上架市场的 Beta 插件。 + +1. **安装 BRAT**: 在 Obsidian 插件市场搜索并安装 BRAT。 +2. **添加仓库**: 打开 设置 -> BRAT -> Add Beta plugin,输入仓库地址:YishenTu/claudian。 +3. **启用**: 点击 Add Plugin 等待下载完成后,在“第三方插件”列表中开启 **Claudian**。 + +#### 方案 B:手动加载 + +若网络环境无法直接连接 GitHub 仓库,可采用此法。 + +1. **获取文件**: 访问 GitHub 仓库 Releases 页面,下载 main.js、manifest.json、styles.css。 +2. **创建路径**: 进入仓库目录 .obsidian/plugins/,新建文件夹 claudian。 +3. **放置文件**: 将下载的三个文件放入该文件夹。 +4. **启用**: 重启 Obsidian 或在插件设置页刷新,手动开启。 + +### 2. 插件设置 + +#### claudian设置 +1. 打开 claudian 设置页。 +2. **基础设置**: 设置 `User Name` (如 Jason)。 +3. **自定义AI模型**: 使用兼容Anthropic接口的模型(如智谱GLM或DeepSeek)来替换Claude模型。 + +```bash +ANTHROPIC_BASE_URL=https://open.bigmodel.cn/api/anthropic +ANTHROPIC_API_KEY=你的智谱api key +ANTHROPIC_DEFAULT_OPUS_MODEL=GLM-5 +``` + +4. **连通性验证**: +- `Ctrl/Cmd + P` 调出命令面板 -> 输入 `claudian` -> 选择 `Open chat view`。 +- 发送“你好”,若回复正常则配置成功。 + +#### obsidian-agent-client设置 +以 OpenCode为例: +1. 打开 agent-client 设置页。在 Custom Agent 中,点击 `Add Custom Agent`按钮。设置 Agent ID 和 Display Name 为 OpenCode。 +2. 在命令行中输入 `where opencode` 查看 OpenCode 安装路径,把路径填入Path。 +3. Arguments 填如下信息,注意第三行是你的Obsidian Vault路径: +```bash +acp +--cwd +D:\Obsidian Vault\MyObVault +``` + +4. **连通性验证**: +- 在Agent Client的AI对话框中,发送“你好”,若回复正常则配置成功。 + diff --git a/Clippings/我做了个 Skill:让 AI 帮你生成 Logo 和图标.md b/Clippings/我做了个 Skill:让 AI 帮你生成 Logo 和图标.md new file mode 100644 index 00000000..ec3333ec --- /dev/null +++ b/Clippings/我做了个 Skill:让 AI 帮你生成 Logo 和图标.md @@ -0,0 +1,244 @@ +--- +title: "我做了个 Skill:让 AI 帮你生成 Logo 和图标" +source: "https://x.com/op7418/status/2044634498432962806" +author: + - "[[@op7418]]" +published: 2026-04-14 +created: 2026-04-16 +description: "前几天想给 CodePilot 设计个新 Logo,就跟 Gemini 聊了聊,让它生成一些 SVG 格式的 Logo。结果出乎意料——生成的几个变体都很干净、规整,几何感很强。我把这些 Logo 发到推特上,热度挺高。歸藏(guizang.ai)@op7418·4月14日Gem..." +tags: + - "clippings" +--- +![[IMG-20260416190736025.jpg|图像]] + +前几天想给 CodePilot 设计个新 Logo,就跟 Gemini 聊了聊,让它生成一些 SVG 格式的 Logo。 + +结果出乎意料——生成的几个变体都很干净、规整,几何感很强。我把这些 Logo 发到推特上,热度挺高。 + +> 4月14日 +> +> Gemini 真是做设计的一把好手,尤其是用 SVG 画 logo 只要给一些适当的引导就可以画的很好 给 Codepilot 的新 logo SVG 的部分也是他完成的,我自己在基础上精修 + +后来我又试着把这些 Logo 做成那种高级的展示图,配上专业的背景,效果很惊艳。 + +![[Image 1.jpg|图像]] + +发出去以后,发现很多朋友都有类似的需求: + +自己做了个小工具或开源项目,需要个图标或 Logo。 + +但让 AI 画图总是画不好——要么细节不对,要么文字必错,要么就是太随机。 + +找设计师吧,又觉得"不值得",毕竟只是个小项目。 + +最后只能用个丑陋的字母缩写,或者随便找个 icon 凑合。 + +其实大家的需求很简单:不需要多独特,只要干净、规整、稍微好看点就行。 + +所以我就想,能不能把这个流程做成一个 Skill,让每个人都能快速生成"够用的好 Logo"? + +## Skill 核心能力:三步生成 Logo 和高级展示图 + +**推荐在 Gemini CLI 或者其他用 Gemini 驱动的 Agent 里面用**,Gemini 的 SVG 生成能力还是很强的。 + +当然,你在 Claude Code 里也可以。 + +这个 Logo Generator Skill 的核心逻辑就三步。 + +第一步:信息收集 + +Skill 会问你几个简单的问题: + +- 产品名称是什么? +- 属于什么行业或类别?(比如 AI、金融科技、设计工具) +- 核心概念是什么?(比如连接、流动、安全、简洁) +- 有什么设计偏好?(比如极简/复杂、冷色/暖色、专业/友好) + +![[IMG-20260416190406665.jpg|图像]] + +当然你也可以直接把你的项目介绍发给 AI。 + +好的设计来自理解,而不是随机生成。 + +第二步:生成 6+ 设计变体 + +基于你提供的信息,Skill 会自动匹配设计模式库,生成至少 6 个不同风格的 SVG Logo。 + +**比如这里我把 Pi 这个开源项目的介绍发给他,他就给了六个选项:** + +1. 核心 Pi:希腊字母 π 的现代抽象化设计,由三条核心笔画构成。 +2. 二进制指令:利用圆角矩形点阵表现扩展系统的模块化特性。 +3. 流动智能:粗细不一的平行线代表代码和数据在终端中的持续流动。 +4. 系统原点:几何六边形核心代表引擎高效、结构化的基础。 +5. 语法壳:使用粗体括号将“支架”表现为一种保护壳。下划线光标代表工具的 CLI 属性。 +6. 胶囊支架:对项目中支架概念的进阶诠释。 + +![[IMG-20260416190406695.jpg|图像]] + +每个变体都会生成一个交互式网页,你可以在浏览器里对比查看,选择最喜欢的。 + +由于 AI 的特性,生成的作品一定会有好的也有差的。 + +如果你觉得这 6 个里边有哪个不喜欢,或者觉得比较丑,你可以跟它说“换一个”。 + +它就会找其他可以套用的设计模式帮你替换。 + +你要是有具体的指导意见也可以提供给它,它也会帮你修改。 + +第三步:高级展示图 + +选好 Logo 之后,Skill 会帮你生成专业的展示图。这一步提供两种方案: + +方案 1:Nano Banana 图片生成(12 种专业背景) + +用 Nano Banana(Gemini 的图片生成能力)生成高质量的静态展示图,提供 12 种专业背景风格: + +暗色系(6 种): + +- The Void(绝对虚空):纯黑 + 银色微噪点,硬核科技感 +- Frosted Horizon(磨砂穹顶):钛灰色 + 有机纹理,高端产品感 +- Fluid Abyss(流体深渊):深紫/深蓝 + 流体融合,AI 原生感 +- Studio Spotlight(物理影棚):碳灰色 + 编辑级打光,杂志质感 +- Analog Liquid(物理流体):纯色底(橙/蓝/绿)+ 金属光泽,创意品牌感 +- LED Matrix(数字硬件):发光点阵 + 数字复古,赛博朋克感 + +亮色系(6 种): + +- Editorial Paper(纸本编辑):米白色 + 纸张纹理,人文品牌感 +- Iridescent Frost(幻彩透砂):银灰色 + 全息暗示,科技硬件感 +- Morning Aura(晨雾光域):暖象牙色 + 柔和色彩,亲和 AI 感 +- Clinical Studio(无菌影棚):纯白 + 几何阴影,算法驱动感 +- UI Container(容器化界面):磨砂玻璃容器,SaaS 平台感 +- Swiss Flat(瑞士扁平):绝对扁平 + 纯色块,永恒权威感 + +![[IMG-20260416190406745.jpg|图像]] + +每种风格都有特定的视觉特征和适用场景。 + +比如做 AI 产品,可以选 Fluid Abyss 或 Morning Aura; + +做硬件产品,可以选 Iridescent Frost 或 LED Matrix。 + +方案 2:WebGL 动态背景(6 种交互式背景) + +用 WebGL Shader 生成的动态背景,可以随意缩放、支持鼠标交互,非常适合放在官网首页或产品页: + +6 种动态风格: + +- LED Matrix(LED 矩阵):90×90 高密度 LED 网格 + 流动波浪动画,自适应主题色 +- Fluid Warping(流体扭曲):域扭曲 + 分形布朗运动(FBM),3 色渐变混合 + 鼠标交互 +- Fabric Wave(织物波浪):丝绸般起伏 + 交叉波纹,深灰底色 + 微光闪烁 +- Off-Center Ripple(角落涟漪):双涟漪从对角发散 + 指数衰减,中灰底色 +- Holographic Dispersion(全息色散):虹彩流体 + RGB 色差,深钛灰底 + 棱镜般色彩分离 +- Spiral Vortex(螺旋漩涡):旋转螺旋 + 角动量,浅灰底色 + 色带 + +![[IMG-20260416190406778.jpg|图像]] + +WebGL 背景的优势: + +- 动态交互:鼠标移动时背景会实时响应,涟漪、扭曲、流动效果 +- 无限缩放:基于代码生成,放大缩小都不失真 +- 性能优化:60 FPS 流畅运行,自动适配设备像素比 +- 直接可用:生成的是 HTML 代码,可以直接嵌入网页 + +你可以把这些放在官网首页,PPT 或动态背景都可以用。 + +同一个 Logo,在不同背景下的感觉完全不同。 + +静态图片适合社交媒体、文档、海报; + +动态背景适合网页、演示、交互场景。 + +**最终交付物:**完成这三步之后,你会得到一个完整的设计资产包: + +- SVG 文件:可编辑的矢量格式 +- PNG 导出:多种尺寸(1024x1024、2048x2048 等) +- 展示图:4 种专业背景风格 +- 交互式网页:可以随时查看和对比所有变体 + +## 为什么不直接让 AI 画 Logo? + +大家看到了我是先让 Gemini 生成 SVG ,再生成展示图"。 + +而不是直接让 Nano Banana 一步到位生成 Logo 图片。 + +简单聊一下为什么这么做。 + +**图片模型生成 Logo 的局限性**: + +1. 控制精度差:你想要一个圆角半径 8px 的圆角矩形?AI 画图很难精准控制这些参数。 +2. 无法编辑:生成的是位图,想调整颜色、改个形状、调整间距?只能重新生成,碰运气。 +3. 不是矢量:放大就糊,做不了响应式设计,也没法用在不同尺寸的场景。 + +**SVG 有非常多的优势。** + +SVG 是代码,可以直接复制到 Figma 这些专业设计软件里,进行精细化调整。 + +可以做成设计体系,可以做动效,可以变成 loading 动画。 + +可以用在不同场景(网站、App、文档)。 + +矢量无损,放大缩小都不失真,适配各种分辨率。 + +![[IMG-20260416190406807.jpg|图像]] + +比如这里,我用 Gemini 生成的 CodePilot Logo SVG,导入 Figma 后: + +加了渐变色(从单色变成渐变)、加了内阴影和外发光、调整了点阵数量和大小 + +![[IMG-20260416190406837.png|图像]] + +最终的 Logo 比原始 SVG 精致很多,但基础几何结构是 AI 生成的。 + +这就是"AI 生成基础,人工精修细节"的工作流。 + +所以这个 Skill 的设计思路是:用 AI 生成可编辑的 SVG 基础,再用 AI 生成高级的展示图。 + +两步结合,既保证了可控性,又有专业的视觉效果。 + +## 使用场景拓展:不只是 Logo + +这个 Skill 的使用场景其实挺广的: + +快速生成 Vibecoding 项目图标,不需要独特性,但要专业、干净。 + +**创业团队早期品牌**预算有限,但需要视觉资产。 + +可以先用 Skill 生成,后期再找设计师优化。 + +**设计师的辅助工具** + +快速生成多个方案给客户选择,或者作为灵感来源。 + +12 种背景风格不只能用来展示 Logo,还可以: + +- 用在网页设计的背景 +- 截图做 PPT 背景 +- 展示其他产品截图(比如 App 界面、网站首页) + +## 开源 + 安装方式 + +这个 Skill 是完全开源的。 + +**GitHub 地址:**[https://github.com/op7418/logo-generator-skill](https://github.com/op7418/logo-generator-skill) + +**安装方式:** + +```text +告诉你的 AI 助手: +"安装 logo-generator skill,地址是 https://github.com/op7418/logo-generator-skill" +``` + +## 结尾 + +这个 Skill 的价值,是降低设计门槛,让每个开发者都能快速获得"够用的好 Logo"。 + +它不是要替代专业设计师。 + +设计师做的是"独特性"和"品牌故事",而 Skill 做的是"快速可用"。 + +就像 Canva 没有替代设计师,而是让更多人能做出"够用的海报"一样。 + +工具应该是开放的,让更多人能用上 AI 的设计能力。 + +**欢迎试用、反馈和贡献,觉得有帮助可以帮我点个赞,或者转发给需要的朋友。** \ No newline at end of file