Fish Tts

SuspiciousAudited by ClawScan on May 10, 2026.

Overview

The skill fits a TTS/upload use case, but it embeds a real-looking NextCloud password and attempts WebDAV uploads to a fixed server by default.

Review carefully before installing. Do not use the embedded NextCloud password; rotate it if it is real, configure your own HTTPS endpoint and limited app password, and require an explicit upload confirmation before sending generated audio to cloud storage.

Findings (4)

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

Anyone who can view or run the skill can see or use the embedded NextCloud credential, and the agent may use it to write to that account.

Why it was flagged

The code embeds a real-looking default NextCloud username and password, even though the registry metadata declares no primary credential.

Skill content
NEXTCLOUD_USER = os.environ.get('NEXTCLOUD_USER', 'openclaw')
NEXTCLOUD_PASS = os.environ.get('NEXTCLOUD_PASS', 'N95qg-...-RaEW5')
Recommendation

Remove hardcoded secrets, rotate the exposed credential, declare the required credential in metadata, and require users to provide a limited app-specific token.

What this means

A user asking only to generate speech may also trigger a write to the configured NextCloud location.

Why it was flagged

The generate command directly invokes the generate-and-upload workflow, so the WebDAV upload attempt is not gated behind a separate explicit upload request.

Skill content
if args.command == 'generate':
    ...
    result = generate_and_upload(text, voice, f"fish_tts_{datetime.now().strftime('%Y%m%d_%H%M%S')}.mp3")
Recommendation

Separate generation from upload, honor an explicit output/upload option, and ask for confirmation before writing to a cloud account.

What this means

NextCloud credentials and generated audio could be exposed to devices or observers on the same network path.

Why it was flagged

The documented WebDAV upload sends credentials and audio over plain HTTP to a fixed private-network endpoint, without TLS protection.

Skill content
curl -s -u "$NEXTCLOUD_USER:$NEXTCLOUD_PASS" ... "http://192.168.68.68:8080/remote.php/webdav/Openclaw/fish_audio.mp3"
Recommendation

Use HTTPS for WebDAV, avoid Basic Auth over plain HTTP, and let users configure their own trusted endpoint.

What this means

Users have less information about where the skill came from, how dependencies should be installed, or who maintains it.

Why it was flagged

The skill has limited provenance and setup metadata; this is not malicious by itself, but it reduces reviewability.

Skill content
Source: unknown
Homepage: none
Install specifications: No install spec
Recommendation

Publish a source repository/homepage and declare dependencies, required environment variables, and credential expectations.