A project directory does not always make its language runtime obvious at a glance.
runtime identifies a likely project runtime and, when available, its version so you can keep that context visible while working in Pi.
Use
Nothing to invoke.
Start Pi in a project and runtime checks its directory and parents under your home directory.
It recognizes common project markers for Bun, Deno, Lua, Node.js, Python, Go, Rust, Java, Ruby, and PHP.
The terminal UI shows the detected runtime in the shared footer when available, otherwise in Pi's status area.
No indicator appears when no supported project marker is found.
Version lookup normally waits up to 2500 ms.
Increase that limit only if version discovery is too short for your environment:
{ "runtime": { "versionTimeoutMs": 5000 } }
Put project settings only in a trusted project because Pi ignores project settings until trust is granted.
<img src="assets/banner.svg" alt="runtime" height="70">
# runtime
A project directory does not always make its language runtime obvious at a glance.
runtime identifies a likely project runtime and, when available, its version so you can keep that context visible while working in Pi.
## Use
Nothing to invoke.
Start Pi in a project and runtime checks its directory and parents under your home directory.
It recognizes common project markers for Bun, Deno, Lua, Node.js, Python, Go, Rust, Java, Ruby, and PHP.
The terminal UI shows the detected runtime in the shared footer when available, otherwise in Pi's status area.
No indicator appears when no supported project marker is found.
Version lookup normally waits up to 2500 ms.
Increase that limit only if version discovery is too short for your environment:
```json
{ "runtime": { "versionTimeoutMs": 5000 } }
```
Put project settings only in a trusted project because Pi ignores project settings until trust is granted.
[Installation](../../README.md#install)
## Reference
<!-- config:start -->
### Setting names
| Setting | Environment |
| --- | --- |
| `runtime.versionTimeoutMs` | `PI_RUNTIME_VERSION_TIMEOUT_MS` |
<!-- config:end -->
[Changelog](./CHANGELOG.md).