Skip to content
Back to skills

Oc Claude Usage Cli

ASecurity

Query Claude API usage and cost reports from the command line.

  • 11 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 10, 2026
testingpythonrustgotestingapisecurityperformancedocumentation

Works with

  • cli
  • api

Security analysis

A100/100

Scanned September 10, 2026

npx -y skills add luokai0/ai-agent-skills-by-luo-kai --skill oc-claude-usage-cli --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Oc Claude Usage Cli?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Oc Claude Usage Cli
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/luokai0-oc-claude-usage-cli/badge)](https://www.skillsdirectory.com/skills/luokai0-oc-claude-usage-cli)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
author: luo-kai
name: oc-claude-usage-cli
version: 1.0.0
description: Query Claude API usage and cost reports from the command line.
license: MIT
metadata:
  author: luokai0
  version: "1.0"
  category: python-tools
---

# Claude Usage Cli

You are an expert python engineer. Query Claude API usage and cost reports from the command line.

## Before Starting

1. **Goal** — what specific outcome do you need?
2. **Environment** — versions, platform, existing setup?
3. **Constraints** — performance, security, compatibility requirements?
4. **Integration** — what systems does this connect to?
5. **Output format** — code, config, script, or documentation?

---

## Core Expertise Areas

- **Core implementation** — full working code for Claude Usage Cli
- **Error handling** — robust error recovery and logging
- **Performance** — optimized patterns for production use
- **Testing** — unit and integration test strategies
- **Configuration** — environment-specific setup and tuning
- **Security** — secure coding patterns and best practices
- **Documentation** — clear API and usage documentation

---

## Key Patterns & Code

### Core Implementation

```python
import anthropic
import json

client = anthropic.Anthropic()

TOOLS = [
    {
        "name": "search",
        "description": "Search for information on a topic",
        "input_schema": {
            "type": "object",
            "properties": {
                "query": {"type": "string", "description": "Search query"}
            },
            "required": ["query"]
        }
    }
]

def handle_tool(name: str, inputs: dict) -> str:
    if name == "search":
        return f"Search results for: {inputs['query']}"
    return f"Unknown tool: {name}"

def run_claude_usage_cli(task: str, max_turns: int = 10) -> str:
    messages = [{"role": "user", "content": task}]
    for _ in range(max_turns):
        response = client.messages.create(
            model="claude-sonnet-4-6",
            max_tokens=4096,
            tools=TOOLS,
            messages=messages
        )
        messages.append({"role": "assistant", "content": response.content})
        if response.stop_reason == "end_turn":
            return next((b.text for b in response.content if hasattr(b, 'text')), "")
        if response.stop_reason == "tool_use":
            results = [
                {"type": "tool_result", "tool_use_id": b.id,
                  "content": handle_tool(b.name, b.input)}
                for b in response.content if b.type == "tool_use"
            ]
            messages.append({"role": "user", "content": results})
    return "Max turns reached"

if __name__ == "__main__":
    result = run_claude_usage_cli("ClaudeUsageCli task: analyze and report")
    print(result)
```

### Configuration & Setup
```python
# Claude Usage Cli — Configuration
# Author: luo-kai (Lous Creations)

config = {
    "name": "claude-usage-cli",
    "version": "1.0.0",
    "author": "luo-kai",
    "enabled": True,
    "debug": False,
    "timeout_seconds": 30,
    "max_retries": 3,
}
```

### Error Handling
```python
# Robust error handling pattern
import logging
logger = logging.getLogger("claude-usage-cli")

def safe_run(func, *args, **kwargs):
    try:
        return func(*args, **kwargs)
    except Exception as e:
        logger.error(f"claude-usage-cli error: {e}", exc_info=True)
        raise
```

---

## Best Practices

- **Fail fast with clear errors** — raise descriptive exceptions with context
- **Log at appropriate levels** — DEBUG for dev, INFO for ops, ERROR for problems
- **Validate inputs** — never trust external data without validation
- **Use type annotations** — improves IDE support and catches bugs early
- **Handle cleanup** — use context managers and `finally` blocks
- **Test edge cases** — empty inputs, nulls, max values, concurrent access

---

## Common Pitfalls

| Pitfall | Problem | Fix |
|---------|---------|-----|
| No error handling | Silent failures in production | Wrap with try/except + logging |
| Hardcoded values | Not portable across environments | Use config/env vars |
| Missing timeouts | Hangs indefinitely | Always set timeout values |
| No retry logic | Single failure = broken workflow | Add exponential backoff |
| No cleanup on exit | Resource leaks | Use context managers |

---

## Related Skills

- python-expert
- claude-usage-cli-advanced
- performance-optimization
- error-handling
- testing-expert

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…