0.52.0

takahirom/arbigent0.52.0Jun 29, 2025by takahirom

AI Summary

Major CLI optimization for coding agents, introducing subcommands, properties file support, and changing default behavior to prevent accidental test execution.

Key Highlights

  • CLI now defaults to `--help` instead of running tests
  • Added `arbigent.properties` file support
  • Removed API requests and responses from `result.yaml`
  • Sophisticated CLI output with artifact paths

Breaking Changes

  • The `arbigent` command now defaults to `--help` instead of running tests
  • Removed API requests and responses from `result.yaml`

New Features

  • CLI subcommands (run, scenarios, tags)
  • Properties file support
  • CLI result summary

Full Release Notes

# 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.

```properties
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
* Add Maestro YAML Integration to README by @takahirom in https://github.com/takahirom/arbigent/pull/298
* Fix scenario generation button by @takahirom in https://github.com/takahirom/arbigent/pull/299
* Enable the CLI to be called by Vibe Coding Tools by loading secret properties from a file by @takahirom in https://github.com/takahirom/arbigent/pull/301
* Fix log level by @takahirom in https://github.com/takahirom/arbigent/pull/302
* Add CLAUDE.md by @takahirom in https://github.com/takahirom/arbigent/pull/303
* Add CLI result summary for coding agents by @takahirom in https://github.com/takahirom/arbigent/pull/304
* Redesign console output by @takahirom in https://github.com/takahirom/arbigent/pull/305
* Add `arbigent run` subcommand by @takahirom in https://github.com/takahirom/arbigent/pull/306
* Suppress SLF4J logs by @takahirom in https://github.com/takahirom/arbigent/pull/307
* Pass parameters by using just project-files property without run. prefix by @takahirom in https://github.com/takahirom/arbigent/pull/308
* Add defaultOption() which provides (source: already provided by property file) in help by @takahirom in https://github.com/takahirom/arbigent/pull/309
* Add tags command by @takahirom in https://github.com/takahirom/arbigent/pull/310
* Remove api request and response from result yaml by @takahirom in https://github.com/takahirom/arbigent/pull/311
* Add "source: already provided by property file" to all CLI properties by @takahirom in https://github.com/takahirom/arbigent/pull/312


**Full Changelog**: https://github.com/takahirom/arbigent/compare/0.51.0...0.52.0