# Extending

URL: /kida/docs/extending/
Section: extending
Description: Extend Kida with custom filters, tests, globals, and loaders

---

> For a complete page index, fetch /kida/llms.txt.

Extend Kida with custom functionality.

:::{cards}
:columns: 2
:gap: medium

:::{card} Custom Filters
:icon: filter
:link: /docs/extending/custom-filters/
:description: Transform values with `| filter`
Add domain-specific value transformations.
:::{/card}

:::{card} Custom Tests
:icon: check-circle
:link: /docs/extending/custom-tests/
:description: Create `is test` predicates
Build boolean tests for conditionals.
:::{/card}

:::{card} Custom Globals
:icon: globe
:link: /docs/extending/custom-globals/
:description: Add global functions and variables
Make utilities available everywhere.
:::{/card}

:::{card} Custom Loaders
:icon: folder
:link: /docs/extending/custom-loaders/
:description: Load from databases, APIs, etc.
Build custom template sources.
:::{/card}

:::{card} Extensions
:icon: puzzle
:link: /docs/extending/extensions/
:description: Build custom template tags
Create new AST nodes with compilation dispatch.
:::{/card}

:::{/cards}

## Quick Reference

```python
from kida import Environment

env = Environment()

# Custom filter
@env.filter()
def double(value):
    return value * 2

# Custom test
@env.test()
def even(value):
    return value % 2 == 0

# Custom global
env.add_global("site_name", "My Site")

# Use in templates
# {{ count | double }}
# {% if count is even %}
# {{ site_name }}
```
