diff --git a/AGENTS.md b/AGENTS.md
new file mode 100644
index 0000000..a5cdc3f
--- /dev/null
+++ b/AGENTS.md
@@ -0,0 +1,113 @@
+# AGENTS.md - LLM Context Memory Calculator
+
+## Quick Reference
+
+```bash
+# Just open index.html in a browser - no build process needed
+# or serve with any static file server
+```
+
+## Architecture Overview
+
+**Pure client-side application** - Single HTML file with embedded CSS/JS. No build tools, no frameworks.
+
+```
+index.html
+├── css/styles.css # ~380 lines, retro design
+└── js/
+ ├── app.js # Main app, event handling, translations
+ └── calculation.js # Pure calculation functions
+```
+
+## Key Facts
+
+### Calculation Formula
+```
+Memory = context_length × effective_layers × kv_heads × head_dim × (bK + bV) × parallel
+
+where:
+- effective_layers = layers / full_attention_interval (if specified)
+- bK, bV = quantization sizes per element
+- parallel = number of concurrent sequences (default: 1)
+```
+
+### Quantization Sizes (bytes per element)
+```
+f32: 4.0
+f16: 2.0
+bf16: 2.0
+q8_0: 34/32 = 1.0625
+q4_0: 18/32 = 0.5625
+q4_1: 20/32 = 0.625
+iq4_nl: 18/32 = 0.5625
+q5_0: 22/32 = 0.6875
+q5_1: 24/32 = 0.75
+```
+
+### HuggingFace Config Format
+- Expected structure: `config.json` from `https://huggingface.co/{model}/resolve/main/config.json`
+- **Critical**: Must use `/resolve/main/` endpoint, NOT `/blob/main/`
+- Config may be nested under `text_config` (e.g., Qwen3.5 models)
+- Required fields (check both top-level and `text_config`):
+ - `num_hidden_layers`
+ - `num_key_value_heads`
+ - `head_dim` (or calculate as `hidden_size / num_attention_heads`)
+
+## Common Pitfalls
+
+### 1. Config Parsing
+- ConfigParser checks BOTH `config` and `config.text_config`
+- Don't forget to check nested structure for newer models
+
+### 2. Tooltip Re-initialization
+After clearing tooltips with `clearAllTooltips()`, always call:
+```javascript
+updateTooltips();
+```
+Otherwise tooltips will be empty.
+
+### 3. Error Icon Styling
+Error icons must have:
+- Black background: `#000000`
+- White text: `#FFFFFF`
+- Blue hover: `#0000FF`
+- Tooltip popup must be re-created after language change
+
+### 4. Optional Fields Without Errors
+Fields with default values should NOT show error icons:
+- `parallel` (default: 1)
+- `model-size` (default: 0)
+- `full-attention` (optional)
+
+### 5. Model Input Error Icon
+The `hf-model` input's error icon is placed differently in HTML:
+```html
+
+
+!
+```
+Selector must use `#hf-model + .error-icon`, not `#hf-model ~ .error-icon`
+
+## File Changes
+
+### Adding New Translations
+1. Add to `translations.ru` and `translations.en` objects
+2. Add `data-key="key_name"` attribute to HTML element
+3. Update `updateText()` if needed
+
+### Adding New Input Fields
+1. Add HTML element with proper id
+2. Add error icon: `!`
+3. Add to `ConfigParser.parse()` if used for config parsing
+4. Add to `showConfigErrors()` selector if needed (use `+` for hf-model)
+
+## Testing Checklist
+
+- [ ] Config upload works with nested structure (e.g., Qwen3.5)
+- [ ] HuggingFace fetch works with `/resolve/main/` URL
+- [ ] 404 errors show "Model not found"
+- [ ] Tooltips persist after config parsing
+- [ ] Error icons appear for missing required fields
+- [ ] Error icons don't appear for optional fields
+- [ ] Language toggle updates all translations including tooltips
+- [ ] Reset button clears all fields including model name