> ## Documentation Index
> Fetch the complete documentation index at: https://cache-pot.thatdevguy.in/llms.txt
> Use this file to discover all available pages before exploring further.

# Browse, search, and edit keys in the Cache-Pot dashboard

> The Key Browser lets you search, filter, create, edit, rename, and delete keys visually — including strings, hashes, lists, sets, and sorted sets.

The Key Browser gives you a visual interface for exploring and managing every key in your Cache-Pot instance. Navigate to [http://localhost:8080](http://localhost:8080) and select **browser** in the sidebar to open it. All reads and writes go through Cache-Pot's execute pipeline, so every mutation you make appears in the Profiler and is recorded in the AOF.

## Browsing keys

The left panel lists all keys with their type badge and remaining TTL. The browser paginates in pages of 200 keys and loads more on demand:

* Type a glob pattern in the **search box** to filter by key name — for example, `user:*` matches every key whose name starts with `user:`.
* Click a **type chip** (`string`, `hash`, `list`, `set`, `zset`, `vector`) to narrow the list to a single type. Click the same chip again to clear the filter.
* Toggle **tree view** with the `⌥ tree` button. In tree view, keys are grouped by the `:` delimiter into a collapsible hierarchy. Click **≡ flat** to return to the sorted flat list.
* Click any key row to open it in the detail panel on the right.
* Use **load more** to fetch the next page of results, or **↻ refresh** to restart the listing from scratch.

<Tip>
  Tree view groups keys by the `:` delimiter. Keys named `user:1:profile` and `user:2:profile` both appear under a collapsible `user` branch, making namespaced keyspaces much easier to navigate.
</Tip>

## Viewing and editing key values

The detail panel renders a type-appropriate editor for each key. Select a key in the left panel to open it:

* **String** — A text area shows the current value. Edit the text and click **save value** to write it back. If the value is larger than 16 KB the display is truncated; click **load more** to expand up to 4 MB, or use `GETRANGE` in the Workbench for very large values. Binary string values are shown as a hex preview and cannot be edited in the browser.
* **Hash** — A sortable field/value table. Click **✕** next to any row to delete that field with `HDEL`. Add new fields using the field and value inputs at the bottom, then click **hset**.
* **List** — An indexed list of values with page navigation for large lists. Add elements to the head with **lpush** or the tail with **rpush**. Remove from either end with **lpop** or **rpop**.
* **Set** — A member list. Add a new member with **sadd**, or remove an existing one with **✕**.
* **Sorted set** — A member/score table. Add members with a numeric score using **zadd**, or remove them with **✕**.
* **Vector** — A read-only display showing the number of vectors in the collection and their dimension. Use the [Workbench](/dashboard/workbench) to run `VSET` and `VSEARCH` commands against vector keys.

## Managing TTL

Each key's remaining TTL appears as a badge in the detail panel header (keys with no expiry show `ttl –1`). You can update the TTL at any time without changing the key's value:

* Enter a number of seconds in the TTL input and click **set ttl** to apply a new expiry with `PEXPIRE`.
* Click **persist** (visible only when the key has an active TTL) to remove the expiry entirely and make the key permanent.

<Info>
  Editing a string value via the Browser preserves the existing TTL automatically. The dashboard re-applies the previous expiry after writing the new value so your key does not silently become persistent.
</Info>

## Creating a key

<Steps>
  <Step title="Open the new-key dialog">
    Click the **+ new key** button in the page header.
  </Step>

  <Step title="Enter a name and choose a type">
    Type the key name in the input field, then select the type from the dropdown: `string`, `hash`, `list`, `set`, or `zset`.
  </Step>

  <Step title="Set an initial value">
    Enter the initial value in the format appropriate for the type:

    * **string** — plain text in the text area
    * **hash** — one `field=value` pair per line
    * **list** or **set** — one element per line
    * **zset** — one `score member` pair per line (e.g. `1.5 alice`)
  </Step>

  <Step title="Optionally set a TTL">
    Enter a TTL in seconds in the **ttl** field. Leave it blank to create a persistent key.
  </Step>

  <Step title="Create the key">
    Click **create**. The new key appears in the left panel and opens in the detail panel automatically.
  </Step>
</Steps>

## Renaming and deleting keys

**Renaming** — Click the **rename** action in the detail panel header, edit the key name in the modal, and confirm. The browser selects the renamed key automatically.

**Deleting a single key** — Click the **delete** button in the detail panel header and confirm the prompt. The key is removed immediately.

<Warning>
  Deletion is permanent and cannot be undone from the dashboard. Make sure you have selected the correct key before confirming.
</Warning>
