
My
- 11 installs
- 46.5k repo stars
- Updated August 3, 2026
- hkuds/nanobot
Check and set the agent's own runtime state (model, max iterations, context window, token usage) to diagnose failures or adapt to task size.
About
Provides the my tool to inspect and adjust agent runtime settings like model preset, iteration budget, and context window. A developer uses it to diagnose why something stopped or tune limits before complex tasks.
- Set context_window_tokens, model_preset, max_iterations with validation
- In-memory only; reset on restart, prefer stability over frequent changes
My by the numbers
- 11 all-time installs (skills.sh)
- +1 installs in the week ending Aug 2, 2026 (Skillselion tracking)
- Ranked #11,696 of 16,556 AI & Agent Building skills by installs in the Skillselion catalog
- Data as of Aug 3, 2026 (Skillselion catalog sync)
npx skills add https://github.com/hkuds/nanobot --skill myAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 11 |
|---|---|
| repo stars | ★ 46.5k |
| Last updated | August 3, 2026 |
| Repository | hkuds/nanobot ↗ |
What it does
Check and set the agent's own runtime state (model, max iterations, context window, token usage) to diagnose failures or adapt to task size.
Files
Self-Awareness
How to use
1. Identify the situation from the categories below 2. Call the my tool with the appropriate action 3. If set, warn the user before changing impactful settings (model, iterations) 4. For detailed examples, read references/examples.md
When to check
<rule> Diagnose before explaining. When something doesn't work, check your state first. </rule>
<rule> Check budget before complex tasks. Know your limits before committing. </rule>
<rule> Recall across turns. Store preferences in your scratchpad, read them back later. </rule>
When to set
<rule> Only set when benefit is clear and user is informed. Warn before changing model. </rule>
| Situation | Command |
|---|---|
| Large codebase analysis | my(action="set", key="context_window_tokens", value=131072) |
| Switch to a named model preset | my(action="set", key="model_preset", value="<preset-name>") |
| Repetitive simple tasks without a preset | my(action="set", key="model", value="<fast-model>") |
| Long multi-step task | my(action="set", key="max_iterations", value=80) |
Tradeoff: Bias toward stability. Only set when defaults are genuinely insufficient.
Anti-patterns
<rule> Don't check every turn. Costs a tool call. Use when you need information, not reflexively. </rule>
<rule> Don't store sensitive data. No API keys, passwords, or tokens in scratchpad. </rule>
<rule> Don't set workspace. Does not update file tool boundaries — won't work. </rule>
Constraints
- All modifications in-memory only — restart resets everything
- Prefer
model_presetfor configured model choices. Directmodelchanges clear the active preset and should only be used when no preset exists. - Protected params have type/range validation:
max_iterations(1–100),context_window_tokens(4096–1M),model(non-empty str) - If
tools.my.allow_setis false, check only
Related tools
| Need | Use | Persists? |
|---|---|---|
| Per-session temp state | my(action="set", key="...", value=...) | No |
| Long-term facts | Memory skill (MEMORY.md, USER.md) | Yes |
| Permanent config change | Edit config file | Yes |
Rule of thumb: Tomorrow? Memory. This turn only? My.
My Tool — Practical Examples
Concrete scenarios showing when and how to use the my tool effectively.
Diagnosis
"Why can't you search the web?"
→ my(action="check", key="web_config.enable")
→ False
→ "Web search is disabled. Add web.enable: true to your config to enable it.""Why did you stop?"
→ my(action="check", key="max_iterations")
→ 40
→ my(action="check", key="_last_usage")
→ {"prompt_tokens": 62000, "completion_tokens": 3000}
→ "I hit the iteration limit (40). The task was complex. I can ask the user if they want to increase it.""What model are you running?"
→ my(action="check", key="model")
→ 'anthropic/claude-sonnet-4-20250514'
→ my(action="check", key="model_preset")
→ 'deep'Adaptive Behavior
Large codebase analysis
→ my(action="check")
→ context_window_tokens: 65536
→ my(action="set", key="context_window_tokens", value=131072)
→ "Set context_window_tokens = 131072 (was 65536)"
→ "I've expanded my context window to handle this large codebase."Switching to a configured model preset
→ my(action="set", key="model_preset", value="fast")
→ "Set model_preset = 'fast' (was 'deep'); model is now 'openai/gpt-4.1-mini'"
→ "Switched to the fast preset for these batch tasks."Switching to a raw model when no preset exists
→ my(action="set", key="model", value="anthropic/claude-haiku-4-5-20251001")
→ "Set model = 'anthropic/claude-haiku-4-5-20251001' (was 'anthropic/claude-sonnet-4-20250514')"
→ "Switched to a faster model for these batch tasks."Cross-Turn Memory
Remembering user preferences
# Turn 1: user says "keep it brief"
→ my(action="set", key="user_style", value="concise")
→ "Set scratchpad.user_style = 'concise'"
# Turn 3: new topic
→ my(action="check", key="user_style")
→ 'concise'
(adjusts response style accordingly)Tracking project context
→ my(action="set", key="active_branch", value="feat/auth")
→ my(action="set", key="test_framework", value="pytest")
→ my(action="set", key="has_docker", value=true)Budget Awareness
Token-conscious behavior
→ my(action="check", key="_last_usage")
→ {"prompt_tokens": 58000, "completion_tokens": 12000}
→ "I've consumed ~70k tokens. I'll keep my remaining responses focused."