Not in the top 1,000 by GitHub stars
ikuaidev/ikuai-cli
CLI tool for managing iKuai routers — network, VPN, firewall, users, QoS and more from the terminal. AI-agent ready.
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → c5fdb9d110d2
No earlier version was observed for comparison.
Heat
5.2- Star growth, last 7 daysNot available
- Star growth, last 24 hoursNot available
- Rank movement, last 7 daysNot available
- Commits, last 30 daysNot available
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekNot available
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
30-day change not yet available: not enough history.
Individual skills in this repository
How it works
ikuai-cli
When your agent uses it
CLI for managing iKuai routers via local v4.0 API. Use when the user asks to check router status, configure network/DNS/DHCP/VPN/firewall, manage users, view logs, or automate any iKuai router operation.
What it loads into context
Frontmatter
64 tokensAlways available to the agent
SKILL.md
961 tokensWhen the skill is activated
Reference documents
25,270 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- Prerequisites
- Output Modes
- Domain Skills
- Command Shape
- Error Handling
Scripts executed separately
Makefilecmd/ikuai-cli/main.goexamples/quickstart.shexamples/read-only.shinternal/api/client.gointernal/api/client_test.gointernal/buildinfo/buildinfo.gointernal/cliapp/confirm.gointernal/cliapp/errors.gointernal/cliapp/helpers.gointernal/cliapp/helpers_test.gointernal/cliapp/runtime.gointernal/cliapp/runtime_test.gointernal/cmd/advanced/behavior_test.gointernal/cmd/advanced/command.gointernal/cmd/auth/command.gointernal/cmd/auth/command_test.gointernal/cmd/authserver/behavior_test.gointernal/cmd/authserver/command.gointernal/cmd/completion/command.gointernal/cmd/log/behavior_test.gointernal/cmd/log/command.gointernal/cmd/monitor/command.gointernal/cmd/monitor/command_test.gointernal/cmd/network/behavior_test.gointernal/cmd/network/command.gointernal/cmd/network/command_test.gointernal/cmd/objects/behavior_test.gointernal/cmd/objects/command.gointernal/cmd/qos/behavior_test.gointernal/cmd/qos/command.gointernal/cmd/repl.gointernal/cmd/repl_test.gointernal/cmd/root.gointernal/cmd/root_test.gointernal/cmd/routing/behavior_test.gointernal/cmd/routing/command.gointernal/cmd/security/behavior_test.gointernal/cmd/security/command.gointernal/cmd/system/behavior_test.gointernal/cmd/system/command.gointernal/cmd/system/command_test.gointernal/cmd/users/behavior_test.gointernal/cmd/users/command.gointernal/cmd/version/command.gointernal/cmd/version/command_test.gointernal/cmd/vpn/behavior_test.gointernal/cmd/vpn/command.gointernal/cmd/wireless/behavior_test.gointernal/cmd/wireless/command.gointernal/output/printer.gointernal/output/printer_test.gointernal/output/table.gointernal/session/session.gointernal/session/session_test.gointernal/ssh/console.goscripts/install.shscripts/smoke.sh
Files
.github/ISSUE_TEMPLATE/bug_report.mddoc564 bytes.github/ISSUE_TEMPLATE/config.ymlasset208 bytes.github/ISSUE_TEMPLATE/feature_request.mddoc508 bytes.github/dependabot.ymlasset363 bytes.github/pull_request_template.mddoc277 bytes.github/workflows/ci.ymlasset848 bytes.github/workflows/codeql.ymlasset923 bytes.github/workflows/release.ymlasset916 bytes.gitignoreasset195 bytes.golangci.ymlasset219 bytes.goreleaser.ymlasset1,036 bytesCODE_OF_CONDUCT.mddoc2,590 bytesCONTRIBUTING.mddoc819 bytesLICENSEasset1,079 bytesMakefileruns1,560 bytesREADME.mddoc8,202 bytesREADME_CN.mddoc8,189 bytesSECURITY.mddoc612 bytesSKILL.mdcore3,332 bytesSKILL.mdcore3,332 bytescmd/ikuai-cli/main.goruns98 bytesdocs/cli-reference.mddoc17,614 bytesdocs/commands/output.mddoc1,728 bytesdocs/compatibility.mddoc4,434 bytesdocs/examples/README.mddoc1,545 bytesdocs/examples/auth-status.compact.jsonasset75 bytesdocs/examples/auth-status.pretty.jsonasset88 bytesdocs/examples/monitor-system.pretty.jsonasset20 bytesdocs/examples/system-set-response.compact.jsonasset20 bytesdocs/examples/users-accounts-list.compact.jsonasset101 bytesdocs/examples/version.compact.jsonasset88 bytesdocs/images/token-step1.pngasset208,392 bytesdocs/install.mddoc1,973 bytesdocs/releasing.mddoc911 bytesexamples/quickstart.shruns205 bytesexamples/read-only.shruns220 bytesgo.modasset382 bytesgo.sumasset1,985 bytesinternal/api/client.goruns8,931 bytesinternal/api/client_test.goruns10,516 bytesinternal/buildinfo/buildinfo.goruns83 bytesinternal/cliapp/confirm.goruns895 bytesinternal/cliapp/errors.goruns708 bytesinternal/cliapp/helpers.goruns6,961 bytesinternal/cliapp/helpers_test.goruns8,649 bytesinternal/cliapp/runtime.goruns3,551 bytesinternal/cliapp/runtime_test.goruns5,114 bytesinternal/cmd/advanced/behavior_test.goruns7,293 bytesinternal/cmd/advanced/command.goruns22,260 bytesinternal/cmd/auth/command.goruns3,439 bytesinternal/cmd/auth/command_test.goruns6,892 bytesinternal/cmd/authserver/behavior_test.goruns4,689 bytesinternal/cmd/authserver/command.goruns912 bytesinternal/cmd/completion/command.goruns1,504 bytesinternal/cmd/log/behavior_test.goruns13,151 bytesinternal/cmd/log/command.goruns5,112 bytesinternal/cmd/monitor/command.goruns23,176 bytesinternal/cmd/monitor/command_test.goruns24,782 bytesinternal/cmd/network/behavior_test.goruns7,895 bytesinternal/cmd/network/command.goruns65,799 bytesinternal/cmd/network/command_test.goruns3,279 bytesinternal/cmd/objects/behavior_test.goruns6,255 bytesinternal/cmd/objects/command.goruns8,310 bytesinternal/cmd/qos/behavior_test.goruns7,203 bytesinternal/cmd/qos/command.goruns10,854 bytesinternal/cmd/repl.goruns8,956 bytesinternal/cmd/repl_test.goruns7,763 bytesinternal/cmd/root.goruns9,408 bytesinternal/cmd/root_test.goruns11,430 bytesinternal/cmd/routing/behavior_test.goruns11,049 bytesinternal/cmd/routing/command.goruns19,120 bytesinternal/cmd/security/behavior_test.goruns8,038 bytesinternal/cmd/security/command.goruns27,822 bytesinternal/cmd/system/behavior_test.goruns7,569 bytesinternal/cmd/system/command.goruns33,136 bytesinternal/cmd/system/command_test.goruns3,760 bytesinternal/cmd/users/behavior_test.goruns9,051 bytesinternal/cmd/users/command.goruns16,182 bytesinternal/cmd/version/command.goruns1,216 bytesinternal/cmd/version/command_test.goruns2,182 bytesinternal/cmd/vpn/behavior_test.goruns5,471 bytesinternal/cmd/vpn/command.goruns32,022 bytesinternal/cmd/wireless/behavior_test.goruns5,694 bytesinternal/cmd/wireless/command.goruns15,432 bytesinternal/output/printer.goruns5,152 bytesinternal/output/printer_test.goruns27,958 bytesinternal/output/table.goruns17,403 bytesinternal/session/session.goruns3,922 bytesinternal/session/session_test.goruns4,749 bytesinternal/ssh/console.goruns4,104 bytesscripts/install.shruns3,303 bytesscripts/smoke.shruns126 bytesskills/advanced.mddoc1,875 bytesskills/auth-server.mddoc260 bytesskills/auth.mddoc220 bytesskills/batch.mddoc2,119 bytesskills/completion.mddoc587 bytesskills/log.mddoc971 bytesskills/monitor.mddoc6,077 bytesskills/network.mddoc5,029 bytesskills/objects.mddoc1,622 bytesskills/qos.mddoc1,165 bytesskills/routing.mddoc3,241 bytesskills/security.mddoc6,730 bytesskills/system.mddoc3,583 bytesskills/users.mddoc1,331 bytesskills/version.mddoc467 bytesskills/vpn.mddoc4,622 bytesskills/wireless.mddoc1,305 bytes
Read SKILL.md
# ikuai-cli — AI Agent Skill
Go CLI for managing iKuai routers through the local v4.0 HTTP API.
## When to Use
- Router status, CPU, memory, uptime, traffic
- Network: DNS, DHCP, VLAN, NAT, PPPoE, VPN
- Users: online sessions, kick, auth accounts
- Security: ACL, MAC filter, URL filter, domain blacklist
- System: logs, schedules, remote access, VRRP
## Prerequisites
View the complete source on GitHubSkills included
- ikuai-cli
Repository facts
- License
- MIT
- Created
- Apr 10, 2026
- Last pushed
- Sep 14, 2026
- Forks
- 12
- Open issues
- 5
- Project activity
- Active
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 6, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 1 note
SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- 10 dangerous shell commandsin 5 files: scripts/install.sh:5 README.md:18 README_CN.md:18 and 2 more
- 608 network referencesin 37 files: internal/cmd/monitor/command_test.go:20 internal/api/client_test.go:24 internal/cmd/log/behavior_test.go:20 and 34 more
- No hidden or obfuscated text
- 40 instruction override signalsin 11 files: internal/cmd/system/command.go:406 internal/cmd/users/command.go:161 internal/cmd/vpn/command.go:758 and 8 more
- 58 executable scriptsin 58 files: Makefile:1 cmd/ikuai-cli/main.go:1 examples/quickstart.sh:1 and 55 more
- 6 references to secretsin 4 files: README.md:78 internal/cliapp/runtime.go:69 README_CN.md:78 and 1 more
- No requests to vote in Hot
Show all 722 signals by file
.github/ISSUE_TEMPLATE/config.yml
- Network accessline 2
contact_links: - name: Questions and usage help url: https://github.com/ikuaidev/ikuai-cli/discussions - Network accessline 3
- name: Questions and usage help url: https://github.com/ikuaidev/ikuai-cli/discussions about: Use Discussions for general questions and support requests. - Network accessline 4
url: https://github.com/ikuaidev/ikuai-cli/discussions
CODE_OF_CONDUCT.md
- Network accessline 47
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project maintainers via [GitHub Discussions](https://github.com/ikuaidev/ikuai-cli/discussions) (private - Network accessline 48
reported by contacting the project maintainers via [GitHub Discussions](https://github.com/ikuaidev/ikuai-cli/discussions) (private message to a maintainer) or by opening a confidential contact through GitHub's - Network accessline 49
[GitHub Discussions](https://github.com/ikuaidev/ikuai-cli/discussions) (private - Network accessline 56
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 2.1, available at [https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - Network accessline 58
[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - Network accessline 60
[homepage]: https://www.contributor-covenant.org - Network accessline 61
[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
CONTRIBUTING.md
Makefile
README.md
- Network accessline 3
[](https://github.com/ikuaidev/ikuai-cli/actions/workflows/ci.yml) - Network accessline 4
[](https://github.com/ikuaidev/ikuai-cli/releases) - Network accessline 5
[](go.mod) - Network accessline 6
[](https://goreportcard.com/report/github.com/ikuaidev/ikuai-cli) - Network accessline 7
[](LICENSE) - Dangerous shell operationline 18
curl -fsSL https://raw.githubusercontent.com/ikuaidev/ikuai-cli/main/scripts/install.sh | sh - Network accessline 18
curl -fsSL https://raw.githubusercontent.com/ikuaidev/ikuai-cli/main/scripts/install.sh | sh - Network accessline 30
**Pre-built binary:** download from [GitHub Releases](https://github.com/ikuaidev/ikuai-cli/releases). - Network accessline 33
VERSION=0.1.0 ARCH=linux_amd64 # ARM32 Linux uses ARCH=linux_armv7 curl -fsSL "https://github.com/ikuaidev/ikuai-cli/releases/download/v${VERSION}/ikuai-cli_${ARCH}.tar.gz" -o ikuai-cli.tar.gz - Network accessline 34
# ARM32 Linux uses ARCH=linux_armv7 curl -fsSL "https://github.com/ikuaidev/ikuai-cli/releases/download/v${VERSION}/ikuai-cli_${ARCH}.tar.gz" -o ikuai-cli.tar.gz curl -fsSL "https://github.com/ikuaidev/ikuai-cli/releases/download/v${VERSION - Network accessline 35
curl -fsSL "https://github.com/ikuaidev/ikuai-cli/releases/download/v${VERSION}/ikuai-cli_${ARCH}.tar.gz" -o ikuai-cli.tar.gz - Network accessline 36
curl -fsSL "https://github.com/ikuaidev/ikuai-cli/releases/download/v${VERSION}/checksums.txt" -o checksums.txt - Dangerous shell operationline 39
sudo mv ikuai-cli /usr/local/bin/ - Network accessline 42
Windows: download `ikuai-cli_windows_amd64.zip` from [Releases](https://github.com/ikuaidev/ikuai-cli/releases). - Network accessline 47
git clone https://github.com/ikuaidev/ikuai-cli.git - Network accessline 77
export IKUAI_CLI_BASE_URL=https://192.168.1.1 - Access to secretsline 78
[Credential-related source omitted] - Network accessline 85
ikuai-cli auth set-url https://192.168.1.1 - Access to secretsline 155
[Credential-related source omitted] - Network accessline 176
**[Skills CLI](https://github.com/vercel-labs/skills) (Recommended):** - Network accessline 191
mkdir -p .agents/skills git clone https://github.com/ikuaidev/ikuai-cli.git .agents/skills/ikuai-cli - Network accessline 192
git clone https://github.com/ikuaidev/ikuai-cli.git .agents/skills/ikuai-cli - Network accessline 209
git clone https://github.com/ikuaidev/ikuai-cli.git - Network accessline 226
- [Issues](https://github.com/ikuaidev/ikuai-cli/issues) — bug reports and feature requests
README_CN.md
- Network accessline 3
[](https://github.com/ikuaidev/ikuai-cli/actions/workflows/ci.yml) - Network accessline 4
[](https://github.com/ikuaidev/ikuai-cli/releases) - Network accessline 5
[](go.mod) - Network accessline 6
[](https://goreportcard.com/report/github.com/ikuaidev/ikuai-cli) - Network accessline 7
[](LICENSE) - Dangerous shell operationline 18
curl -fsSL https://raw.githubusercontent.com/ikuaidev/ikuai-cli/main/scripts/install.sh | sh - Network accessline 18
curl -fsSL https://raw.githubusercontent.com/ikuaidev/ikuai-cli/main/scripts/install.sh | sh - Network accessline 30
**预编译二进制:** 从 [Releases 页面](https://github.com/ikuaidev/ikuai-cli/releases) 下载。 - Network accessline 33
VERSION=0.1.0 ARCH=linux_amd64 # ARM32 Linux 使用 ARCH=linux_armv7 curl -fsSL "https://github.com/ikuaidev/ikuai-cli/releases/download/v${VERSION}/ikuai-cli_${ARCH}.tar.gz" -o ikuai-cli.tar.gz - Network accessline 34
# ARM32 Linux 使用 ARCH=linux_armv7 curl -fsSL "https://github.com/ikuaidev/ikuai-cli/releases/download/v${VERSION}/ikuai-cli_${ARCH}.tar.gz" -o ikuai-cli.tar.gz curl -fsSL "https://github.com/ikuaidev/ikuai-cli/releases/download/v${VERSION}/ - Network accessline 35
curl -fsSL "https://github.com/ikuaidev/ikuai-cli/releases/download/v${VERSION}/ikuai-cli_${ARCH}.tar.gz" -o ikuai-cli.tar.gz - Network accessline 36
curl -fsSL "https://github.com/ikuaidev/ikuai-cli/releases/download/v${VERSION}/checksums.txt" -o checksums.txt - Dangerous shell operationline 39
sudo mv ikuai-cli /usr/local/bin/ - Network accessline 42
Windows:从 [Releases](https://github.com/ikuaidev/ikuai-cli/releases) 下载 `ikuai-cli_windows_amd64.zip`。 - Network accessline 47
git clone https://github.com/ikuaidev/ikuai-cli.git - Network accessline 77
export IKUAI_CLI_BASE_URL=https://192.168.1.1 - Access to secretsline 78
[Credential-related source omitted] - Network accessline 85
ikuai-cli auth set-url https://192.168.1.1 - Network accessline 176
**[Skills CLI](https://github.com/vercel-labs/skills)(推荐):** - Network accessline 191
mkdir -p .agents/skills git clone https://github.com/ikuaidev/ikuai-cli.git .agents/skills/ikuai-cli - Network accessline 192
git clone https://github.com/ikuaidev/ikuai-cli.git .agents/skills/ikuai-cli - Network accessline 209
git clone https://github.com/ikuaidev/ikuai-cli.git - Network accessline 226
- [Issues](https://github.com/ikuaidev/ikuai-cli/issues) — Bug 报告与功能建议
SECURITY.md
- Network accessline 7
Report via [GitHub Security Advisories](https://github.com/ikuaidev/ikuai-cli/security/advisories/new).
SKILL.md
- Network accessline 24
# Session (persistent) ikuai-cli auth set-url https://192.168.1.1 - Network accessline 25
ikuai-cli auth set-url https://192.168.1.1 - Network accessline 28
# OR environment variables (ephemeral) export IKUAI_CLI_BASE_URL=https://192.168.1.1 - Network accessline 29
export IKUAI_CLI_BASE_URL=https://192.168.1.1 - Access to secretsline 30
[Credential-related source omitted]
cmd/ikuai-cli/main.go
- Executable scriptline 1
Executable file
docs/cli-reference.md
- Network accessline 51
ikuai-cli auth set-url https://192.168.1.1
docs/examples/auth-status.compact.json
- Network accessline 1
{"authenticated":true,"base_url":"https://192.168.1.1","username":"admin"}
docs/examples/auth-status.pretty.json
docs/install.md
- Network accessline 5
Download a prebuilt binary from the [Releases page](https://github.com/ikuaidev/ikuai-cli/releases). - Network accessline 15
curl -fsSL "https://github.com/ikuaidev/ikuai-cli/releases/download/v${VERSION}/ikuai-cli_${ARCH}.tar.gz" \ - Network accessline 18
# Verify checksum curl -fsSL "https://github.com/ikuaidev/ikuai-cli/releases/download/v${VERSION}/checksums.txt" \ - Network accessline 19
curl -fsSL "https://github.com/ikuaidev/ikuai-cli/releases/download/v${VERSION}/checksums.txt" \ - Dangerous shell operationline 28
sudo mv ikuai-cli /usr/local/bin/ - Network accessline 34
Download `ikuai-cli_windows_amd64.zip` from the [Releases page](https://github.com/ikuaidev/ikuai-cli/releases), - Network accessline 48
git clone https://github.com/ikuaidev/ikuai-cli.git
examples/quickstart.sh
examples/read-only.sh
- Executable scriptline 1
#!/usr/bin/env sh
internal/api/client.go
- Executable scriptline 1
Executable file - Network accessline 76
RawMode bool // When true, check() returns the full envelope; otherwise only data. DryRun bool // When true, write methods (Post/Put/Patch/Delete) print the request and return without executing. http *http.Client - Network accessline 77
DryRun bool // When true, write methods (Post/Put/Patch/Delete) print the request and return without executing. http *http.Client } - Network accessline 78
http *http.Client - Network accessline 82
func New(baseURL, token string) *Client { return NewWithHTTPClient(baseURL, token, &http.Client{ - Network accessline 83
return NewWithHTTPClient(baseURL, token, &http.Client{ - Network accessline 91
// NewWithHTTPClient creates a Client with a custom http.Client. - Network accessline 92
func NewWithHTTPClient(baseURL, token string, httpClient *http.Client) *Client {
internal/api/client_test.go
- Executable scriptline 1
Executable file - Network accessline 24
func TestCheckReturnsDataFieldOnly(t *testing.T) { client := New("https://192.168.1.1", "") - Network accessline 25
client := New("https://192.168.1.1", "") - Network accessline 36
func TestCheckRawModeReturnsFullEnvelope(t *testing.T) { client := New("https://192.168.1.1", "") - Network accessline 37
client := New("https://192.168.1.1", "") - Network accessline 51
func TestCheckReturnsNullDataSynthesizesMessage(t *testing.T) { client := New("https://192.168.1.1", "") - Network accessline 52
client := New("https://192.168.1.1", "") - Network accessline 63
func TestCheckReturnsAbsentDataSynthesizesMessage(t *testing.T) { client := New("https://192.168.1.1", "") - Network accessline 64
client := New("https://192.168.1.1", "") - Network accessline 75
func TestCheckNormalizesNilToNull(t *testing.T) { client := New("https://192.168.1.1", "") - Network accessline 76
client := New("https://192.168.1.1", "") - Network accessline 86
func TestCheckErrorWithHint3001(t *testing.T) { client := New("https://192.168.1.1", "") - Network accessline 87
client := New("https://192.168.1.1", "") - Network accessline 104
func TestCheckErrorWithHint3007(t *testing.T) { client := New("https://192.168.1.1", "") - Network accessline 105
client := New("https://192.168.1.1", "") - Network accessline 116
func TestCheckErrorUnknownCode(t *testing.T) { client := New("https://192.168.1.1", "") - Network accessline 117
client := New("https://192.168.1.1", "") - Network accessline 128
func TestCheckErrorWithHint1008(t *testing.T) { client := New("https://192.168.1.1", "") - Network accessline 129
client := New("https://192.168.1.1", "") - Network accessline 140
func TestCheckCode20000IsSuccess(t *testing.T) { client := New("https://192.168.1.1", "") - Network accessline 141
client := New("https://192.168.1.1", "") - Network accessline 152
func TestCheckNonJSONResponse(t *testing.T) { client := New("https://192.168.1.1", "") - Network accessline 153
client := New("https://192.168.1.1", "") - Network accessline 163
func TestCheckEmptyMessageFallsBackToBody(t *testing.T) { client := New("https://192.168.1.1", "") - Network accessline 164
client := New("https://192.168.1.1", "") - Network accessline 178
input := `{"code":0,"message":"set to nil","data":{"comment":"nil value"}}` client := New("https://192.168.1.1", "") - Network accessline 179
client := New("https://192.168.1.1", "") - Network accessline 190
func TestCheckReturnsResultsWhenDataAbsent(t *testing.T) { client := New("https://192.168.1.1", "") - Network accessline 191
client := New("https://192.168.1.1", "") - Network accessline 202
func TestCheckPrefersDataOverResults(t *testing.T) { client := New("https://192.168.1.1", "") - Network accessline 203
client := New("https://192.168.1.1", "") - Network accessline 214
func TestCheckRowIDReturned(t *testing.T) { client := New("https://192.168.1.1", "") - Network accessline 215
client := New("https://192.168.1.1", "") - Network accessline 226
func TestCheckRowIDWithoutCode(t *testing.T) { client := New("https://192.168.1.1", "") - Network accessline 227
client := New("https://192.168.1.1", "") - Network accessline 238
func TestCheckDataTakesPriorityOverRowID(t *testing.T) { client := New("https://192.168.1.1", "") - Network accessline 239
client := New("https://192.168.1.1", "") - Network accessline 250
func TestCheckResultsTakesPriorityOverRowID(t *testing.T) { client := New("https://192.168.1.1", "") - Network accessline 251
client := New("https://192.168.1.1", "") - Network accessline 262
func TestCheckRowIDAsString(t *testing.T) { client := New("https://192.168.1.1", "") - Network accessline 263
client := New("https://192.168.1.1", "") - Network accessline 277
func TestCheckRowIDRawModeReturnsFullBody(t *testing.T) { client := New("https://192.168.1.1", "") - Network accessline 278
client := New("https://192.168.1.1", "") - Network accessline 289
func TestCheckHTTP400(t *testing.T) { client := New("https://192.168.1.1", "") - Network accessline 290
client := New("https://192.168.1.1", "") - Network accessline 297
func TestDryRunPostReturnsSyntheticJSON(t *testing.T) { client := New("https://192.168.1.1", "tok") - Network accessline 298
client := New("https://192.168.1.1", "tok") - Network accessline 316
func TestDryRunDeleteOmitsBody(t *testing.T) { client := New("https://192.168.1.1", "tok") - Network accessline 317
client := New("https://192.168.1.1", "tok") - Network accessline 332
func TestDryRunGetReturnsSyntheticJSON(t *testing.T) { client := New("https://192.168.1.1", "tok") - Network accessline 333
client := New("https://192.168.1.1", "tok")
internal/buildinfo/buildinfo.go
- Executable scriptline 1
Executable file
internal/cliapp/confirm.go
- Executable scriptline 1
Executable file
internal/cliapp/errors.go
- Executable scriptline 1
Executable file
internal/cliapp/helpers.go
- Executable scriptline 1
Executable file
internal/cliapp/helpers_test.go
- Executable scriptline 1
Executable file
internal/cliapp/runtime.go
- Executable scriptline 1
Executable file - Access to secretsline 69
[Credential-related source omitted] - Access to secretsline 73
[Credential-related source omitted] - Network accessline 86
func (r *Runtime) RequireURL() error { if r.Session == nil || r.Session.BaseURL == "" { return &AuthError{Message: "no URL configured. Run: ikuai-cli auth set-url https://192.168.1.1"} - Network accessline 87
if r.Session == nil || r.Session.BaseURL == "" { return &AuthError{Message: "no URL configured. Run: ikuai-cli auth set-url https://192.168.1.1"} } - Network accessline 88
return &AuthError{Message: "no URL configured. Run: ikuai-cli auth set-url https://192.168.1.1"}
internal/cliapp/runtime_test.go
- Executable scriptline 1
Executable file - Network accessline 13
sf := filepath.Join(t.TempDir(), "config.json") t.Setenv("IKUAI_CLI_CONFIG_FILE", sf) t.Setenv("IKUAI_CLI_BASE_URL", "https://env-router") - Network accessline 14
t.Setenv("IKUAI_CLI_CONFIG_FILE", sf) t.Setenv("IKUAI_CLI_BASE_URL", "https://env-router") t.Setenv("IKUAI_CLI_TOKEN", "env-token") - Network accessline 15
t.Setenv("IKUAI_CLI_BASE_URL", "https://env-router") - Network accessline 18
if err := session.SaveLogin("https://session-router", "session-token"); err != nil { - Network accessline 27
if r.Session.BaseURL != "https://session-router" { - Network accessline 39
sf := filepath.Join(t.TempDir(), "config.json") t.Setenv("IKUAI_CLI_CONFIG_FILE", sf) t.Setenv("IKUAI_CLI_BASE_URL", "https://env-router/") - Network accessline 40
t.Setenv("IKUAI_CLI_CONFIG_FILE", sf) t.Setenv("IKUAI_CLI_BASE_URL", "https://env-router/") t.Setenv("IKUAI_CLI_TOKEN", "env-token") - Network accessline 41
t.Setenv("IKUAI_CLI_BASE_URL", "https://env-router/") - Network accessline 49
if r.Session.BaseURL != "https://env-router" { - Network accessline 64
sf := filepath.Join(t.TempDir(), "config.json") t.Setenv("IKUAI_CLI_CONFIG_FILE", sf) t.Setenv("IKUAI_CLI_BASE_URL", "https://env-router") - Network accessline 65
t.Setenv("IKUAI_CLI_CONFIG_FILE", sf) t.Setenv("IKUAI_CLI_BASE_URL", "https://env-router") t.Setenv("IKUAI_CLI_TOKEN", "env-token") - Network accessline 66
t.Setenv("IKUAI_CLI_BASE_URL", "https://env-router") - Network accessline 113
t.Setenv("IKUAI_CLI_BASE_URL", "https://env-router") - Network accessline 142
sf := filepath.Join(t.TempDir(), "config.json") t.Setenv("IKUAI_CLI_CONFIG_FILE", sf) t.Setenv("IKUAI_CLI_BASE_URL", "https://env-router") - Network accessline 143
t.Setenv("IKUAI_CLI_CONFIG_FILE", sf) t.Setenv("IKUAI_CLI_BASE_URL", "https://env-router") t.Setenv("IKUAI_CLI_TOKEN", "env-token") - Network accessline 144
t.Setenv("IKUAI_CLI_BASE_URL", "https://env-router") - Network accessline 148
if err := session.SaveBaseURL("https://session-router"); err != nil { - Network accessline 159
t.Errorf("CredSource = %q, want %q", r.CredSource, "env") } if r.Session.BaseURL != "https://env-router" { - Network accessline 160
} if r.Session.BaseURL != "https://env-router" { t.Errorf("BaseURL = %q, want env value", r.Session.BaseURL) - Network accessline 161
if r.Session.BaseURL != "https://env-router" {
internal/cmd/advanced/behavior_test.go
- Executable scriptline 1
Executable file - Network accessline 20
[Credential-related source omitted] - Network accessline 21
[Credential-related source omitted] - Network accessline 22
[Credential-related source omitted] - Network accessline 23
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ - Network accessline 77
[Credential-related source omitted] - Network accessline 78
[Credential-related source omitted] - Network accessline 79
[Credential-related source omitted] - Network accessline 80
seenList := false app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ Transport: roundTripFunc(func(req *http.Request) (*http.Response, error) { - Network accessline 81
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ - Network accessline 135
[Credential-related source omitted] - Network accessline 136
[Credential-related source omitted] - Network accessline 137
[Credential-related source omitted] - Network accessline 138
seenGet := false app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ Transport: roundTripFunc(func(req *http.Request) (*http.Response, error) { - Network accessline 139
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ - Network accessline 141
if req.Method == http.MethodGet { seenGet = true if req.URL.String() != "https://router.local/api/v4.0/advanced-service/snmpd-config" { - Network accessline 142
seenGet = true if req.URL.String() != "https://router.local/api/v4.0/advanced-service/snmpd-config" { t.Fatalf("GET URL = %q", req.URL.String()) - Network accessline 143
if req.URL.String() != "https://router.local/api/v4.0/advanced-service/snmpd-config" { - Network accessline 149
t.Fatalf("method = %q, want %q", req.Method, http.MethodPut) } if req.URL.String() != "https://router.local/api/v4.0/advanced-service/snmpd-config" { - Network accessline 150
} if req.URL.String() != "https://router.local/api/v4.0/advanced-service/snmpd-config" { t.Fatalf("URL = %q, want %q", req.URL.String(), "https://router.local/api/v4.0/advanced-service/snmpd-config") - Network accessline 151
if req.URL.String() != "https://router.local/api/v4.0/advanced-service/snmpd-config" { - Network accessline 152
t.Fatalf("URL = %q, want %q", req.URL.String(), "https://router.local/api/v4.0/advanced-service/snmpd-config")
internal/cmd/advanced/command.go
- Executable scriptline 1
Executable file - Instruction override signalline 390
c.Aliases = []string{"rm"} } c.Flags().BoolP("yes", "y", false, "Skip confirmation prompt") - Instruction override signalline 391
} c.Flags().BoolP("yes", "y", false, "Skip confirmation prompt") return c - Instruction override signalline 392
c.Flags().BoolP("yes", "y", false, "Skip confirmation prompt")
internal/cmd/auth/command.go
- Executable scriptline 1
Executable file - Network accessline 21
Short: "Authentication", Long: `Manage authentication credentials for the iKuai router API.`, Example: ` ikuai-cli auth set-url https://192.168.1.1 - Network accessline 22
Long: `Manage authentication credentials for the iKuai router API.`, Example: ` ikuai-cli auth set-url https://192.168.1.1 ikuai-cli auth set-token MGFjYzg1ZjMt... - Network accessline 23
Example: ` ikuai-cli auth set-url https://192.168.1.1 - Network accessline 59
}, } authSetURLCmd.Flags().String("url", "", "Router base URL (e.g. https://192.168.1.1)") - Network accessline 61
authSetURLCmd.Flags().String("url", "", "Router base URL (e.g. https://192.168.1.1)") - Network accessline 116
func invalidRouterURLMessage(err error) string { return "Invalid router URL.\n\n" + err.Error() + "\n\nTry:\n ikuai-cli auth set-url 192.168.1.1\n ikuai-cli auth set-url https://192.168.1.1" - Network accessline 117
return "Invalid router URL.\n\n" + err.Error() + "\n\nTry:\n ikuai-cli auth set-url 192.168.1.1\n ikuai-cli auth set-url https://192.168.1.1"
internal/cmd/auth/command_test.go
- Executable scriptline 1
Executable file - Network accessline 17
var out bytes.Buffer cmd := New(cliapp.New(&out, &out)) cmd.SetArgs([]string{"set-url", "https://192.168.1.1/"}) - Network accessline 19
cmd.SetArgs([]string{"set-url", "https://192.168.1.1/"}) - Network accessline 27
t.Fatalf("Load() error = %v", err) } if s.BaseURL != "https://192.168.1.1" { - Network accessline 28
} if s.BaseURL != "https://192.168.1.1" { t.Fatalf("BaseURL = %q, want %q", s.BaseURL, "https://192.168.1.1") - Network accessline 29
if s.BaseURL != "https://192.168.1.1" { - Network accessline 30
t.Fatalf("BaseURL = %q, want %q", s.BaseURL, "https://192.168.1.1") - Network accessline 42
{ name: "http scheme", args: []string{"set-url", "http://192.168.1.1/"}, - Network accessline 43
name: "http scheme", args: []string{"set-url", "http://192.168.1.1/"}, want: "https://192.168.1.1", - Network accessline 44
args: []string{"set-url", "http://192.168.1.1/"}, - Network accessline 45
want: "https://192.168.1.1", - Network accessline 46
normalized: true, wantInput: "http://192.168.1.1/", }, - Network accessline 47
wantInput: "http://192.168.1.1/", - Network accessline 50
name: "missing scheme", args: []string{"set-url", "192.168.1.1"}, want: "https://192.168.1.1", - Network accessline 51
args: []string{"set-url", "192.168.1.1"}, want: "https://192.168.1.1", normalized: true, - Network accessline 52
want: "https://192.168.1.1", - Network accessline 57
name: "flag value", args: []string{"set-url", "--url", "router.local/"}, want: "https://router.local", - Network accessline 58
args: []string{"set-url", "--url", "router.local/"}, want: "https://router.local", normalized: true, - Network accessline 59
want: "https://router.local", - Network accessline 63
{ name: "path query and fragment", args: []string{"set-url", "https://192.168.1.1/login?from=cli#top"}, - Network accessline 64
name: "path query and fragment", args: []string{"set-url", "https://192.168.1.1/login?from=cli#top"}, want: "https://192.168.1.1", - Network accessline 65
args: []string{"set-url", "https://192.168.1.1/login?from=cli#top"}, - Network accessline 66
want: "https://192.168.1.1", - Network accessline 69
{ name: "already normalized", args: []string{"set-url", "https://router.local"}, - Network accessline 70
name: "already normalized", args: []string{"set-url", "https://router.local"}, want: "https://router.local", - Network accessline 71
args: []string{"set-url", "https://router.local"}, - Network accessline 72
want: "https://router.local", - Network accessline 141
{ name: "userinfo", input: "https://admin:secret@192.168.1.1", - Network accessline 142
name: "userinfo", input: "https://admin:secret@192.168.1.1", wantErr: "must not include username or password", - Network accessline 143
input: "https://admin:secret@192.168.1.1", - Network accessline 167
tt.wantErr, "ikuai-cli auth set-url 192.168.1.1", "ikuai-cli auth set-url https://192.168.1.1", - Network accessline 168
"ikuai-cli auth set-url 192.168.1.1", "ikuai-cli auth set-url https://192.168.1.1", } { - Network accessline 169
"ikuai-cli auth set-url https://192.168.1.1", - Network accessline 244
if err := session.SaveLogin("https://192.168.1.1", "token-123"); err != nil {
internal/cmd/authserver/behavior_test.go
- Executable scriptline 1
Executable file - Network accessline 23
[Credential-related source omitted] - Network accessline 24
[Credential-related source omitted] - Network accessline 25
[Credential-related source omitted] - Network accessline 26
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ - Network accessline 29
t.Fatalf("method = %q, want %q", req.Method, http.MethodGet) } if req.URL.String() != "https://router.local/api/v4.0/auth/web/services" { - Network accessline 30
} if req.URL.String() != "https://router.local/api/v4.0/auth/web/services" { t.Fatalf("URL = %q, want %q", req.URL.String(), "https://router.local/api/v4.0/auth/web/services") - Network accessline 31
if req.URL.String() != "https://router.local/api/v4.0/auth/web/services" { - Network accessline 32
t.Fatalf("URL = %q, want %q", req.URL.String(), "https://router.local/api/v4.0/auth/web/services") - Network accessline 55
[Credential-related source omitted] - Network accessline 56
[Credential-related source omitted] - Network accessline 57
[Credential-related source omitted] - Network accessline 58
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{
internal/cmd/authserver/command.go
- Executable scriptline 1
Executable file
internal/cmd/completion/command.go
- Executable scriptline 1
Executable file
internal/cmd/log/behavior_test.go
- Executable scriptline 1
Executable file - Network accessline 20
[Credential-related source omitted] - Network accessline 21
[Credential-related source omitted] - Network accessline 22
[Credential-related source omitted] - Network accessline 23
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ - Network accessline 69
[Credential-related source omitted] - Network accessline 70
[Credential-related source omitted] - Network accessline 71
[Credential-related source omitted] - Network accessline 72
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ - Network accessline 75
t.Fatalf("method = %q, want %q", req.Method, http.MethodDelete) } if req.URL.String() != "https://router.local/api/v4.0/log/system" { - Network accessline 76
} if req.URL.String() != "https://router.local/api/v4.0/log/system" { t.Fatalf("URL = %q, want %q", req.URL.String(), "https://router.local/api/v4.0/log/system") - Network accessline 77
if req.URL.String() != "https://router.local/api/v4.0/log/system" { - Network accessline 78
t.Fatalf("URL = %q, want %q", req.URL.String(), "https://router.local/api/v4.0/log/system") - Network accessline 101
[Credential-related source omitted] - Network accessline 102
[Credential-related source omitted] - Network accessline 103
[Credential-related source omitted] - Network accessline 104
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ - Network accessline 135
[Credential-related source omitted] - Network accessline 136
[Credential-related source omitted] - Network accessline 137
[Credential-related source omitted] - Network accessline 138
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ - Network accessline 169
[Credential-related source omitted] - Network accessline 170
[Credential-related source omitted] - Network accessline 171
[Credential-related source omitted] - Network accessline 172
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ - Network accessline 238
[Credential-related source omitted] - Network accessline 239
[Credential-related source omitted] - Network accessline 240
[Credential-related source omitted] - Network accessline 241
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ - Network accessline 277
[Credential-related source omitted] - Network accessline 278
[Credential-related source omitted] - Network accessline 279
[Credential-related source omitted] - Network accessline 280
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ - Network accessline 310
[Credential-related source omitted] - Network accessline 311
[Credential-related source omitted] - Network accessline 312
[Credential-related source omitted] - Network accessline 313
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ - Network accessline 316
t.Fatalf("method = %q, want %q", req.Method, http.MethodDelete) } if req.URL.String() != "https://router.local/api/v4.0/log/url-visits" { - Network accessline 317
} if req.URL.String() != "https://router.local/api/v4.0/log/url-visits" { t.Fatalf("URL = %q, want %q", req.URL.String(), "https://router.local/api/v4.0/log/url-visits") - Network accessline 318
if req.URL.String() != "https://router.local/api/v4.0/log/url-visits" { - Network accessline 319
t.Fatalf("URL = %q, want %q", req.URL.String(), "https://router.local/api/v4.0/log/url-visits") - Network accessline 336
[Credential-related source omitted] - Network accessline 337
[Credential-related source omitted] - Network accessline 338
[Credential-related source omitted] - Network accessline 339
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{
internal/cmd/log/command.go
- Executable scriptline 1
Executable file - Instruction override signalline 92
}, } c.Flags().BoolP("yes", "y", false, "Skip confirmation prompt") - Instruction override signalline 93
} c.Flags().BoolP("yes", "y", false, "Skip confirmation prompt") return c - Instruction override signalline 94
c.Flags().BoolP("yes", "y", false, "Skip confirmation prompt")
internal/cmd/monitor/command.go
- Executable scriptline 1
Executable file
internal/cmd/monitor/command_test.go
- Executable scriptline 1
Executable file - Network accessline 20
[Credential-related source omitted] - Network accessline 21
[Credential-related source omitted] - Network accessline 22
[Credential-related source omitted] - Network accessline 23
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ - Network accessline 26
t.Fatalf("method = %q, want %q", req.Method, http.MethodGet) } if req.URL.String() != "https://router.local/api/v4.0/monitoring/system" { - Network accessline 27
} if req.URL.String() != "https://router.local/api/v4.0/monitoring/system" { t.Fatalf("URL = %q, want %q", req.URL.String(), "https://router.local/api/v4.0/monitoring/system") - Network accessline 28
if req.URL.String() != "https://router.local/api/v4.0/monitoring/system" { - Network accessline 29
t.Fatalf("URL = %q, want %q", req.URL.String(), "https://router.local/api/v4.0/monitoring/system") - Network accessline 55
[Credential-related source omitted] - Network accessline 56
[Credential-related source omitted] - Network accessline 57
[Credential-related source omitted] - Network accessline 58
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ - Network accessline 91
[Credential-related source omitted] - Network accessline 92
[Credential-related source omitted] - Network accessline 93
[Credential-related source omitted] - Network accessline 94
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ - Network accessline 125
[Credential-related source omitted] - Network accessline 126
[Credential-related source omitted] - Network accessline 127
[Credential-related source omitted] - Network accessline 128
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ - Network accessline 151
[Credential-related source omitted] - Network accessline 152
[Credential-related source omitted] - Network accessline 153
[Credential-related source omitted] - Network accessline 154
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ - Network accessline 181
[Credential-related source omitted] - Network accessline 182
[Credential-related source omitted] - Network accessline 183
[Credential-related source omitted] - Network accessline 184
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ - Network accessline 218
[Credential-related source omitted] - Network accessline 219
[Credential-related source omitted] - Network accessline 220
[Credential-related source omitted] - Network accessline 221
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ - Network accessline 276
[Credential-related source omitted] - Network accessline 277
[Credential-related source omitted] - Network accessline 278
[Credential-related source omitted] - Network accessline 279
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ - Network accessline 331
[Credential-related source omitted] - Network accessline 332
[Credential-related source omitted] - Network accessline 333
[Credential-related source omitted] - Network accessline 334
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ - Network accessline 406
[Credential-related source omitted] - Network accessline 407
[Credential-related source omitted] - Network accessline 408
[Credential-related source omitted] - Network accessline 409
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ - Network accessline 433
[Credential-related source omitted] - Network accessline 434
[Credential-related source omitted] - Network accessline 435
[Credential-related source omitted] - Network accessline 436
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ - Network accessline 473
[Credential-related source omitted] - Network accessline 474
[Credential-related source omitted] - Network accessline 475
[Credential-related source omitted] - Network accessline 476
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ - Network accessline 509
[Credential-related source omitted] - Network accessline 510
[Credential-related source omitted] - Network accessline 511
[Credential-related source omitted] - Network accessline 512
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ - Network accessline 548
[Credential-related source omitted] - Network accessline 549
[Credential-related source omitted] - Network accessline 550
[Credential-related source omitted] - Network accessline 551
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ - Network accessline 584
[Credential-related source omitted] - Network accessline 585
[Credential-related source omitted] - Network accessline 586
[Credential-related source omitted] - Network accessline 587
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ - Network accessline 614
[Credential-related source omitted] - Network accessline 615
[Credential-related source omitted] - Network accessline 616
[Credential-related source omitted] - Network accessline 617
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ - Network accessline 651
[Credential-related source omitted] - Network accessline 652
[Credential-related source omitted] - Network accessline 653
[Credential-related source omitted] - Network accessline 654
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{
internal/cmd/network/behavior_test.go
- Executable scriptline 1
Executable file - Network accessline 20
[Credential-related source omitted] - Network accessline 21
[Credential-related source omitted] - Network accessline 22
[Credential-related source omitted] - Network accessline 23
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ - Network accessline 65
[Credential-related source omitted] - Network accessline 66
[Credential-related source omitted] - Network accessline 67
[Credential-related source omitted] - Network accessline 68
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ - Network accessline 118
[Credential-related source omitted] - Network accessline 119
[Credential-related source omitted] - Network accessline 120
[Credential-related source omitted] - Network accessline 121
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ - Network accessline 156
[Credential-related source omitted] - Network accessline 157
[Credential-related source omitted] - Network accessline 158
[Credential-related source omitted] - Network accessline 159
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ - Network accessline 190
[Credential-related source omitted] - Network accessline 192
[Credential-related source omitted] - Network accessline 208
[Credential-related source omitted] - Network accessline 210
[Credential-related source omitted]
internal/cmd/network/command.go
- Executable scriptline 1
Executable file - Instruction override signalline 2249
}, } c.Flags().BoolP("yes", "y", false, "Skip confirmation prompt") - Instruction override signalline 2250
} c.Flags().BoolP("yes", "y", false, "Skip confirmation prompt") return c - Instruction override signalline 2251
c.Flags().BoolP("yes", "y", false, "Skip confirmation prompt")
internal/cmd/network/command_test.go
- Executable scriptline 1
Executable file
internal/cmd/objects/behavior_test.go
- Executable scriptline 1
Executable file - Network accessline 20
[Credential-related source omitted] - Network accessline 21
[Credential-related source omitted] - Network accessline 22
[Credential-related source omitted] - Network accessline 23
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ - Network accessline 67
[Credential-related source omitted] - Network accessline 68
[Credential-related source omitted] - Network accessline 69
[Credential-related source omitted] - Network accessline 70
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ - Network accessline 73
t.Fatalf("method = %q, want %q", req.Method, http.MethodPost) } if req.URL.String() != "https://router.local/api/v4.0/ip-objects" { - Network accessline 74
} if req.URL.String() != "https://router.local/api/v4.0/ip-objects" { t.Fatalf("URL = %q, want %q", req.URL.String(), "https://router.local/api/v4.0/ip-objects") - Network accessline 75
if req.URL.String() != "https://router.local/api/v4.0/ip-objects" { - Network accessline 76
t.Fatalf("URL = %q, want %q", req.URL.String(), "https://router.local/api/v4.0/ip-objects") - Network accessline 111
[Credential-related source omitted] - Network accessline 112
[Credential-related source omitted] - Network accessline 113
[Credential-related source omitted] - Network accessline 114
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ - Network accessline 117
t.Fatalf("method = %q, want %q", req.Method, http.MethodPost) } if req.URL.String() != "https://router.local/api/v4.0/time-objects" { - Network accessline 118
} if req.URL.String() != "https://router.local/api/v4.0/time-objects" { t.Fatalf("URL = %q, want %q", req.URL.String(), "https://router.local/api/v4.0/time-objects") - Network accessline 119
if req.URL.String() != "https://router.local/api/v4.0/time-objects" { - Network accessline 120
t.Fatalf("URL = %q, want %q", req.URL.String(), "https://router.local/api/v4.0/time-objects")
internal/cmd/objects/command.go
internal/cmd/qos/behavior_test.go
- Executable scriptline 1
Executable file - Network accessline 20
[Credential-related source omitted] - Network accessline 21
[Credential-related source omitted] - Network accessline 22
[Credential-related source omitted] - Network accessline 23
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ - Network accessline 100
[Credential-related source omitted] - Network accessline 101
[Credential-related source omitted] - Network accessline 102
[Credential-related source omitted] - Network accessline 103
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ - Network accessline 106
t.Fatalf("method = %q, want %q", req.Method, http.MethodPost) } if req.URL.String() != "https://router.local/api/v4.0/network/qos/ip" { - Network accessline 107
} if req.URL.String() != "https://router.local/api/v4.0/network/qos/ip" { t.Fatalf("URL = %q, want %q", req.URL.String(), "https://router.local/api/v4.0/network/qos/ip") - Network accessline 108
if req.URL.String() != "https://router.local/api/v4.0/network/qos/ip" { - Network accessline 109
t.Fatalf("URL = %q, want %q", req.URL.String(), "https://router.local/api/v4.0/network/qos/ip") - Network accessline 147
[Credential-related source omitted] - Network accessline 148
[Credential-related source omitted] - Network accessline 149
[Credential-related source omitted] - Network accessline 150
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ - Network accessline 153
case http.MethodGet: seenGet = true if req.URL.String() != "https://router.local/api/v4.0/network/qos/ip/7" { - Network accessline 154
seenGet = true if req.URL.String() != "https://router.local/api/v4.0/network/qos/ip/7" { t.Fatalf("GET URL = %q, want %q", req.URL.String(), "https://router.local/api/v4.0/network/qos/ip/7") - Network accessline 155
if req.URL.String() != "https://router.local/api/v4.0/network/qos/ip/7" { - Network accessline 156
t.Fatalf("GET URL = %q, want %q", req.URL.String(), "https://router.local/api/v4.0/network/qos/ip/7") } return jsonResponse(`{"code":0,"data":{"id":7,"tagname":"old-qos","enabled":"yes","upload":100,"download":200,"type":0,"protocol - Network accessline 159
case http.MethodPut: seenPut = true if req.URL.String() != "https://router.local/api/v4.0/network/qos/ip/7" { - Network accessline 160
seenPut = true if req.URL.String() != "https://router.local/api/v4.0/network/qos/ip/7" { t.Fatalf("PUT URL = %q, want %q", req.URL.String(), "https://router.local/api/v4.0/network/qos/ip/7") - Network accessline 161
if req.URL.String() != "https://router.local/api/v4.0/network/qos/ip/7" { - Network accessline 162
t.Fatalf("PUT URL = %q, want %q", req.URL.String(), "https://router.local/api/v4.0/network/qos/ip/7")
internal/cmd/qos/command.go
internal/cmd/repl.go
- Executable scriptline 1
Executable file
internal/cmd/repl_test.go
internal/cmd/root.go
- Executable scriptline 1
Executable file
internal/cmd/root_test.go
- Executable scriptline 1
Executable file - Network accessline 16
func TestAuthStatusWithFormatJSON(t *testing.T) { testRootCommand(t) if err := session.SaveBaseURL("https://192.168.1.1"); err != nil { - Network accessline 17
testRootCommand(t) if err := session.SaveBaseURL("https://192.168.1.1"); err != nil { t.Fatalf("SaveBaseURL() error = %v", err) - Network accessline 18
if err := session.SaveBaseURL("https://192.168.1.1"); err != nil { - Network accessline 38
got := strings.TrimSpace(out.String()) want := `{"base_url":"https://192.168.1.1","source":"token"}` - Network accessline 39
want := `{"base_url":"https://192.168.1.1","source":"token"}`
internal/cmd/routing/behavior_test.go
- Executable scriptline 1
Executable file - Network accessline 21
[Credential-related source omitted] - Network accessline 22
[Credential-related source omitted] - Network accessline 23
[Credential-related source omitted] - Network accessline 24
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ - Network accessline 75
[Credential-related source omitted] - Network accessline 76
[Credential-related source omitted] - Network accessline 77
[Credential-related source omitted] - Network accessline 78
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ - Network accessline 129
[Credential-related source omitted] - Network accessline 130
[Credential-related source omitted] - Network accessline 131
[Credential-related source omitted] - Network accessline 132
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ - Network accessline 135
t.Fatalf("method = %q, want %q", req.Method, http.MethodPost) } if req.URL.String() != "https://router.local/api/v4.0/routing/five-tuple-rules" { - Network accessline 136
} if req.URL.String() != "https://router.local/api/v4.0/routing/five-tuple-rules" { t.Fatalf("URL = %q, want %q", req.URL.String(), "https://router.local/api/v4.0/routing/five-tuple-rules") - Network accessline 137
if req.URL.String() != "https://router.local/api/v4.0/routing/five-tuple-rules" { - Network accessline 138
t.Fatalf("URL = %q, want %q", req.URL.String(), "https://router.local/api/v4.0/routing/five-tuple-rules") - Network accessline 174
[Credential-related source omitted] - Network accessline 175
[Credential-related source omitted] - Network accessline 176
[Credential-related source omitted] - Network accessline 177
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ - Network accessline 204
[Credential-related source omitted] - Network accessline 205
[Credential-related source omitted] - Network accessline 206
[Credential-related source omitted] - Network accessline 207
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ Transport: roundTripFunc(func(req *http.Request) (*http.Response, error) { requests++ - Network accessline 272
[Credential-related source omitted] - Network accessline 274
[Credential-related source omitted] - Network accessline 290
[Credential-related source omitted] - Network accessline 292
[Credential-related source omitted]
internal/cmd/routing/command.go
- Executable scriptline 1
Executable file - Instruction override signalline 430
c.Aliases = []string{"rm"} } c.Flags().BoolP("yes", "y", false, "Skip confirmation prompt") - Instruction override signalline 431
} c.Flags().BoolP("yes", "y", false, "Skip confirmation prompt") return c - Instruction override signalline 432
c.Flags().BoolP("yes", "y", false, "Skip confirmation prompt")
internal/cmd/security/behavior_test.go
- Executable scriptline 1
Executable file - Network accessline 20
[Credential-related source omitted] - Network accessline 21
[Credential-related source omitted] - Network accessline 22
[Credential-related source omitted] - Network accessline 23
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ - Network accessline 85
[Credential-related source omitted] - Network accessline 86
[Credential-related source omitted] - Network accessline 87
[Credential-related source omitted] - Network accessline 88
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ - Network accessline 91
t.Fatalf("method = %q, want %q", req.Method, http.MethodPut) } if req.URL.String() != "https://router.local/api/v4.0/security/mac-mode" { - Network accessline 92
} if req.URL.String() != "https://router.local/api/v4.0/security/mac-mode" { t.Fatalf("URL = %q, want %q", req.URL.String(), "https://router.local/api/v4.0/security/mac-mode") - Network accessline 93
if req.URL.String() != "https://router.local/api/v4.0/security/mac-mode" { - Network accessline 94
t.Fatalf("URL = %q, want %q", req.URL.String(), "https://router.local/api/v4.0/security/mac-mode") - Network accessline 126
[Credential-related source omitted] - Network accessline 127
[Credential-related source omitted] - Network accessline 128
[Credential-related source omitted] - Network accessline 129
step := 0 app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ Transport: roundTripFunc(func(req *http.Request) (*http.Response, error) { - Network accessline 130
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ - Network accessline 181
[Credential-related source omitted] - Network accessline 183
[Credential-related source omitted] - Network accessline 200
[Credential-related source omitted] - Network accessline 202
[Credential-related source omitted] - Network accessline 225
[Credential-related source omitted] - Network accessline 227
[Credential-related source omitted]
internal/cmd/security/command.go
- Executable scriptline 1
Executable file - Instruction override signalline 762
c.Aliases = []string{"rm"} } c.Flags().BoolP("yes", "y", false, "Skip confirmation prompt") - Instruction override signalline 763
} c.Flags().BoolP("yes", "y", false, "Skip confirmation prompt") return c - Instruction override signalline 764
c.Flags().BoolP("yes", "y", false, "Skip confirmation prompt")
internal/cmd/system/behavior_test.go
- Executable scriptline 1
Executable file - Network accessline 20
[Credential-related source omitted] - Network accessline 21
[Credential-related source omitted] - Network accessline 22
[Credential-related source omitted] - Network accessline 23
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ - Network accessline 71
[Credential-related source omitted] - Network accessline 72
[Credential-related source omitted] - Network accessline 73
[Credential-related source omitted] - Network accessline 74
calls := 0 app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ Transport: roundTripFunc(func(req *http.Request) (*http.Response, error) { - Network accessline 75
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ - Network accessline 80
t.Fatalf("method = %q, want %q", req.Method, http.MethodGet) } if req.URL.String() != "https://router.local/api/v4.0/system/basic/config" { - Network accessline 81
} if req.URL.String() != "https://router.local/api/v4.0/system/basic/config" { t.Fatalf("URL = %q, want %q", req.URL.String(), "https://router.local/api/v4.0/system/basic/config") - Network accessline 82
if req.URL.String() != "https://router.local/api/v4.0/system/basic/config" { - Network accessline 83
t.Fatalf("URL = %q, want %q", req.URL.String(), "https://router.local/api/v4.0/system/basic/config") - Network accessline 88
t.Fatalf("method = %q, want %q", req.Method, http.MethodPut) } if req.URL.String() != "https://router.local/api/v4.0/system/basic/config" { - Network accessline 89
} if req.URL.String() != "https://router.local/api/v4.0/system/basic/config" { t.Fatalf("URL = %q, want %q", req.URL.String(), "https://router.local/api/v4.0/system/basic/config") - Network accessline 90
if req.URL.String() != "https://router.local/api/v4.0/system/basic/config" { - Network accessline 91
t.Fatalf("URL = %q, want %q", req.URL.String(), "https://router.local/api/v4.0/system/basic/config") - Network accessline 132
[Credential-related source omitted] - Network accessline 133
[Credential-related source omitted] - Network accessline 134
[Credential-related source omitted] - Network accessline 135
calls := 0 app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ Transport: roundTripFunc(func(req *http.Request) (*http.Response, error) { - Network accessline 136
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ - Network accessline 171
[Credential-related source omitted] - Network accessline 172
[Credential-related source omitted] - Network accessline 173
[Credential-related source omitted] - Network accessline 174
calls := 0 app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ Transport: roundTripFunc(func(req *http.Request) (*http.Response, error) { - Network accessline 175
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{
internal/cmd/system/command.go
- Executable scriptline 1
Executable file - Instruction override signalline 406
} deleteCmd.Flags().String("srcfile", "", "Backup filename (required)") deleteCmd.Flags().BoolP("yes", "y", false, "Skip confirmation prompt") - Instruction override signalline 407
deleteCmd.Flags().String("srcfile", "", "Backup filename (required)") deleteCmd.Flags().BoolP("yes", "y", false, "Skip confirmation prompt") cliapp.MarkFlagsRequired(deleteCmd, "srcfile") - Instruction override signalline 408
deleteCmd.Flags().BoolP("yes", "y", false, "Skip confirmation prompt") - Instruction override signalline 641
}, } cmd.Flags().BoolP("yes", "y", false, "Skip confirmation prompt") - Instruction override signalline 642
} cmd.Flags().BoolP("yes", "y", false, "Skip confirmation prompt") return cmd - Instruction override signalline 643
cmd.Flags().BoolP("yes", "y", false, "Skip confirmation prompt")
internal/cmd/system/command_test.go
- Executable scriptline 1
Executable file
internal/cmd/users/behavior_test.go
- Executable scriptline 1
Executable file - Network accessline 19
[Credential-related source omitted] - Network accessline 20
[Credential-related source omitted] - Network accessline 21
[Credential-related source omitted] - Network accessline 22
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ - Network accessline 73
[Credential-related source omitted] - Network accessline 74
[Credential-related source omitted] - Network accessline 75
[Credential-related source omitted] - Network accessline 76
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ - Network accessline 115
[Credential-related source omitted] - Network accessline 116
[Credential-related source omitted] - Network accessline 117
[Credential-related source omitted] - Network accessline 118
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ - Network accessline 121
t.Fatalf("method = %q, want %q", req.Method, http.MethodGet) } if req.URL.String() != "https://router.local/api/v4.0/auth/online-users/42" { - Network accessline 122
} if req.URL.String() != "https://router.local/api/v4.0/auth/online-users/42" { t.Fatalf("URL = %q, want %q", req.URL.String(), "https://router.local/api/v4.0/auth/online-users/42") - Network accessline 123
if req.URL.String() != "https://router.local/api/v4.0/auth/online-users/42" { - Network accessline 124
t.Fatalf("URL = %q, want %q", req.URL.String(), "https://router.local/api/v4.0/auth/online-users/42") - Network accessline 147
[Credential-related source omitted] - Network accessline 148
[Credential-related source omitted] - Network accessline 149
[Credential-related source omitted] - Network accessline 150
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ - Network accessline 153
t.Fatalf("method = %q, want %q", req.Method, http.MethodDelete) } if req.URL.String() != "https://router.local/api/v4.0/auth/online-users/42" { - Network accessline 154
} if req.URL.String() != "https://router.local/api/v4.0/auth/online-users/42" { t.Fatalf("URL = %q, want %q", req.URL.String(), "https://router.local/api/v4.0/auth/online-users/42") - Network accessline 155
if req.URL.String() != "https://router.local/api/v4.0/auth/online-users/42" { - Network accessline 156
t.Fatalf("URL = %q, want %q", req.URL.String(), "https://router.local/api/v4.0/auth/online-users/42") - Network accessline 173
[Credential-related source omitted] - Network accessline 174
[Credential-related source omitted] - Network accessline 175
[Credential-related source omitted] - Network accessline 176
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ - Network accessline 179
t.Fatalf("method = %q, want %q", req.Method, http.MethodPost) } if req.URL.String() != "https://router.local/api/v4.0/auth/users" { - Network accessline 180
} if req.URL.String() != "https://router.local/api/v4.0/auth/users" { t.Fatalf("URL = %q, want %q", req.URL.String(), "https://router.local/api/v4.0/auth/users") - Network accessline 181
if req.URL.String() != "https://router.local/api/v4.0/auth/users" { - Network accessline 182
t.Fatalf("URL = %q, want %q", req.URL.String(), "https://router.local/api/v4.0/auth/users") - Network accessline 218
[Credential-related source omitted] - Network accessline 219
[Credential-related source omitted] - Network accessline 220
[Credential-related source omitted] - Network accessline 221
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ - Network accessline 224
t.Fatalf("method = %q, want %q", req.Method, http.MethodPost) } if req.URL.String() != "https://router.local/api/v4.0/auth/packages" { - Network accessline 225
} if req.URL.String() != "https://router.local/api/v4.0/auth/packages" { t.Fatalf("URL = %q, want %q", req.URL.String(), "https://router.local/api/v4.0/auth/packages") - Network accessline 226
if req.URL.String() != "https://router.local/api/v4.0/auth/packages" { - Network accessline 227
t.Fatalf("URL = %q, want %q", req.URL.String(), "https://router.local/api/v4.0/auth/packages")
internal/cmd/users/command.go
- Executable scriptline 1
Executable file - Instruction override signalline 161
}, } kickCmd.Flags().BoolP("yes", "y", false, "Skip confirmation prompt") - Instruction override signalline 162
} kickCmd.Flags().BoolP("yes", "y", false, "Skip confirmation prompt") usersCmd.AddCommand(kickCmd) - Instruction override signalline 163
kickCmd.Flags().BoolP("yes", "y", false, "Skip confirmation prompt") - Instruction override signalline 374
c.Aliases = []string{"rm"} } c.Flags().BoolP("yes", "y", false, "Skip confirmation prompt") - Instruction override signalline 375
} c.Flags().BoolP("yes", "y", false, "Skip confirmation prompt") return c - Instruction override signalline 376
c.Flags().BoolP("yes", "y", false, "Skip confirmation prompt")
internal/cmd/version/command.go
- Executable scriptline 1
Executable file
internal/cmd/version/command_test.go
- Executable scriptline 1
Executable file
internal/cmd/vpn/behavior_test.go
- Executable scriptline 1
Executable file - Network accessline 20
[Credential-related source omitted] - Network accessline 21
[Credential-related source omitted] - Network accessline 22
[Credential-related source omitted] - Network accessline 23
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ - Network accessline 98
[Credential-related source omitted] - Network accessline 99
[Credential-related source omitted] - Network accessline 100
[Credential-related source omitted] - Network accessline 101
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ - Network accessline 104
t.Fatalf("method = %q, want %q", req.Method, http.MethodPost) } if req.URL.String() != "https://router.local/api/v4.0/vpn/wireguard/tunnel-1/peers" { - Network accessline 105
} if req.URL.String() != "https://router.local/api/v4.0/vpn/wireguard/tunnel-1/peers" { t.Fatalf("URL = %q, want %q", req.URL.String(), "https://router.local/api/v4.0/vpn/wireguard/tunnel-1/peers") - Network accessline 106
if req.URL.String() != "https://router.local/api/v4.0/vpn/wireguard/tunnel-1/peers" { - Network accessline 107
t.Fatalf("URL = %q, want %q", req.URL.String(), "https://router.local/api/v4.0/vpn/wireguard/tunnel-1/peers") - Network accessline 142
[Credential-related source omitted] - Network accessline 144
[Credential-related source omitted]
internal/cmd/vpn/command.go
- Executable scriptline 1
Executable file - Instruction override signalline 758
}, } c.Flags().BoolP("yes", "y", false, "Skip confirmation prompt") - Instruction override signalline 759
} c.Flags().BoolP("yes", "y", false, "Skip confirmation prompt") return c - Instruction override signalline 760
c.Flags().BoolP("yes", "y", false, "Skip confirmation prompt") - Instruction override signalline 787
c.Aliases = []string{"rm"} } c.Flags().BoolP("yes", "y", false, "Skip confirmation prompt") - Instruction override signalline 788
} c.Flags().BoolP("yes", "y", false, "Skip confirmation prompt") return c - Instruction override signalline 789
c.Flags().BoolP("yes", "y", false, "Skip confirmation prompt")
internal/cmd/wireless/behavior_test.go
- Executable scriptline 1
Executable file - Network accessline 19
[Credential-related source omitted] - Network accessline 20
[Credential-related source omitted] - Network accessline 21
[Credential-related source omitted] - Network accessline 22
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ - Network accessline 84
[Credential-related source omitted] - Network accessline 85
[Credential-related source omitted] - Network accessline 86
[Credential-related source omitted] - Network accessline 87
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ - Network accessline 90
t.Fatalf("method = %q, want %q", req.Method, http.MethodGet) } if req.URL.String() != "https://router.local/api/v4.0/wireless/vlan/rules/9" { - Network accessline 91
} if req.URL.String() != "https://router.local/api/v4.0/wireless/vlan/rules/9" { t.Fatalf("URL = %q, want %q", req.URL.String(), "https://router.local/api/v4.0/wireless/vlan/rules/9") - Network accessline 92
if req.URL.String() != "https://router.local/api/v4.0/wireless/vlan/rules/9" { - Network accessline 93
t.Fatalf("URL = %q, want %q", req.URL.String(), "https://router.local/api/v4.0/wireless/vlan/rules/9") - Network accessline 116
[Credential-related source omitted] - Network accessline 117
[Credential-related source omitted] - Network accessline 118
[Credential-related source omitted] - Network accessline 119
seenGet := false app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ Transport: roundTripFunc(func(req *http.Request) (*http.Response, error) { - Network accessline 120
app.APIClient = api.NewWithHTTPClient(app.Session.BaseURL, app.Session.Token, &http.Client{ - Network accessline 121
Transport: roundTripFunc(func(req *http.Request) (*http.Response, error) { if req.URL.String() != "https://router.local/api/v4.0/wireless/vlan/rules/9" { t.Fatalf("URL = %q, want %q", req.URL.String(), "https://router.local/api/v4.0/ - Network accessline 122
if req.URL.String() != "https://router.local/api/v4.0/wireless/vlan/rules/9" { - Network accessline 123
t.Fatalf("URL = %q, want %q", req.URL.String(), "https://router.local/api/v4.0/wireless/vlan/rules/9")
internal/cmd/wireless/command.go
- Executable scriptline 1
Executable file - Instruction override signalline 352
c.Aliases = []string{"rm"} } c.Flags().BoolP("yes", "y", false, "Skip confirmation prompt") - Instruction override signalline 353
} c.Flags().BoolP("yes", "y", false, "Skip confirmation prompt") return c - Instruction override signalline 354
c.Flags().BoolP("yes", "y", false, "Skip confirmation prompt")
internal/output/printer.go
- Executable scriptline 1
Executable file
internal/output/printer_test.go
- Executable scriptline 1
Executable file
internal/output/table.go
- Executable scriptline 1
Executable file
internal/session/session.go
- Executable scriptline 1
Executable file
internal/session/session_test.go
- Executable scriptline 1
Executable file - Network accessline 13
if err := SaveBaseURL("https://192.168.1.1/"); err != nil { - Network accessline 19
t.Fatalf("Load() error = %v", err) } if s.BaseURL != "https://192.168.1.1" { - Network accessline 20
} if s.BaseURL != "https://192.168.1.1" { t.Fatalf("BaseURL = %q, want %q", s.BaseURL, "https://192.168.1.1") - Network accessline 21
if s.BaseURL != "https://192.168.1.1" { - Network accessline 22
t.Fatalf("BaseURL = %q, want %q", s.BaseURL, "https://192.168.1.1") - Network accessline 38
name: "bare host", input: "192.168.1.1", want: "https://192.168.1.1", - Network accessline 39
input: "192.168.1.1", want: "https://192.168.1.1", wantChanged: true, - Network accessline 40
want: "https://192.168.1.1", - Network accessline 43
{ name: "http scheme", input: "http://192.168.1.1/", - Network accessline 44
name: "http scheme", input: "http://192.168.1.1/", want: "https://192.168.1.1", - Network accessline 45
input: "http://192.168.1.1/", - Network accessline 46
want: "https://192.168.1.1", - Network accessline 49
{ name: "path query and fragment", input: "https://192.168.1.1/login?from=cli#top", - Network accessline 50
name: "path query and fragment", input: "https://192.168.1.1/login?from=cli#top", want: "https://192.168.1.1", - Network accessline 51
input: "https://192.168.1.1/login?from=cli#top", - Network accessline 52
want: "https://192.168.1.1", - Network accessline 56
name: "host with port", input: "192.168.1.1:8443", want: "https://192.168.1.1:8443", - Network accessline 57
input: "192.168.1.1:8443", want: "https://192.168.1.1:8443", wantChanged: true, - Network accessline 58
want: "https://192.168.1.1:8443", - Network accessline 61
{ name: "already normalized", input: "https://router.local", - Network accessline 62
name: "already normalized", input: "https://router.local", want: "https://router.local", - Network accessline 63
input: "https://router.local", - Network accessline 64
want: "https://router.local", - Network accessline 101
{ name: "userinfo", input: "https://admin:secret@192.168.1.1", - Network accessline 102
name: "userinfo", input: "https://admin:secret@192.168.1.1", wantErr: "must not include username or password", - Network accessline 103
input: "https://admin:secret@192.168.1.1", - Network accessline 129
if err := SaveLogin("https://192.168.1.1", "token-xyz"); err != nil { - Network accessline 180
if err := SaveLogin("https://192.168.1.1", "token"); err != nil {
internal/ssh/console.go
- Executable scriptline 1
Executable file
scripts/install.sh
- Executable scriptline 1
#!/bin/sh - Network accessline 3
# # Usage: # curl -fsSL https://raw.githubusercontent.com/ikuaidev/ikuai-cli/main/scripts/install.sh | sh - Network accessline 4
# Usage: # curl -fsSL https://raw.githubusercontent.com/ikuaidev/ikuai-cli/main/scripts/install.sh | sh # curl -fsSL ... | sh -s -- --version v0.1.0 - Dangerous shell operationline 5
# curl -fsSL https://raw.githubusercontent.com/ikuaidev/ikuai-cli/main/scripts/install.sh | sh - Network accessline 5
# curl -fsSL https://raw.githubusercontent.com/ikuaidev/ikuai-cli/main/scripts/install.sh | sh - Dangerous shell operationline 6
# curl -fsSL ... | sh -s -- --version v0.1.0 - Network accessline 6
# curl -fsSL ... | sh -s -- --version v0.1.0 - Dangerous shell operationline 7
# curl -fsSL ... | sh -s -- --dir ~/.local/bin - Network accessline 7
# curl -fsSL ... | sh -s -- --dir ~/.local/bin - Network accessline 46
if [ -z "$VERSION" ]; then VERSION="$(curl -fsSL "https://api.github.com/repos/${REPO}/releases/latest" \ - Network accessline 47
VERSION="$(curl -fsSL "https://api.github.com/repos/${REPO}/releases/latest" \ - Network accessline 56
ARCHIVE="${BINARY}_${OS}_${ARCH}.tar.gz" URL="https://github.com/${REPO}/releases/download/${VERSION}/${ARCHIVE}" - Network accessline 57
URL="https://github.com/${REPO}/releases/download/${VERSION}/${ARCHIVE}" - Network accessline 58
CHECKSUM_URL="https://github.com/${REPO}/releases/download/${VERSION}/checksums.txt" - Dangerous shell operationline 61
trap 'rm -rf "$TMPDIR"' EXIT - Network accessline 63
echo "Downloading ${BINARY} ${VERSION} (${OS}/${ARCH})..." curl -fsSL "$URL" -o "${TMPDIR}/${ARCHIVE}" - Network accessline 64
curl -fsSL "$URL" -o "${TMPDIR}/${ARCHIVE}" - Network accessline 65
curl -fsSL "$CHECKSUM_URL" -o "${TMPDIR}/checksums.txt" - Network accessline 96
echo "Get started:" echo " ${BINARY} auth set-url https://192.168.1.1" - Network accessline 97
echo " ${BINARY} auth set-url https://192.168.1.1"
scripts/smoke.sh
- Executable scriptline 1
#!/usr/bin/env sh
skills/auth.md
- Network accessline 9
ikuai-cli auth set-url https://192.168.1.1
skills/batch.md
- Network accessline 16
ROUTER="https://192.168.1.1"
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Signal confidence: 500 facts
- Network access in prose of documentationCODE_OF_CONDUCT.md:47Low confidence
- Network access in prose of documentationCODE_OF_CONDUCT.md:48Low confidence
- Network access in prose of documentationCODE_OF_CONDUCT.md:49Low confidence
- Network access in prose of documentationCODE_OF_CONDUCT.md:56Low confidence
- Network access in prose of documentationCODE_OF_CONDUCT.md:58Low confidence
- Network access in prose of documentationCODE_OF_CONDUCT.md:60Low confidence
- Network access in prose of documentationCODE_OF_CONDUCT.md:61Low confidence
- Network access in prose of documentationCONTRIBUTING.md:7Low confidence
- Network access in prose of documentationCONTRIBUTING.md:8Low confidence
- Network access in code of documentationCONTRIBUTING.md:14Low confidence
- Executable script in code of a file that runsMakefile:1High confidence
- Dangerous shell operation in code of a file that runsMakefile:47High confidence
- Network access in prose of documentationREADME.md:3Low confidence
- Network access in prose of documentationREADME.md:4Low confidence
- Network access in prose of documentationREADME.md:5Low confidence
- Network access in prose of documentationREADME.md:6Low confidence
- Network access in prose of documentationREADME.md:7Low confidence
- Dangerous shell operation in code of documentationREADME.md:18Low confidence
- Network access in code of documentationREADME.md:18Low confidence
- Network access in prose of documentationREADME.md:30Low confidence
- Network access in code of documentationREADME.md:33Low confidence
- Network access in code of documentationREADME.md:34Low confidence
- Network access in code of documentationREADME.md:35Low confidence
- Network access in code of documentationREADME.md:36Low confidence
- Dangerous shell operation in code of documentationREADME.md:39Low confidence
- Network access in prose of documentationREADME.md:42Low confidence
- Network access in code of documentationREADME.md:47Low confidence
- Network access in code of documentationREADME.md:77Low confidence
- Access to secrets in code of documentation: a variable, placeholder or call, not a stored valueREADME.md:78Low confidence
- Network access in code of documentationREADME.md:85Low confidence
- Access to secrets in prose of documentation: a variable, placeholder or call, not a stored valueREADME.md:155Low confidence
- Network access in prose of documentationREADME.md:176Low confidence
- Network access in code of documentationREADME.md:191Low confidence
- Network access in code of documentationREADME.md:192Low confidence
- Network access in code of documentationREADME.md:209Low confidence
- Network access in prose of documentationREADME.md:226Low confidence
- Network access in prose of documentationREADME_CN.md:3Low confidence
- Network access in prose of documentationREADME_CN.md:4Low confidence
- Network access in prose of documentationREADME_CN.md:5Low confidence
- Network access in prose of documentationREADME_CN.md:6Low confidence
- Network access in prose of documentationREADME_CN.md:7Low confidence
- Dangerous shell operation in code of documentationREADME_CN.md:18Low confidence
- Network access in code of documentationREADME_CN.md:18Low confidence
- Network access in prose of documentationREADME_CN.md:30Low confidence
- Network access in code of documentationREADME_CN.md:33Low confidence
- Network access in code of documentationREADME_CN.md:34Low confidence
- Network access in code of documentationREADME_CN.md:35Low confidence
- Network access in code of documentationREADME_CN.md:36Low confidence
- Dangerous shell operation in code of documentationREADME_CN.md:39Low confidence
- Network access in prose of documentationREADME_CN.md:42Low confidence
and 450 more
Only the first 500 facts are listed.
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Compatible | Standard SKILL.md SKILL.md | .claude/skills/<skill-name>/ |
| Codex | Compatible | Standard SKILL.md SKILL.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.