Run any Skill in Manus
with one click
with one click
Run any Skill in Manus with one click
Get Started$pwd:
$ git log --oneline --stat
stars:0
forks:0
updated:May 6, 2026 at 07:34
SKILL.md
| name | olt |
| description | Manage OLTs via telnet. Individual tools for easy enable/disable. |
telnet_create, telnet_send, telnet_status, telnet_buttons
command_list, command_save, command_update, command_delete
inventory_list, inventory_save, inventory_update, inventory_delete
# Create new telnet session
telnet_create(host="10.0.0.1")
# Send command (returns "sent" only, use telnet_status for output)
telnet_send(host="10.0.0.1", value="show version")
# Login
telnet_send(host="10.0.0.1", value="admin,password123")
# Batch commands
telnet_send(host="10.0.0.1", value="cmd1,cmd2,cmd3")
# Button press
telnet_send(host="10.0.0.1", value="(SPACE)")
telnet_send(host="10.0.0.1", value="(QUIT)")
# Quit pagination early
telnet_send(host="10.0.0.1", value="show running-config,(QUIT)")
# ❌ SALAH
telnet_send(host="10.0.0.1", value="show version\n") # extra \n
telnet_send(host="10.0.0.1", value="admin, password") # space after comma
telnet_send(host="10.0.0.1", value="( space )") # wrong parens
Note: telnet_send returns "sent" only. Use telnet_status to get output.
# Full session output
telnet_status(host="10.0.0.1")
# Last 10 lines only
telnet_status(host="10.0.0.1", last_n=10)
Returns:
{
"connected": True,
"host": "10.0.0.1",
"last_cmd": "show version",
"last_output": ["Version: ABC", "Model: XYZ", "#"],
"lines": ["all", "session", "lines"],
"total_cmds": 5,
"session_file": "storage/telnet/10.0.0.1.jsonl"
}
# List valid buttons
telnet_buttons()
# List all commands (syntax only)
command_list(host="10.0.0.1")
# Get specific command (returns hint + description)
command_list(host="10.0.0.1", syntax="show version")
# ALL fields required, no credentials
command_save(
host="10.0.0.1",
syntax="show ont info",
hint="show ont info 0/1/0 1",
description="Show ONT info"
)
# ❌ SALAH
command_save(host="10.0.0.1", syntax="login", hint="admin,secret123") # CREDENTIALS!
# syntax required, hint/description optional
command_update(host="10.0.0.1", syntax="show ont info", hint="show ont info 0/2/0 5")
command_delete(host="10.0.0.1", syntax="show ont info")
# List all OLTs
inventory_list()
# Get specific OLT (returns full details)
inventory_list(name="OLT_01")
# ALL fields required
inventory_save(
name="OLT_01",
host="10.0.0.1",
user="admin",
password="admin123",
vendor="Huawei",
model="MA5800"
)
# name required, others optional
inventory_update(name="OLT_01", password="newpass")
inventory_delete(host="10.0.0.1")
1. command_list(host) → check if command exists
2. If NOT → explore with "?"
telnet_send(host, value="?")
telnet_send(host, value="cmd ?")
telnet_send(host, value="cmd sub ?")
3. Execute discovered command
4. MANDATORY → command_save(...)
# ✅ BENAR
telnet_send(host="10.0.0.1", value="(SPACE)") # page down
telnet_send(host="10.0.0.1", value="(QUIT)") # quit
telnet_send(host="10.0.0.1", value="(ENTER)") # newline
telnet_send(host="10.0.0.1", value="(TAB)") # autocomplete
# ❌ SALAH
telnet_send(host="10.0.0.1", value="(Q)") # wrong - use QUIT
telnet_send(host="10.0.0.1", value="[SPACE]") # wrong brackets
System auto-detects command completion using output change detection:
Use telnet_status(host) to check session state anytime.
Ask to do something on OLT
│
├─ inventory_list() → get host
│
├─ telnet_create(host)
│
├─ telnet_send(value="user,pass") → login
│
├─ command_list(host) → in DB?
│ │
│ ├─ YES → use hint
│ └─ NO → explore with "?" → command_save(...)
│
└─ telnet_send(value="hint,(QUIT)")
[HINT] Download the complete skill directory including SKILL.md and all related files