Skip to content

Proper CLI: one-shot ask, chat, override flags, config show #7

@GeigerJ2

Description

@GeigerJ2

The console script today (aiida-agents -> cli.py:main) is just a bare REPL with no subcommands. We should to turn it into a thin Click CLI. Click because verdi is Click and it's the idiom we and our users already live in, so the patterns from aiida-core carry over.

The real motivation isn't the REPL, which we already have, it's one-shot mode: aiida-agents ask "what are the last 5 processes?". That's scriptable, testable, CI-able, and it's how I'd actually dogfood the agent without sitting in an interactive loop. aiida-agents chat keeps today's interactive REPL.

I'd also add --provider / --model / --profile as override flags sitting on top of the typed settings, so precedence reads flag > env > file > default. --profile especially: the agent runs against a profile, so people should be able to point it at one inline instead of doing verdi profile setdefault gymnastics first.

And aiida-agents config show: read-only, prints the effective settings and where each value came from. It's our verdi config list analogue, and it earns its place precisely because once config comes from several layers people start asking "why is it using that model and not mine?". Showing provenance answers that in one command. I'd hold off on config set / writing files until someone actually needs persistence beyond .env (YAGNI for now).

Depends on the typed-settings work, #6.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions