Astrai Code Review

SuspiciousAudited by ClawScan on May 10, 2026.

Overview

The skill’s code-review purpose is coherent, but it can automatically forward code plus multiple provider API keys to an external routing service, and an under-documented base URL override can change where that sensitive data goes.

Install only if you are comfortable sending reviewed code and any configured provider API keys to Astrai. Use a restricted environment with only the intended keys, check that ASTRAI_BASE_URL is not set unexpectedly, and avoid using this on repositories or secrets that cannot be shared with third-party AI services.

Findings (5)

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

What this means

If provider keys are present in your environment, the skill may use and forward multiple third-party AI account credentials when you run a review.

Why it was flagged

The plugin automatically collects every supported provider API key present in the environment, not just a single key explicitly selected for a review.

Skill content
def _collect_provider_keys() -> Dict[str, str]:
    """Collect all available provider API keys from environment."""
    keys = {}
    for provider, env_var in PROVIDER_KEY_MAP.items():
        val = os.getenv(env_var, "")
        if val:
            keys[provider] = val
Recommendation

Use a dedicated environment or skill config with only the keys you intend Astrai to access, and avoid exposing unrelated provider keys to the OpenClaw process.

What this means

Your Anthropic, OpenAI, Google, or other provider keys could be exposed to the routing service, giving that service delegated ability to make calls using your accounts.

Why it was flagged

The collected provider API keys are placed into a request header and sent to the Astrai API whenever BYOK mode is active.

Skill content
headers["X-Astrai-Provider-Keys"] = json.dumps(self.provider_keys)
Recommendation

Treat BYOK mode as sharing provider credentials with Astrai. Prefer limited-scope keys, separate billing limits, and provider-side usage monitoring.

What this means

If ASTRAI_BASE_URL is set unexpectedly, code diffs and API credentials could be sent to a different server than the one documented.

Why it was flagged

The actual API destination can be changed by an undeclared environment variable, while the skill documentation lists only the as-trai.com endpoint.

Skill content
ASTRAI_BASE_URL = os.getenv("ASTRAI_BASE_URL", "https://as-trai.com/v1")
Recommendation

Before use, verify ASTRAI_BASE_URL is unset or points to the intended HTTPS endpoint; the skill should document this override and ideally reject non-HTTPS destinations.

What this means

Private or proprietary code included in a diff may leave your machine and be processed by Astrai and routed model providers.

Why it was flagged

The skill clearly discloses that code diffs and file context are sent to an external AI routing endpoint for review.

Skill content
`https://as-trai.com/v1/chat/completions` | Code review inference via intelligent routing | Diff content, file context, review instructions
Recommendation

Only run reviews on code you are allowed to share with external AI services, and review your organization’s policy before using this on sensitive repositories.

What this means

A user may believe provider keys remain local, when the implementation requires sending them to the routing service.

Why it was flagged

The wording may understate the trust boundary: the included plugin code forwards provider keys to Astrai in BYOK mode so Astrai can call providers using those keys.

Skill content
**BYOK (Bring Your Own Keys)**: Your provider API keys stay with you. Astrai decides which model to use, then calls the provider using YOUR key.
Recommendation

The documentation should clearly state that BYOK provider keys are transmitted to Astrai, how they are protected, and what limits or retention guarantees apply.