Skip to content

0.52.0

Choose a tag to compare

@takahirom takahirom released this 29 Jun 12:30
· 454 commits to main since this release
ad9ce42

Optimizing the CLI for Coding Agents

We have been exploring various ways to make Arbigent more accessible to coding agents, including prototyping a Model Context Protocol (MCP).

However, we recognized that fully implementing MCP at this stage would require users to prepare specific configuration files (like mcp.json), while also increasing our maintenance load by having to support both the CLI and MCP interfaces.

After consideration, we determined that optimizing the existing Command-Line Interface (CLI) is a more direct and beneficial first step for everyone. It provides immediate value to users without requiring them to adopt a new protocol, and allows us to focus our efforts.

Therefore, this release is focused on enhancing the CLI to be significantly more agent-friendly. We have introduced several updates, including some breaking changes, to achieve this goal.

Breaking Change: The arbigent command now defaults to --help instead of running tests

Previously, executing arbigent without any arguments would automatically run tests. This behavior was not ideal as it limited the CLI's extensibility. We have now introduced run, scenarios, and tags as subcommands. This change helps coding agents discover the available commands and options more effectively.


$ arbigent
Usage: arbigent [\<options\>] \<command\> [\<args\>]...

Options:
\-h, --help   Show this message and exit

Commands:
run
scenarios
tags

Support for arbigent.properties

(We have received feedback on this and may implement changes in the future, such as requiring the use of .arbigent/settings.local.yaml. However, the core concept will remain unchanged.)

Previously, running the arbigent command required passing configuration options and API keys as environment variables, like so:

arbigent --os=android --project-file=sample-test/src/main/resources/projects/e2e-test-android.yaml --ai-type=gemini --gemini-model-name=gemini-1.5-flash

However, this method is cumbersome for AI agents. To simplify the process, we have added support for an arbigent.properties file.

ai-type=azureopenai

azure-openai-endpoint=https://xxxxxxxxx.openai.azure.com/openai/deployments/xxxxx/
azure-openai-api-version=2025-xx-xx
azure-openai-model-name=gpt-4o
azure-openai-api-key=xxxxxxxxxxxxxxxxxx

project-file=tests/arbigent-project.yml
os=android

Now, when a coding agent calls arbigent run --help, it can see which parameters have already been set via the properties file, indicated by (source: already provided by property file). This means the agent does not need to add these parameters again.

Options for Azure OpenAI:
  --azure-openai-endpoint=<text>               Endpoint URL (source: already provided by property file)
  --azure-openai-api-version=<text>            API version (source: already provided by property file)
  --azure-openai-model-name=<text>             Model name (default: gpt-4o) (source: already provided by property file)
  --azure-openai-api-key, --azure-openai-key=<text> API key (source: already provided by property file)

Options:
  --ai-type=(openai|gemini|azureopenai)  Type of AI to use (source: already provided by property file)
  --ai-api-logging                       Enable AI API debug logging
  --os=(android|ios|web)                 Target operating system (source: already provided by property file)
  --project-file=<text>                  Path to the project YAML file (source: already provided by property file)

As a result, both you and your coding agents can now simply run:

arbigent run

Sophisticated CLI Output

We have reduced the verbosity of debug logs in the standard output. Additionally, the paths to the result artifacts are now clearly displayed at the beginning of a test run, making them easily accessible for coding agents.

 11:48:43 I: 📁 Results will be saved to:
 11:48:43 I:   • YAML Results: /Users/xxx/arbigent-result/result.yml
 11:48:43 I:   • Screenshots: /Users/xxx/arbigent-result/screenshots/
 11:48:43 I:   • API Logs: /Users/xxx/arbigent-result/jsonls/
 11:48:43 I:   • HTML Report: /Users/xxx/arbigent-result/report.html

Breaking Change: Removed API requests and responses from result.yaml

We found that result.yaml could become too large for coding agents to load efficiently due to the inclusion of full API request and response logs. Since these logs are already available in the jsonls/ directory, we have removed them from result.yaml to significantly reduce the file size.

What's Changed

Full Changelog: 0.51.0...0.52.0