> For the complete documentation index, see [llms.txt](https://gilad-rubin.gitbook.io/hypster/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://gilad-rubin.gitbook.io/hypster/concepts/unique-features.md).

# Unique Features

## Define-By-Run Configuration

Hypster config functions are normal Python rather than a DSL. Branches, loops, helper functions, lists, imports, and object construction work the way Python developers expect.

The price of that flexibility is honest execution: Hypster discovers parameters by running the config function. Keep discovery paths fast and side-effect-free so exploration, UI rendering, and HPO can rerun them safely.

## Branch-Aware Exploration

`explore(config, values=...)` traces the same branch that `instantiate(config, values=...)` would run. That makes it useful for UIs, HPO, schema exports, and debugging stale values.

## Replayable Params Sidecar

`instantiate_with_params()` returns both the runtime value and the selected parameter dictionary. Defaults are included, so replay does not depend on future default changes.

## Nested Composition

`hp.nest()` gives reusable child configs their own dotted parameter paths without requiring a global registry or decorator.

## Dict-Backed Selects

Hypster separates the logged key from the runtime value. This lets you log `"large"` while returning an object, dictionary, tuple, or factory.

For swappable components, the idiomatic shape is a named options dictionary from simple keys to config functions, followed by `hp.nest()` on the selected function. That keeps logs stable, UI options simple, and the parent config readable even when the option set grows.

## Strict Unknown Values By Default

Unknown and unreachable values raise by default. This is stricter than many config systems, but it protects experiment logs and production replays from silently accepting stale parameters.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://gilad-rubin.gitbook.io/hypster/concepts/unique-features.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
