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.
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.
The plugin automatically collects every supported provider API key present in the environment, not just a single key explicitly selected for a review.
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] = valUse 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.
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.
The collected provider API keys are placed into a request header and sent to the Astrai API whenever BYOK mode is active.
headers["X-Astrai-Provider-Keys"] = json.dumps(self.provider_keys)
Treat BYOK mode as sharing provider credentials with Astrai. Prefer limited-scope keys, separate billing limits, and provider-side usage monitoring.
If ASTRAI_BASE_URL is set unexpectedly, code diffs and API credentials could be sent to a different server than the one documented.
The actual API destination can be changed by an undeclared environment variable, while the skill documentation lists only the as-trai.com endpoint.
ASTRAI_BASE_URL = os.getenv("ASTRAI_BASE_URL", "https://as-trai.com/v1")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.
Private or proprietary code included in a diff may leave your machine and be processed by Astrai and routed model providers.
The skill clearly discloses that code diffs and file context are sent to an external AI routing endpoint for review.
`https://as-trai.com/v1/chat/completions` | Code review inference via intelligent routing | Diff content, file context, review instructions
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.
A user may believe provider keys remain local, when the implementation requires sending them to the routing service.
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.
**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.
The documentation should clearly state that BYOK provider keys are transmitted to Astrai, how they are protected, and what limits or retention guarantees apply.
