mirror of
https://github.com/YspCoder/clawgo.git
synced 2026-04-13 05:37:29 +08:00
86 lines
1.5 KiB
Go
86 lines
1.5 KiB
Go
// ClawGo - Ultra-lightweight personal AI agent
|
|
// Inspired by and based on nanobot: https://github.com/HKUDS/nanobot
|
|
// License: MIT
|
|
//
|
|
// Copyright (c) 2026 ClawGo contributors
|
|
|
|
package main
|
|
|
|
import (
|
|
"embed"
|
|
"errors"
|
|
"fmt"
|
|
"os"
|
|
|
|
"github.com/YspCoder/clawgo/pkg/config"
|
|
"github.com/YspCoder/clawgo/pkg/logger"
|
|
)
|
|
|
|
//go:embed workspace
|
|
var embeddedFiles embed.FS
|
|
|
|
var version = "0.2.1"
|
|
var buildTime = "unknown"
|
|
|
|
const logo = ">"
|
|
const gatewayServiceName = "clawgo-gateway.service"
|
|
const envRootGranted = "CLAWGO_ROOT_GRANTED"
|
|
|
|
var globalConfigPathOverride string
|
|
|
|
var errGatewayNotRunning = errors.New("gateway not running")
|
|
|
|
func main() {
|
|
globalConfigPathOverride = detectConfigPathFromArgs(os.Args)
|
|
|
|
for _, arg := range os.Args {
|
|
if arg == "--debug" || arg == "-d" {
|
|
config.SetDebugMode(true)
|
|
logger.SetLevel(logger.DEBUG)
|
|
break
|
|
}
|
|
}
|
|
|
|
os.Args = normalizeCLIArgs(os.Args)
|
|
|
|
if len(os.Args) < 2 {
|
|
printHelp()
|
|
os.Exit(1)
|
|
}
|
|
|
|
command := os.Args[1]
|
|
|
|
switch command {
|
|
case "onboard":
|
|
onboard()
|
|
case "agent":
|
|
agentCmd()
|
|
case "gateway":
|
|
gatewayCmd()
|
|
case "status":
|
|
statusCmd()
|
|
case "provider":
|
|
providerCmd()
|
|
case "config":
|
|
configCmd()
|
|
case "cron":
|
|
cronCmd()
|
|
case "channel":
|
|
channelCmd()
|
|
case "node":
|
|
nodeCmd()
|
|
case "skills":
|
|
skillsCmd()
|
|
case "tui":
|
|
tuiCmd()
|
|
case "version", "--version", "-v":
|
|
fmt.Printf("%s clawgo v%s\n", logo, version)
|
|
case "uninstall":
|
|
uninstallCmd()
|
|
default:
|
|
fmt.Printf("Unknown command: %s\n", command)
|
|
printHelp()
|
|
os.Exit(1)
|
|
}
|
|
}
|