---
title: "Dev Output"
description: "generate a shareable console URL from dev app analysis results"
source: "https://github.com/log-10x/modules/tree/main/pipelines/run/modules/output/event/dev/module.yaml"
icon: "material/chart-bar"

---
Generates a shareable [Log10x Console](https://console.log10x.com "Generate a shareable console URL from dev app analysis results"){target="\_blank"} URL from [dev app](https://doc.log10x.com/apps/dev/) analysis results.

When the pipeline completes, this output builds a compact JSON payload from aggregated [TenXSummary](https://doc.log10x.com/api/js/#TenXSummary "Access aggregate values of tenxObjects which share a target set of field values.") data,
[templates](https://doc.log10x.com/run/template/ "Import joint JSON schemas files to expand events into well-defined TenXObjects.") and [encoded](https://doc.log10x.com/api/js/#TenXObject+encode "Encodes the current object's log event into a compact, template‐based string.") events,
then embeds it in a URL that opens the Console with cost analysis, top patterns and volume reduction proof.

## How It Works

Two output entries share a single `DevOutputStream` instance via the [group](https://doc.log10x.com/run/output/event/file/#outputfileencodetype "the output format in which to encode TenXObject values. Possible values:[json, delimited]") mechanism:

1. **Summary** (`isSummary`), receives aggregated [enrichment fields](https://doc.log10x.com/run/initialize/#enrichmentFields "list of field to enrich TenXObjects with") with [summaryVolume](https://doc.log10x.com/api/js/#TenXSummary+summaryVolume "The number of tenxObjects whose values have been aggregated into this summary instance.") and [summaryBytes](https://doc.log10x.com/api/js/#TenXSummary+summaryBytes "The accumulative number of bytes in the values of text fields")
2. **Event** (`isObject || isEncoded`), receives [templateHash](https://doc.log10x.com/api/js/#TenXBaseObject+templateHash "An alphanumeric encoded value of a 64bit hash of the current object's template field."), [template](https://doc.log10x.com/api/js/#TenXBaseObject+template "A sequence of all symbol and delimiter tokens from the object's text field.") body and [encode()](https://doc.log10x.com/api/js/#TenXObject+encode "Encodes the current object's log event into a compact, template‐based string.") values

On close, the stream produces:

- A console URL with the analysis embedded (printed to console)
- Optionally auto-opens the URL in the default browser
- Optionally writes the raw JSON to a file

Memory usage is bounded by the number of unique templates, not the number of events.

## :material-wrench-outline: Config Files

To configure the Dev output module, [:material-cog: Edit](https://doc.log10x.com/config/app/#module-config "Learn how to edit app and module configurations") these files.  

Below is the default configuration from: [dev/config.yaml](https://github.dev/log-10x/config/blob/main/pipelines/run/output/event/dev/config.yaml "dev/config.yaml"){target="\_blank"}.  
  
<div class="edit-options">
    <a class="md-button tenx-edit-online-button" data-tooltip="Edit online on github.dev" href="https://github.dev/log-10x/config/blob/main/pipelines/run/output/event/dev/config.yaml" target="_blank" rel="noopener noreferrer">
        <span class="twemoji" style="margin-right: 0.3rem;">
            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
                <path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"></path>
            </svg>
        </span> Edit Online
    </a>
    <button class="md-button tenx-config.yaml0-edit-button" data-tooltip="Edit configuration file" data-dialog-id="config-yaml0-dialog">
        <span style="margin-right: 0.3rem;">
            <span class="twemoji">
                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
                    <path d="M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z"></path>
                </svg>
            </span>
        </span>Edit Locally
    </button>
</div>

<dialog id="config-yaml0-dialog" class="md-dialog md-dialog--editor">
    <div class="editor-dialog-wrapper">
        <div class="editor-dialog-header">
            <span class="editor-dialog-title">Edit config.yaml Locally</span>
            <div class="editor-header-actions">
                <button class="editor-toolbar-btn yaml-editor-locations" data-tooltip="Save">
                    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="currentColor" d="M5 20h14v-2H5v2m14-9h-4V3H9v8H5l7 7 7-7Z"></path></svg>
                </button>
                <button class="editor-toolbar-btn yaml-editor-reset" data-tooltip="Reset to default">
                    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="currentColor" d="M12.5 8c-2.65 0-5.05 1-6.9 2.6L2 7v9h9l-3.62-3.62c1.39-1.16 3.16-1.88 5.12-1.88 3.54 0 6.55 2.31 7.6 5.5l2.37-.78C21.08 11.03 17.15 8 12.5 8z"></path></svg>
                </button>
                <button class="editor-toolbar-btn yaml-editor-copy" data-tooltip="Copy to clipboard">
                    <svg class="icon-copy" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="currentColor" d="M19 21H8V7h11m0-2H8a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2m-3-4H4a2 2 0 0 0-2 2v14h2V3h12V1Z"></path></svg>
                    <svg class="icon-check" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" style="display:none;"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg>
                </button>
                <span class="header-divider"></span>
                <button class="editor-toolbar-btn yaml-editor-fullscreen" data-tooltip="Fullscreen">
                    <svg class="icon-maximize" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="currentColor" d="M5,5H10V7H7V10H5V5M14,5H19V10H17V7H14V5M17,14H19V19H14V17H17V14M10,17V19H5V14H7V17H10Z"></path></svg>
                    <svg class="icon-minimize" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" style="display:none;"><path fill="currentColor" d="M5,16H8V19H10V14H5V16M14,14V19H16V16H19V14H14M16,5V8H19V10H14V5H16M10,5V10H5V8H8V5H10Z"></path></svg>
                </button>
                <span class="header-divider"></span>
                <button class="editor-toolbar-btn editor-dialog-close" onclick="closeDialog('config-yaml0-dialog')" data-tooltip="Close">
                    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="currentColor" d="M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z"></path></svg>
                </button>
            </div>
        </div>
        <div class="editor-dialog-content">
            <div class="yaml-editor-container"></div>
        </div>
        <div class="yaml-editor-statusbar">
            <span class="yaml-editor-status"></span>
        </div>
    </div>
    <!-- Locations Popup -->
    <div class="locations-popup" style="display: none;">
        <div class="locations-popup-content">
            <div class="locations-popup-header">
                <span class="locations-header-label">Download and save to:</span>
                <button class="locations-popup-close" aria-label="Close">
                    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="16" height="16">
                        <path fill="currentColor" d="M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z"></path>
                    </svg>
                </button>
            </div>
            <ul class="locations-list">
                <li>
                    <span class="location-label">Linux / Docker / macOS
                        <span class="help-icon" data-tooltip="Default system location. The engine automatically reads configs from here at startup. Best for production deployments.">
                            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="12" height="12"><path fill="currentColor" d="M11 18h2v-2h-2v2m1-16A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2m0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8m0-14a4 4 0 0 0-4 4h2a2 2 0 0 1 2-2 2 2 0 0 1 2 2c0 2-3 1.75-3 5h2c0-2.25 3-2.5 3-5a4 4 0 0 0-4-4Z"/></svg>
                        </span>
                    </span>
                    <div class="location-path-row">
                        <code class="default-path location-path" data-tooltip=""
                            data-copy-osx="/etc/log10x/config/run/output/event/dev/config.yaml"
                            data-copy-nix="/etc/log10x/config/run/output/event/dev/config.yaml"
                            data-copy-win="C:\log10x\configs/run/output/event/dev/config.yaml"></code>
                        <button class="copy-btn" data-tooltip="Copy path">
                            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="14" height="14">
                                <path fill="currentColor" d="M19 21H8V7h11m0-2H8a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2m-3-4H4a2 2 0 0 0-2 2v14h2V3h12V1Z"></path>
                            </svg>
                        </button>
                    </div>
                </li>
                <li>
                    <span class="location-label">Custom directory
                        <span class="help-icon" data-tooltip="Set TENX_CONFIG environment variable to point to a custom config directory. Useful when you want configs in a non-standard location.">
                            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="12" height="12"><path fill="currentColor" d="M11 18h2v-2h-2v2m1-16A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2m0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8m0-14a4 4 0 0 0-4 4h2a2 2 0 0 1 2-2 2 2 0 0 1 2 2c0 2-3 1.75-3 5h2c0-2.25 3-2.5 3-5a4 4 0 0 0-4-4Z"/></svg>
                        </span>
                    </span>
                    <div class="location-path-row">
                        <code class="location-path" data-tooltip="$TENX_CONFIG/run/output/event/dev/config.yaml">$TENX_CONFIG/run/output/event/dev/config.yaml</code>
                        <button class="copy-btn" data-tooltip="Copy path">
                            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="14" height="14">
                                <path fill="currentColor" d="M19 21H8V7h11m0-2H8a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2m-3-4H4a2 2 0 0 0-2 2v14h2V3h12V1Z"></path>
                            </svg>
                        </button>
                    </div>
                </li>
                <li>
                    <span class="location-label">Within cloned repo
                        <span class="help-icon" data-tooltip="First run: git clone github.com/log-10x/config. Then save the file to this path within the cloned folder. Use for version control.">
                            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="12" height="12"><path fill="currentColor" d="M11 18h2v-2h-2v2m1-16A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2m0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8m0-14a4 4 0 0 0-4 4h2a2 2 0 0 1 2-2 2 2 0 0 1 2 2c0 2-3 1.75-3 5h2c0-2.25 3-2.5 3-5a4 4 0 0 0-4-4Z"/></svg>
                        </span>
                    </span>
                    <div class="location-path-row">
                        <code class="location-path" data-tooltip="./pipelines/run/output/event/dev/config.yaml">./pipelines/run/output/event/dev/config.yaml</code>
                        <button class="copy-btn" data-tooltip="Copy path">
                            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="14" height="14">
                                <path fill="currentColor" d="M19 21H8V7h11m0-2H8a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2m-3-4H4a2 2 0 0 0-2 2v14h2V3h12V1Z"></path>
                            </svg>
                        </button>
                    </div>
                </li>
            </ul>
            <div class="locations-popup-footer">
                <button class="locations-download-btn" title="Download config file">
                    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="14" height="14">
                        <path fill="currentColor" d="M5 20h14v-2H5v2m14-9h-4V3H9v8H5l7 7 7-7Z"></path>
                    </svg>
                    <span>Download</span>
                </button>
            </div>
        </div>
    </div>
</dialog>

<template class="tenx-config-schema" data-encoding="base64">ewogICJ0eXBlIiA6ICJvYmplY3QiLAogICJwcm9wZXJ0aWVzIiA6IHsKICAgICJpbmNsdWRlIiA6IHsKICAgICAgInR5cGUiIDogImFycmF5IiwKICAgICAgIml0ZW1zIiA6IHsKICAgICAgICAidHlwZSIgOiAic3RyaW5nIgogICAgICB9CiAgICB9LAogICAgInRlbngiIDogewogICAgICAidHlwZSIgOiAic3RyaW5nIgogICAgfSwKICAgICJkZXZPdXRwdXQiIDogewogICAgICAidHlwZSIgOiAiYXJyYXkiLAogICAgICAiaXRlbXMiIDogewogICAgICAgICJ0eXBlIiA6ICJvYmplY3QiLAogICAgICAgICJhZGRpdGlvbmFsUHJvcGVydGllcyIgOiBmYWxzZSwKICAgICAgICAicHJvcGVydGllcyIgOiB7CiAgICAgICAgICAiZW5hYmxlZCIgOiB7CiAgICAgICAgICAgICJ0eXBlIiA6IFsKICAgICAgICAgICAgICAiYm9vbGVhbiIsCiAgICAgICAgICAgICAgInN0cmluZyIsCiAgICAgICAgICAgICAgIm51bGwiCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJtYXJrZG93bkRlc2NyaXB0aW9uIiA6ICJFbmFibGUvZGlzYWJsZSBkZXYgb3V0cHV0XG5cbkNvbnRyb2xzIHdoZXRoZXIgdG8gZ2VuZXJhdGUgYSBzaGFyZWFibGUgY29uc29sZSBVUkwgZnJvbSB0aGUgYW5hbHlzaXMgcmVzdWx0cy4gKEFjY2VwdHMgYm9vbGVhbiBvciBzdHJpbmcgd2l0aCAkPSBwcmVmaXggZm9yIHJ1bnRpbWUgZXZhbHVhdGlvbikgKERlZmF1bHQ6IHRydWUpIiwKICAgICAgICAgICAgImRlZmF1bHQiIDogdHJ1ZQogICAgICAgICAgfSwKICAgICAgICAgICJiYXNlVXJsIiA6IHsKICAgICAgICAgICAgInR5cGUiIDogWwogICAgICAgICAgICAgICJzdHJpbmciLAogICAgICAgICAgICAgICJudWxsIgogICAgICAgICAgICBdLAogICAgICAgICAgICAibWFya2Rvd25EZXNjcmlwdGlvbiIgOiAiQmFzZSBVUkwgb2YgdGhlIGNvbnNvbGUgdmlld2VyXG5cblNwZWNpZmllcyB0aGUgYmFzZSBVUkwgb2YgdGhlIExvZzEweCBDb25zb2xlIHVzZWQgdG8gdmlldyByZXN1bHRzLiAoRGVmYXVsdDogaHR0cHM6Ly9jb25zb2xlLmxvZzEweC5jb20pIiwKICAgICAgICAgICAgImRlZmF1bHQiIDogImh0dHBzOi8vY29uc29sZS5sb2cxMHguY29tIgogICAgICAgICAgfSwKICAgICAgICAgICJvcGVuQnJvd3NlciIgOiB7CiAgICAgICAgICAgICJ0eXBlIiA6IFsKICAgICAgICAgICAgICAiYm9vbGVhbiIsCiAgICAgICAgICAgICAgInN0cmluZyIsCiAgICAgICAgICAgICAgIm51bGwiCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJtYXJrZG93bkRlc2NyaXB0aW9uIiA6ICJBdXRvLW9wZW4gcmVzdWx0cyBpbiBicm93c2VyXG5cbklmIHRydWUsIGF1dG9tYXRpY2FsbHkgb3BlbnMgdGhlIGdlbmVyYXRlZCBjb25zb2xlIFVSTCBpbiB0aGUgZGVmYXVsdCBicm93c2VyIHdoZW4gdGhlIHBpcGVsaW5lIGNvbXBsZXRlcy4gKEFjY2VwdHMgYm9vbGVhbiBvciBzdHJpbmcgd2l0aCAkPSBwcmVmaXggZm9yIHJ1bnRpbWUgZXZhbHVhdGlvbikgKERlZmF1bHQ6IGZhbHNlKSIsCiAgICAgICAgICAgICJkZWZhdWx0IiA6IGZhbHNlCiAgICAgICAgICB9LAogICAgICAgICAgImxvY2FsT25seSIgOiB7CiAgICAgICAgICAgICJ0eXBlIiA6IFsKICAgICAgICAgICAgICAiYm9vbGVhbiIsCiAgICAgICAgICAgICAgInN0cmluZyIsCiAgICAgICAgICAgICAgIm51bGwiCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJtYXJrZG93bkRlc2NyaXB0aW9uIiA6ICJMb2NhbC1vbmx5IG1vZGUsIG91dHB1dCBKU09OIHdpdGhvdXQgZ2VuZXJhdGluZyBhIFVSTFxuXG5JZiB0cnVlLCBvdXRwdXRzIHRoZSBhbmFseXNpcyBKU09OIHRvIHRoZSBjb25zb2xlIHdpdGhvdXQgZ2VuZXJhdGluZyBvciBvcGVuaW5nIGEgVVJMLiBVc2UgdGhpcyBmb3IgcHJpdmFjeSB3aGVuIHlvdSBwcmVmZXIgbm90IHRvIGdlbmVyYXRlIGFuIGV4dGVybmFsIFVSTC4gKEFjY2VwdHMgYm9vbGVhbiBvciBzdHJpbmcgd2l0aCAkPSBwcmVmaXggZm9yIHJ1bnRpbWUgZXZhbHVhdGlvbikgKERlZmF1bHQ6IGZhbHNlKSIsCiAgICAgICAgICAgICJkZWZhdWx0IiA6IGZhbHNlCiAgICAgICAgICB9LAogICAgICAgICAgImZpbGVQYXRoIiA6IHsKICAgICAgICAgICAgInR5cGUiIDogWwogICAgICAgICAgICAgICJzdHJpbmciLAogICAgICAgICAgICAgICJudWxsIgogICAgICAgICAgICBdLAogICAgICAgICAgICAibWFya2Rvd25EZXNjcmlwdGlvbiIgOiAiRmlsZSBwYXRoIHRvIHdyaXRlIEpTT04gb3V0cHV0XG5cblNwZWNpZmllcyBhIHBhdGggb24gZGlzayB0byB3cml0ZSB0aGUgYW5hbHlzaXMgSlNPTi4gSWYgbm90IHNwZWNpZmllZCwgdGhlIEpTT04gaXMgb25seSBwcmludGVkIHRvIGNvbnNvbGUgKGluIGxvY2FsIG1vZGUpIG9yIGVuY29kZWQgaW50byB0aGUgVVJMLiIKICAgICAgICAgIH0sCiAgICAgICAgICAic291cmNlTmFtZSIgOiB7CiAgICAgICAgICAgICJ0eXBlIiA6IFsKICAgICAgICAgICAgICAic3RyaW5nIiwKICAgICAgICAgICAgICAibnVsbCIKICAgICAgICAgICAgXSwKICAgICAgICAgICAgIm1hcmtkb3duRGVzY3JpcHRpb24iIDogIkRpc3BsYXkgbmFtZSBvZiB0aGUgaW5wdXQgbG9nIHNvdXJjZVxuXG5TcGVjaWZpZXMgdGhlIGRpc3BsYXkgbmFtZSBvZiB0aGUgaW5wdXQgbG9nIHNvdXJjZSBzaG93biBpbiB0aGUgY29uc29sZSB2aWV3ZXIuIChEZWZhdWx0OiB5b3VyIGxvZ3MpIiwKICAgICAgICAgICAgImRlZmF1bHQiIDogInlvdXIgbG9ncyIKICAgICAgICAgIH0sCiAgICAgICAgICAiZGFpbHlHYiIgOiB7CiAgICAgICAgICAgICJ0eXBlIiA6IFsKICAgICAgICAgICAgICAibnVtYmVyIiwKICAgICAgICAgICAgICAic3RyaW5nIiwKICAgICAgICAgICAgICAibnVsbCIKICAgICAgICAgICAgXSwKICAgICAgICAgICAgIm1hcmtkb3duRGVzY3JpcHRpb24iIDogIkVzdGltYXRlZCBkYWlseSBsb2cgdm9sdW1lIGluIEdCIGZvciBST0kgcHJvamVjdGlvbnNcblxuU3BlY2lmaWVzIGFuIGVzdGltYXRlZCBkYWlseSBsb2cgdm9sdW1lIGluIGdpZ2FieXRlcy4gVGhlIGNvbnNvbGUgdmlld2VyIHVzZXMgdGhpcyB2YWx1ZSB0byBwcm9qZWN0IGNvc3Qgc2F2aW5ncyBhbmQgUk9JLiBBZGp1c3QgdG8gbWF0Y2ggeW91ciBlbnZpcm9ubWVudCdzIGFjdHVhbCBkYWlseSBsb2cgdm9sdW1lLiAoQWNjZXB0cyBudW1iZXIgb3Igc3RyaW5nIHdpdGggJD0gcHJlZml4IGZvciBydW50aW1lIGV2YWx1YXRpb24pIChEZWZhdWx0OiAxMDApIiwKICAgICAgICAgICAgImRlZmF1bHQiIDogMTAwCiAgICAgICAgICB9LAogICAgICAgICAgInRvcFBhdHRlcm5zIiA6IHsKICAgICAgICAgICAgInR5cGUiIDogWwogICAgICAgICAgICAgICJudW1iZXIiLAogICAgICAgICAgICAgICJzdHJpbmciLAogICAgICAgICAgICAgICJudWxsIgogICAgICAgICAgICBdLAogICAgICAgICAgICAibWFya2Rvd25EZXNjcmlwdGlvbiIgOiAiTnVtYmVyIG9mIHRvcCBwYXR0ZXJucyB0byBpbmNsdWRlIGJ5IGJ5dGVzXG5cblNldHMgdGhlIG51bWJlciBvZiB0b3AgbG9nIHBhdHRlcm5zIChieSBieXRlcykgdG8gaW5jbHVkZSBpbiB0aGUgb3V0cHV0LiAoQWNjZXB0cyBudW1iZXIgb3Igc3RyaW5nIHdpdGggJD0gcHJlZml4IGZvciBydW50aW1lIGV2YWx1YXRpb24pIChEZWZhdWx0OiAxMCkiLAogICAgICAgICAgICAiZGVmYXVsdCIgOiAxMAogICAgICAgICAgfSwKICAgICAgICAgICJ2clRlbXBsYXRlcyIgOiB7CiAgICAgICAgICAgICJ0eXBlIiA6IFsKICAgICAgICAgICAgICAibnVtYmVyIiwKICAgICAgICAgICAgICAic3RyaW5nIiwKICAgICAgICAgICAgICAibnVsbCIKICAgICAgICAgICAgXSwKICAgICAgICAgICAgIm1hcmtkb3duRGVzY3JpcHRpb24iIDogIk51bWJlciBvZiB0ZW1wbGF0ZXMgdG8gaW5jbHVkZSBpbiB2b2x1bWUgcmVkdWN0aW9uIHNhbXBsZXNcblxuU2V0cyB0aGUgbnVtYmVyIG9mIHRlbXBsYXRlIHNhbXBsZXMgdG8gaW5jbHVkZSBmb3IgdGhlIHZvbHVtZSByZWR1Y3Rpb24gcHJvb2YgZGlhbG9nIGluIHRoZSBjb25zb2xlIHZpZXdlci4gVGVtcGxhdGVzIGFyZSBzZWxlY3RlZCBieSByZWR1Y3Rpb24gcmF0aW8gKGNvbXBhY3Qgc2l6ZSB2cyBvcmlnaW5hbCBzaXplKSB3ZWlnaHRlZCBieSBmcmVxdWVuY3kuIChBY2NlcHRzIG51bWJlciBvciBzdHJpbmcgd2l0aCAkPSBwcmVmaXggZm9yIHJ1bnRpbWUgZXZhbHVhdGlvbikgKERlZmF1bHQ6IDEwKSIsCiAgICAgICAgICAgICJkZWZhdWx0IiA6IDEwCiAgICAgICAgICB9LAogICAgICAgICAgInZyRXZlbnRzUGVyVGVtcGxhdGUiIDogewogICAgICAgICAgICAidHlwZSIgOiBbCiAgICAgICAgICAgICAgIm51bWJlciIsCiAgICAgICAgICAgICAgInN0cmluZyIsCiAgICAgICAgICAgICAgIm51bGwiCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJtYXJrZG93bkRlc2NyaXB0aW9uIiA6ICJOdW1iZXIgb2YgZW5jb2RlZCBldmVudHMgcGVyIHRlbXBsYXRlIGluIHZvbHVtZSByZWR1Y3Rpb24gc2FtcGxlc1xuXG5TZXRzIHRoZSBudW1iZXIgb2YgZW5jb2RlZCBldmVudCBzYW1wbGVzIHRvIGluY2x1ZGUgcGVyIHRlbXBsYXRlIGZvciB0aGUgdm9sdW1lIHJlZHVjdGlvbiBwcm9vZiBkaWFsb2cuIChBY2NlcHRzIG51bWJlciBvciBzdHJpbmcgd2l0aCAkPSBwcmVmaXggZm9yIHJ1bnRpbWUgZXZhbHVhdGlvbikgKERlZmF1bHQ6IDEpIiwKICAgICAgICAgICAgImRlZmF1bHQiIDogMQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgfQogIH0sCiAgImFkZGl0aW9uYWxQcm9wZXJ0aWVzIiA6IHRydWUKfQ==</template>

```yaml
# 🔟❎ 'run' dev analysis output configuration

# Configure the dev output to generate a shareable console URL from analysis results.
# To learn more see https://doc.log10x.com/run/output/event/dev

# Set the 10x pipeline to 'run'
tenx: run

# =============================== Dependencies ================================

include:
  - run/modules/output/event/dev

# ============================== Dev Output Options ============================

devOutput:

    # 'enabled' controls whether to generate a console URL from analysis results
  - enabled: true

    # 'openBrowser' auto-opens the console URL in the default browser
    openBrowser: true

    # 'localOnly' outputs JSON to console without generating a URL.
    #  Use for privacy when you prefer not to generate an external URL.
    localOnly: false

    # 'baseUrl' sets the base URL of the console viewer
    baseUrl: https://console.log10x.com

    # 'sourceName' sets the display name of the input log source in the console viewer
    sourceName: your logs

    # 'dailyGb' sets the estimated daily log volume in GB for ROI projections.
    #  Adjust to match your environment's actual daily log volume.
    dailyGb: 100

    # 'filePath' specifies a path on disk to write the analysis JSON.
    #  If not specified, the JSON is only encoded into the URL.
    # filePath:

    # 'topPatterns' sets the number of top log patterns (by bytes) to include
    topPatterns: 10

    # 'vrTemplates' sets the number of template samples for volume reduction proof
    vrTemplates: 10

    # 'vrEventsPerTemplate' sets the number of encoded event samples per template
    vrEventsPerTemplate: 1
```

## :material-menu: Options

Specify the options below to [configure](/config "configure") multiple Dev output:

|Name|Description|Category|
|---|---|---|
|[devOutputEnabled](#devoutputenabled "enable/disable dev output")|Enable/disable dev output|Dev|
|[devOutputBaseUrl](#devoutputbaseurl "base URL of the console viewer")|Base URL of the console viewer|Dev|
|[devOutputOpenBrowser](#devoutputopenbrowser "auto-open results in browser")|Auto-open results in browser|Dev|
|[devOutputLocalOnly](#devoutputlocalonly "local-only mode, output JSON without generating a URL")|Local-only mode, output JSON without generating a URL|Dev|
|[devOutputFilePath](#devoutputfilepath "file path to write JSON output")|File path to write JSON output|Dev|
|[devOutputSourceName](#devoutputsourcename "display name of the input log source")|Display name of the input log source|Dev|
|[devOutputDailyGb](#devoutputdailygb "estimated daily log volume in GB for ROI projections")|Estimated daily log volume in GB for ROI projections|Dev|
|[devOutputTopPatterns](#devoutputtoppatterns "number of top patterns to include by bytes")|Number of top patterns to include by bytes|Advanced|
|[devOutputVrTemplates](#devoutputvrtemplates "number of templates to include in volume reduction samples")|Number of templates to include in volume reduction samples|Advanced|
|[devOutputVrEventsPerTemplate](#devoutputvreventspertemplate "number of encoded events per template in volume reduction samples")|Number of encoded events per template in volume reduction samples|Advanced|

### Dev

#### :material-menu-right-outline:**`devOutputEnabled`**

Enable/disable dev output.

|Type|Default|Category|
|---|---|---|
|Boolean|true|Dev|

Controls whether to generate a shareable console URL from the analysis results.


#### :material-menu-right-outline:**`devOutputBaseUrl`**

Base URL of the console viewer.

|Type|Default|Category|
|---|---|---|
|String|https://console.log10x.com|Dev|

Specifies the base URL of the Log10x Console used to view results.


#### :material-menu-right-outline:**`devOutputOpenBrowser`**

Auto-open results in browser.

|Type|Default|Category|
|---|---|---|
|Boolean|false|Dev|

If true, automatically opens the generated console URL in the default browser when the pipeline completes.


#### :material-menu-right-outline:**`devOutputLocalOnly`**

Local-only mode, output JSON without generating a URL.

|Type|Default|Category|
|---|---|---|
|Boolean|false|Dev|

If true, outputs the analysis JSON to the console without generating or opening a URL.
Use this for privacy when you prefer not to generate an external URL.


#### :material-menu-right-outline:**`devOutputFilePath`**

File path to write JSON output.

|Type|Default|Category|
|---|---|---|
|File||Dev|

Specifies a path on disk to write the analysis JSON.
If not specified, the JSON is only printed to console (in local mode) or encoded into the URL.


#### :material-menu-right-outline:**`devOutputSourceName`**

Display name of the input log source.

|Type|Default|Category|
|---|---|---|
|String|your logs|Dev|

Specifies the display name of the input log source shown in the console viewer.


#### :material-menu-right-outline:**`devOutputDailyGb`**

Estimated daily log volume in GB for ROI projections.

|Type|Default|Category|
|---|---|---|
|Number|100|Dev|

Specifies an estimated daily log volume in gigabytes.
The console viewer uses this value to project cost savings and ROI.
Adjust to match your environment's actual daily log volume.


### Advanced

#### :material-menu-right-outline:**`devOutputTopPatterns`**

Number of top patterns to include by bytes.

|Type|Default|Category|
|---|---|---|
|Number|10|Advanced|

Sets the number of top log patterns (by bytes) to include in the output.


#### :material-menu-right-outline:**`devOutputVrTemplates`**

Number of templates to include in volume reduction samples.

|Type|Default|Category|
|---|---|---|
|Number|10|Advanced|

Sets the number of template samples to include for the volume reduction proof dialog in the console viewer.
Templates are selected by reduction ratio (compact size vs original size) weighted by frequency.


#### :material-menu-right-outline:**`devOutputVrEventsPerTemplate`**

Number of encoded events per template in volume reduction samples.

|Type|Default|Category|
|---|---|---|
|Number|1|Advanced|

Sets the number of encoded event samples to include per template for the volume reduction proof dialog.


<br/>:material-github: This module is defined in [dev/module.yaml](https://github.com/log-10x/modules/tree/main/pipelines/run/modules/output/event/dev/module.yaml "dev/module.yaml"){target="\_blank"}.

