mcpField
L
linkgo

linkgo

github.com/wmy2981Productivity155 installsUpdated 5w ago
Repository

About linkgo

linkgo is a skill for managing LinkGo v3 navigation pages through an HTTP API. It covers service cards, page settings, icons, and configuration import and export.

Key features

  1. 01Query, add, edit, and delete service cards
  2. 02Update page settings
  3. 03Upload and list icons
  4. 04Export and import configuration
  5. 05Manage the admin password and debug information

Use cases

  1. 01Check enabled or disabled service cards
  2. 02Add or update navigation page entries
  3. 03Back up configuration before migration or restoration

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/wmy2981/skills --skill linkgo

After installing, type/linkgoin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

.claude-plugin/
plugin.json
references/
api_doc.md
scripts/
.env.example
linkgo.py

Details

From the project README

LinkGo v3 Remote Management

Manage service cards, page configuration, icons, and system settings on a LinkGo v3 navigation page via its HTTP API.

Execution Rule

Run the user's requested command directly without pre-checking dependencies, environment variables, or configuration. If something is wrong, the script will fail with a clear error — check and fix only then.

Environment Variables

VariableRequiredPurpose
LINKGO_HOST✅Instance address, e.g. http://192.168.1.100:80
LINKGO_PASSWORD✅Admin password

The script loads these from ~/.wmyskills/.env (shared across skills) automatically; a scripts/.env in the script directory takes priority if present. Use scripts/.env.example as the template — add the variables to ~/.wmyskills/.env, never overwriting an existing file.

Requirements

No external dependencies (stdlib only).

Usage

Script: scripts/linkgo.py

Connectivity
python scripts/linkgo.py ping
Query Cards
# List enabled cards (default)
python scripts/linkgo.py list

# List all cards (including disabled)
python scripts/linkgo.py list --all

# Query a specific card by id
python scripts/linkgo.py list --id my-service
Card Management
# Add a card (JSON string)
python scripts/linkgo.py add '{"id":"my-service","title":"My Service","href":"http://example.com","icon":"static/icon/link.svg","displayAddress":"example.com","description":"Service description","status":1}'

# Edit a card (merge fields by id)
python scripts/linkgo.py edit my-service '{"title":"New Title","href":"http://new.example.com"}'

# Delete a card
python scripts/linkgo.py delete my-service

# Enable / disable
python scripts/linkgo.py enable my-service
python scripts/linkgo.py disable my-service
Page Settings
python scripts/linkgo.py page '{"title":"New Title","searchEnabled":0}'
Icons
# Upload one or more icons (multi-file supported)
python scripts/linkgo.py upload-icon /path/to/icon.svg /path/to/another.png

# List available icons
python scripts/linkgo.py icons
Config Export / Import
# Export config to file
python scripts/linkgo.py export -o backup.json

# Export to stdout
python scripts/linkgo.py export

# Import config (overwrites all data)
python scripts/linkgo.py import backup.json

# Reset to default config
python scripts/linkgo.py reset
Password & Debug
# Change admin password
python scripts/linkgo.py change-password <old_password> <new_password>

# Reset password to a random 8-char one (server-local only, 127.0.0.1)
python scripts/linkgo.py reset-password

# Debug info
python scripts/linkgo.py debug

Service Card Fields

FieldRequiredTypeDescription
id✅stringUnique identifier, alphanumeric only, immutable after creation
title✅stringDisplay title, supports variable substitution
href✅stringClick target URL, supports javascript: protocol
icon❌stringIcon path (e.g. static/icon/home.svg), available after upload
displayAddress❌stringAddress text shown on the card
description❌stringDescription text, supports variable substitution and HTML
status❌int1=enabled (default), 0=disabled
Parameterized Syntax (description only)
SyntaxDescriptionExample
{link:URL,text}Plain link{link:https://example.com,Example}
{sublink:URL,text}Blue bold link{sublink:https://example.com,Details}
{modallink:URL,title,text}Iframe modal link{modallink:http://x:8080,Service,View}
{tip:content}Search keyword hint (invisible){tip:keyword1 keyword2}
{page_info}Page info placeholder (selectable text){page_info}
Static Variables
VariableReplaced withExample
{project_name}Project nameLinkGo
{project_version}Project versionv3_20250823
{addr_prefit}地址: label{addr_prefit} → 地址:
{space}Three spacesLine 1{space}Line 2
{icon_path}Icon directory{icon_path}myicon.svg → /static/icon/myicon.svg
{api_path}API directory{api_path} → /api/
{static_path}Static directory{static_path} → /static/
{pages_path}Pages directory{pages_path} → /pages/
Dynamic Variables (auto-replaced by frontend per page)
VariableDescriptionExample
{host}Hostname + portlocalhost:8080
{hostname}Hostname onlylocalhost
{port}Port8080
{protocol}Protocol (http/https)http
{pathname}Current URL path/index.html
{href}Full URLhttp://localhost:8080/index.html
%sAlias of {host}localhost:8080

Important Notes

  • Edit is incremental — only pass the fields you want to change; others stay as-is
  • Backup before import/reset — both operations overwrite all data and are irreversible
  • Icon upload limit: 1MB per file; supported formats: SVG/PNG/JPG/JPEG/GIF/WEBP/ICO
  • reset clears all custom cards
  • reset-password only works on the server host itself (the API accepts 127.0.0.1 only); LINKGO_HOST must point at http://127.0.0.1 for it
  • Password change auto-updates the server's config.php
  • After change-password / reset-password, guide the user to update LINKGO_PASSWORD in ~/.wmyskills/.env (and scripts/.env if present — it takes priority); the stored password becomes invalid and further commands will fail with 401

Reference

For the full LinkGo v3 API reference, variable substitution system, frontend modules, and deployment config, read references/api_doc.md.

Comments

Markdown supported