docs: add 1Claw Tools integration - #6976
Conversation
📝 WalkthroughWalkthroughAdded a 1Claw CrewAI tools integration page with setup and usage instructions. Added navigation entries and an overview card that link to the new documentation. Changes1Claw Tools documentation
Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment Warning |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/edge/en/tools/integration/1clawtool.mdx`:
- Line 12: Rewrite the documentation paragraph to accurately describe
get_all_tools() and its separate vault, memory, signing, and automation tools.
Note that OneclawVaultTool._run() returns decrypted values as tool output, warn
users not to log tool output and to set verbose=False in production, and remove
unsupported claims about secrets never entering model context or being
persisted; retain only enforced guarantees such as private signing keys
remaining in the HSM.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 58346c35-d2a9-46a3-9ac9-08eb089368a4
📒 Files selected for processing (3)
docs/docs.jsondocs/edge/en/tools/integration/1clawtool.mdxdocs/edge/en/tools/integration/overview.mdx
|
|
||
| CrewAI agents need credentials and signing keys, but crew configs and shared `.env` files are not a safe place to store them. Hard-coded API keys end up in git, and shared env files break when you spin up parallel agents with different permissions. | ||
|
|
||
| [`1claw-crewai-tools`](https://pypi.org/project/1claw-crewai-tools/) wraps the [1Claw](https://1claw.xyz) API as CrewAI-compatible tools. Each tool fetches secrets at runtime, signs transactions server-side, and writes to encrypted agent memory. Access is policy-scoped, so an agent only sees the vault paths a human explicitly granted, and secrets are never persisted in the model's context window. |
There was a problem hiding this comment.
🔒 Security & Privacy | 🟠 Major | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/usr/bin/env bash
set -euo pipefail
python - <<'PY'
import io
import json
import urllib.request
import zipfile
metadata = json.load(
urllib.request.urlopen("https://pypi.org/pypi/1claw-crewai-tools/json")
)
wheel_url = next(
item["url"]
for item in metadata["urls"]
if item["packagetype"] == "bdist_wheel"
)
wheel = urllib.request.urlopen(wheel_url).read()
with zipfile.ZipFile(io.BytesIO(wheel)) as archive:
source = archive.read("oneclaw_crewai/_tool.py").decode()
assert "return self._client.get_secret(path)" in source
assert "plaintext credentials" in metadata["info"]["description"]
print(f"Verified published version: {metadata['info']['version']}")
print("The vault tool returns decrypted values as tool output.")
PYRepository: crewAIInc/crewAI
Length of output: 2783
🏁 Script executed:
set -euo pipefail
file=$(fd -i '1clawtool\.mdx$' docs/edge/en docs/edge/ar docs/edge/ko docs/edge/pt-BR | head -n 1)
printf '%s\n' "English and translation candidates:"
fd -i '1clawtool\.mdx$' docs/edge/en docs/edge/ar docs/edge/ko docs/edge/pt-BR || true
printf '\nEnglish page:\n'
cat -n "$file"
printf '\nRelated 1Claw references:\n'
rg -n -i '1claw|OneclawVaultTool|verbose|memory|sign' docs/edge/en docs/edge/ar docs/edge/ko docs/edge/pt-BR 2>/dev/null | head -n 200 || true
printf '\nPublished source and metadata (read-only):\n'
curl -k -L --fail --silent --show-error https://raw.githubusercontent.com/1ClawAI/1claw-crewai-tools/main/src/oneclaw_crewai/_tool.py | nl -ba | sed -n '1,240p'
curl -k -L --fail --silent --show-error https://pypi.org/pypi/1claw-crewai-tools/json |
python3 -c 'import json,sys; d=json.load(sys.stdin); print(d["info"]["version"]); print(d["info"].get("description","")[:12000])' |
rg -n -i 'plaintext|verbose|secret|memory|sign|automation' || trueRepository: crewAIInc/crewAI
Length of output: 22257
🏁 Script executed:
set -euo pipefail
printf '%s\n' '1Claw source:'
curl --insecure -L --fail --silent --show-error \
https://raw.githubusercontent.com/1ClawAI/1claw-crewai-tools/main/src/oneclaw_crewai/_tool.py |
sed -n '1,280p'
printf '\nPyPI metadata fields relevant to secret handling:\n'
python3 - <<'PY'
import json
import ssl
import urllib.request
ctx = ssl._create_unverified_context()
with urllib.request.urlopen(
"https://pypi.org/pypi/1claw-crewai-tools/json", context=ctx
) as response:
metadata = json.load(response)
print("version:", metadata["info"]["version"])
description = metadata["info"].get("description", "")
for index, line in enumerate(description.splitlines(), 1):
if any(term in line.lower() for term in ("plaintext", "verbose", "secret", "memory", "sign")):
print(f"{index}: {line}")
print("\nwheel contents and vault implementation:")
wheel_url = next(
item["url"] for item in metadata["urls"] if item["packagetype"] == "bdist_wheel"
)
with urllib.request.urlopen(wheel_url, context=ctx) as response:
wheel = response.read()
import io
import zipfile
with zipfile.ZipFile(io.BytesIO(wheel)) as archive:
names = archive.namelist()
print("tool modules:", [name for name in names if name.startswith("oneclaw_crewai/") and name.endswith(".py")])
source = archive.read("oneclaw_crewai/_tool.py").decode()
for index, line in enumerate(source.splitlines(), 1):
if any(term in line.lower() for term in ("class oneclawvaulttool", "def _run", "verbose", "get_secret", "plaintext")):
print(f"{index}: {line}")
PY
printf '\n1Claw translations:\n'
for locale in ar ko pt-BR; do
find "docs/edge/$locale" -type f -iname '1clawtool.mdx' -print 2>/dev/null || true
doneRepository: crewAIInc/crewAI
Length of output: 13670
Rewrite the toolkit and secret-handling claims.
get_all_tools() provides separate vault, memory, signing, and automation tools. OneclawVaultTool._run() returns decrypted values as tool output. Warn users not to log tool output and to set verbose=False in production. Remove guarantees that secrets never enter model context or are never persisted unless the integration enforces them. State only supported guarantees, such as private signing keys remaining in the HSM.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@docs/edge/en/tools/integration/1clawtool.mdx` at line 12, Rewrite the
documentation paragraph to accurately describe get_all_tools() and its separate
vault, memory, signing, and automation tools. Note that OneclawVaultTool._run()
returns decrypted values as tool output, warn users not to log tool output and
to set verbose=False in production, and remove unsupported claims about secrets
never entering model context or being persisted; retain only enforced guarantees
such as private signing keys remaining in the HSM.
Adds a docs page for
1claw-crewai-toolsunder Tools > Integration, alongside the existing third-party integrations (Merge, Amazon Bedrock).What it is: 1Claw is HSM-backed secret management for AI agents. The
1claw-crewai-toolspackage (MIT, on PyPI) wraps the 1Claw API as CrewAI-compatible tools for vault secrets, encrypted memory, multi-chain signing, and automations. Secrets are fetched just-in-time and never stored in crew configs,.envfiles, or the model context; access is policy-scoped, audited, and revocable.Changes:
docs/edge/en/tools/integration/1clawtool.mdxintegration/overview.mdxdocs.jsonRepo: https://github.com/1ClawAI/1claw-crewai-tools