chenhg5/cc-connect · error
unknown flag: %s
Error message
unknown flag: %s
What it means
parseDaemonInstallArgs enumerates every accepted `daemon install` flag and throws this error when the parser encounters an argument it does not recognize in its default branch. It is a strict parser: no pass-through or positional arguments are allowed, so any typo or unknown flag aborts the install before any config is written.
Source
Thrown at cmd/cc-connect/daemon.go:186
return daemon.Config{}, false, err
}
cfg.WorkDir = value
i = next
case strings.HasPrefix(arg, "--work-dir="):
cfg.WorkDir = strings.TrimPrefix(arg, "--work-dir=")
case arg == "--config" || arg == "-config":
value, next, err := daemonInstallFlagValue(args, i, arg)
if err != nil {
return daemon.Config{}, false, err
}
cfg.WorkDir = filepath.Dir(value)
i = next
case strings.HasPrefix(arg, "--config="):
cfg.WorkDir = filepath.Dir(strings.TrimPrefix(arg, "--config="))
case strings.HasPrefix(arg, "-config="):
cfg.WorkDir = filepath.Dir(strings.TrimPrefix(arg, "-config="))
default:
return daemon.Config{}, false, fmt.Errorf("unknown flag: %s", arg)
}
}
return cfg, force, nil
}
func daemonInstallFlagValue(args []string, index int, flagName string) (string, int, error) {
next := index + 1
if next >= len(args) {
return "", index, fmt.Errorf("missing value for %s", flagName)
}
return args[next], next, nil
}
// isTruthyEnv accepts the conventional opt-in values for boolean env vars.
// Anything else, including "0" / "false" / "" / unset, is treated as false.
func isTruthyEnv(v string) bool {
switch strings.ToLower(strings.TrimSpace(v)) {View on GitHub (pinned to 4000b2338a)
Solutions
- Check the exact flag names accepted: --config, --force, --log-max-size, --work-dir (and their equals forms)
- Fix typos in the flag spelling
- Run `cc-connect daemon install --help` to list valid flags
- Remove stray positional/unknown arguments from the command line
Example fix
// before cc-connect daemon install --logsize=10 // after cc-connect daemon install --log-max-size=10
Defensive patterns
Strategy: validation
Validate before calling
allowed=(--config --force --log-max-size --work-dir); for f in "$@"; do case "$f" in --*|-*) [[ " ${allowed[*]} " == *" ${f%%=*}" * ]] || { echo "unknown flag $f" >&2; exit 1; };; esac; done Prevention
- Copy flag names exactly from current --help output
- Do not reuse flags from other subcommands
- Keep daemon install invocations free of positional arguments
When it happens
Trigger: `cc-connect daemon install --logsize 10` (typo), `--log-max-sizes=10`, a leftover positional argument like a stray path, or flags valid for other subcommands (e.g. --force used where it is not supported in this form).
Common situations: Typos in flag names, mixing flags from `daemon start`/other subcommands into `daemon install`, older docs referencing flags that were renamed.
Understand the failure class
Background: "Unknown argument", "Invalid value", and "must be one of": invalid CLI argument errors explained — this error's family across 35 libraries.
Related errors
- invalid value for --log-max-size: %s
- missing value for %s
- unknown top-level command: %s
- --image requires a path
- --file requires a path
AI-assisted analysis of chenhg5/cc-connect@4000b2338a (2026-09-06).
Data as JSON: /api/errors/8e46ed5c1592fb0b.
Report an issue: GitHub.