HuggingClaw-Cain / scripts /set_secrets.py
Claude Code
Configure HF repository secrets for Cain data persistence
4c8734f
#!/usr/bin/env python3
"""
Set HuggingFace Space repository secrets via API.
This configures the environment variables for Cain's data persistence.
Usage:
export HF_TOKEN=your_token_here
python3 scripts/set_secrets.py
"""
import sys
import os
from huggingface_hub import HfApi
# Get token from environment or git remote
GIT_REMOTE_TOKEN = os.environ.get("HF_TOKEN")
SPACE_ID = "tao-shen/HuggingClaw-Cain"
# Secrets to set
SECRETS = {
"HF_TOKEN": None, # Will be set from environment
"OPENCLAW_DATASET_REPO": "tao-shen/HuggingClaw-Cain-data", # Dataset repo for backup
"AUTO_CREATE_DATASET": "true", # Auto-create dataset if it doesn't exist
}
def main():
token = GIT_REMOTE_TOKEN or os.environ.get("HF_TOKEN")
if not token:
print("[✗] Error: HF_TOKEN not found!")
print("[*] Set HF_TOKEN environment variable:")
print(" export HF_TOKEN=hf_your_token_here")
sys.exit(1)
print(f"[*] Setting repository secrets for Space: {SPACE_ID}")
print(f"[*] Using HF token: {token[:20]}...")
api = HfApi(token=token)
# Set HF_TOKEN to the same token (for the Space to use)
secrets_to_set = SECRETS.copy()
secrets_to_set["HF_TOKEN"] = token
for key, value in secrets_to_set.items():
try:
api.add_space_secret(
repo_id=SPACE_ID,
key=key,
value=value
)
print(f"[✓] Set secret: {key}")
except Exception as e:
# Secret might already exist, try updating
try:
# HF API doesn't have update, so we just log if it exists
print(f"[i] Secret {key} may already exist or error: {e}")
except Exception as e2:
print(f"[✗] Error setting {key}: {e2}")
print("\n[*] Secrets configuration complete!")
print("[*] Next step: Restart the Space to apply the new environment variables")
print("[*] Visit: https://huggingface.co/spaces/tao-shen/HuggingClaw-Cain")
if __name__ == "__main__":
main()