* feat: implement 'agent run' CLI command (#448)
- Add 'local-agi agent run' command supporting agent name or config file
- Support 'local-agi agent run <name>' to run agent from registry (pool.json)
- Support 'local-agi agent run --config <file.json>' to run from JSON config
- Extract web server into 'local-agi serve' subcommand
- Implement agent name lookup from registry
- Add JSON config file parsing and validation
- Create standalone agent execution logic
- Add proper error handling for invalid inputs
- Reuse existing service factories (actions, connectors, filters, skills)
- Environment variable fallback for config values
- No web server - agent runs in foreground with clean SIGINT/SIGTERM handling
References: https://github.com/mudler/LocalAGI/issues/448
* refactor(cmd): use pool to start agent instead of duplicating logic
Replace ~220 lines of duplicated agent initialization code in
startStandaloneAgent() with a call to pool.StartAgentStandalone().
The new pool method delegates to the existing startAgentWithConfig(),
eliminating code duplication between the CLI and the pool.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: add default help command to root
* fix: default to serve command when no subcommand provided
The e2e tests fail because when the container starts with no arguments,
the root command shows help instead of starting the web server.
Changed the root command to call serveCmd.RunE() directly when no
subcommand is provided, ensuring the web server starts by default.
This fixes the CI e2e test failure where the web server wasn't starting.
* fix: add serve subcommand to Dockerfile ENTRYPOINT
* refactor: remove unused GetRAGProvider function
* refactor: centralize env var setup in cmd/env.go
---------
Co-authored-by: localai-bot <localai-bot@noreply.github.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
This functionality makes LocalAGI harder to starts without no real gain.
While having agents avatars is nice, on generating a new agent is
required a new image to be created, which, on small HW could become a
huge computational strain.
It moves the agent list view to tabular, and cleanups the index page to
improve readability.
We can go back at this, but the motivations are mainly:
- Do not waste computation and be more lightweight
- Less models to download unless the user wants to download image models
- Let's not make look the application "weird" as images could be
generated which are not good looking at all
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
* feat: switch to official MCP SDK
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
* Drop MCP Box
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
---------
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
* feat: preload custom actions from dir
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
* fix(custom dir): allow to override name and description, strip package from code
Signed-off-by: mudler <mudler@localai.io>
---------
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
Signed-off-by: mudler <mudler@localai.io>
* feat(ui): generate avatars
Signed-off-by: mudler <mudler@localai.io>
* Show a placeholder if the image is not ready
Signed-off-by: mudler <mudler@localai.io>
* feat(avatar): generate prompt first
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
---------
Signed-off-by: mudler <mudler@localai.io>
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>