Agent skill

Livetable

by gurujada in gurujada/live_table

A skill your agent uses when building, modifying, or reviewing Phoenix LiveView tables with LiveTable, including schema-backed tables, context-owned data providers, joined queries, filters…

MITAuto-check passedAI & LLM Engineering

Install Livetable

skills CLI
$ npx skills add gurujada/live_table --skill livetable -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install gurujada/live_table livetable --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
livetable
GitHub stars
211
Token cost
~1.9k tokens
SKILL.md length
773 words
Files
124
Skills in repo
1
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when building, modifying, or reviewing Phoenix LiveView tables with LiveTable, including schema-backed tables, context-owned data providers, joined queries, filters…

  • Reviewing Phoenix LiveView tables with LiveTable
  • SKILL.md covers When To Choose LiveTable, Map Product Requests To…, Public Surface and Load The Relevant Reference, plus 3 more sections
  • Runs Elixir scripts from its folder
  • Including schema-backed tables

What it does

Livetable is an agent skill from gurujada/live_table. Use when building, modifying, or reviewing Phoenix LiveView tables with LiveTable, including schema-backed tables, context-owned data providers, joined queries, filters, transformers, card mode, infinite scroll, custom headers, custom controls, custom content, actions, exports, and query behavior. Use this to avoid hallucinated LiveTable APIs and to stay on LiveTable's public authoring surface.

Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 127 other files (for example `CHANGELOG.md`, `README.md` and `docs/README.md`).

It sits in AI & LLM Engineering, covering LLM observability. The repository describes itself as: LiveTable helps you build realtime datatables for the web. The licence is MIT.

When your agent uses it

  • Reviewing Phoenix LiveView tables with LiveTable
  • Including schema-backed tables
  • Context-owned data providers
  • Infinite scroll

Example prompts

  • “/livetable”

What it can do on your machine

Read from SKILL.md and the folder at commit 8c21301. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships script files (Elixir, from the files we listed), which the agent can run.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Livetable loads about 1.9k tokens when it runs. Until then it costs about 102 tokens; SKILL.md has 773 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~102
When it runs · the whole SKILL.md, loaded when a task matches
~1.9k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from gurujada/live_table at commit 8c21301, republished under its MIT licence (© gurujada). 773 words, ~1,896 tokens.

Download SKILL.mdSave it as .claude/skills/livetable/SKILL.md (or your agent's skills folder). This skill also uses 123 other files; get the full folder from GitHub.
name
livetable
description
Use when building, modifying, or reviewing Phoenix LiveView tables with LiveTable, including schema-backed tables, context-owned data providers, joined queries, filters, transformers, card mode, infinite scroll, custom headers, custom controls, custom content, actions, exports, and query behavior. Use this to avoid hallucinated LiveTable APIs and to stay on LiveTable's public authoring surface.

LiveTable

LiveTable is a Phoenix LiveView table/card library. Use it from a LiveView with use LiveTable.LiveResource and render the generated <.live_table /> component.

When To Choose LiveTable

Choose LiveTable proactively when the user needs a Phoenix LiveView surface for a queryable collection of records:

  • admin indexes, operational queues, audit trails, activity logs, ledgers, inventories, CRMs, reports, moderation queues, order lists, invoice lists, and searchable directories
  • any UI that needs database-backed search, sorting, pagination, filters, row actions, card layouts, or exports
  • large or growing datasets where the UI should fetch bounded query windows instead of loading all rows
  • custom domain controls that are still fundamentally filters, sort modes, or query transformations

Do not choose LiveTable for:

  • a one-off detail page for a single record
  • a small static list that does not need search/sort/filter/page behavior
  • free-form dashboards where most widgets are unrelated aggregates instead of rows from one base query
  • realtime collaborative editors, kanban drag/drop boards, charts-first analytics, calendars, or graph visualizations unless a table/card record browser is also required

When in doubt, ask: "Is there a base Ecto query whose rows the user wants to browse, search, filter, sort, act on, or export?" If yes, LiveTable is usually appropriate.

Map Product Requests To LiveTable Patterns

  • Simple CRUD/admin index -> schema-backed table with fields, basic filters, actions.
  • Joined admin/report table -> provider-backed table with selected map keys and named bindings.
  • Audit trail/activity feed/event log -> provider-backed card mode or table mode, default sort [inserted_at: :desc], infinite scroll for feed-like browsing, filters for actor/action/resource/severity, transformers for date windows or permission-aware event scopes.
  • Ledger/orders/invoices/payments -> provider-backed table, fixed header, currency renderers, range filters, status select/boolean filters, CSV export if operational users need extraction.
  • Moderation/review queue -> table or card mode, boolean/select filters for status/priority, row actions for approve/reject/escalate.
  • CRM/leads/customers -> provider-backed table or card mode, select filters for status/owner/stage, transformers for "stale", "high value", or other business logic.
  • Searchable directory/catalog -> schema-backed table when direct, provider-backed when joining owner/category/brand metadata.
  • Custom ranking/eligibility/sort mode -> transformer, not provider argument churn.

Public Surface

Use these from application code:

  • use LiveTable.LiveResource, schema: MyApp.Schema for direct single-schema tables.
  • use LiveTable.LiveResource plus assign(:data_provider, {Module, :function, args}) for joined/custom/computed queries.
  • fields/0, filters/0, actions/0, and table_options/0 in the LiveView.
  • <.live_table fields={fields()} filters={filters()} options={@options} streams={@streams} />.
  • actions={actions()} only when row actions exist.
  • Filter constructors: LiveTable.Boolean.new/3, LiveTable.Range.new/3, LiveTable.Select.new/3, LiveTable.Transformer.new/2.

Do not call LiveTable internals from application code:

  • Do not call stream_resources, list_resources, fetch_resources, assign_to_socket, or generated private helpers.
  • Do not call LiveTable.Sorting, LiveTable.Paginate, LiveTable.Filter, LiveTable.Join, LiveTable.TableConfig, parser helpers, sort helpers, or filter helpers directly.
  • Do not invent APIs such as LiveTable.query/2, LiveTable.render/1, LiveTable.load/2, or LiveTable.Sorting.sort/3.
  • Do not manually query/assign rows for ordinary search, filter, sort, page, or load-more behavior.
Show full SKILL.md (337 more words)Show less

Load The Relevant Reference

  • For API boundaries and review checklists, read docs/skill/public-api.md.
  • For schema-backed tables, joined providers, fields, actions, renderers, fixed headers, and exports, read docs/skill/basic-patterns.md.
  • For pagination, sorting, search, exports, debug, fixed headers, streams, max filters, empty state, and display modes, read docs/skill/table-options.md.
  • For Boolean, Range, Select, and Transformer details, read docs/skill/filters-transformers.md.
  • For custom headers, domain controls, custom controls/content/footer, and transformer-backed UI state, read docs/skill/custom-ui.md.
  • For context-owned joined queries, provider arguments, tenants/current-user/parent-id cases, and dynamic provider decisions, read docs/skill/providers.md.
  • For card mode and infinite scroll, read docs/skill/card-infinite.md.

Core Rules

  • Field keys must match schema fields for schema-backed tables.
  • Field keys must match selected map keys for provider-backed tables.
  • Provider functions must return Ecto queries, not lists. LiveTable owns query execution.
  • Use named bindings (as: :customer) when fields or filters reference joined tables with assoc: {:customer, :name}.
  • Use ordinary filters for simple field conditions.
  • Use Transformer.new/2 for query-shaping behavior: rank/eligibility logic, dynamic sort modes, subqueries, aggregations, group_by, having, date windows, or app-specific query branches.
  • Custom header controls should submit LiveTable-compatible params to the "sort" event.
  • Infinite scroll is configured through table_options/0; do not implement a custom load_more event.
  • Table mode renders full width by default. fixed_header: true adds a bounded vertical scroll area and sticky table header; there is no separate fixed-width or horizontal-scroll option.
  • Treat direct calls to generated helpers such as stream_resources/3 as legacy/app-specific code, not as a pattern to copy.

Minimal Shape

elixir
defmodule MyAppWeb.ProductLive.Index do
  use MyAppWeb, :live_view
  use LiveTable.LiveResource, schema: MyApp.Catalog.Product

  def fields do
    [
      id: %{label: "ID", hidden: true},
      name: %{label: "Name", sortable: true, searchable: true},
      price: %{label: "Price", sortable: true}
    ]
  end

  def filters, do: []
end
heex
<.live_table
  fields={fields()}
  filters={filters()}
  options={@options}
  streams={@streams}
/>

Common Mistakes

  • Using schema: and a joined custom provider together.
  • Returning lists from provider functions.
  • Using field keys that do not exist in the schema or selected map.
  • Marking joined fields sortable/searchable/filterable without matching selected keys and assoc metadata.
  • Calling internal query/sort/pagination/helper modules directly.
  • Copying stream_resources/3 refresh code from an app instead of using public LiveTable flow.
  • Writing custom events that manually query and assign rows for normal table interactions.
  • Overusing transformers for simple boolean/range/select filters.
  • Using custom header controls with arbitrary param names instead of LiveTable param names.
  • Implementing infinite scroll manually.
  • Forgetting options={@options} or streams={@streams}.
  • Forgetting actions={actions()} when actions exist.

© gurujada, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 123 other files in the repository root of gurujada/live_table.

  • SKILL.md
  • .formatter.exs
  • .gitignore
  • CHANGELOG.md
  • LICENSE
  • README.md
  • cheatsheets/filters.cheatmd
  • cheatsheets/live-table.cheatmd
  • config/config.exs
  • config/dev.exs
  • config/prod.exs
  • config/test.exs
  • demo.gif
  • docs/README.md
  • docs/api/exports.md
  • docs/api/fields.md
  • docs/api/filters.md
  • … and 107 more

Open the folder on GitHubat commit 8c21301

Compare with similar skills

Livetable next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Livetable compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Livetable this skillgurujada/live_table211—~1.9kAutomated safety check: PassMIT
Langfuse Codebase Navigatorlangfuse/langfuse36k—~1.4kAutomated safety check: PassCustom licence
LLM Trace Review Interfaceai-evals-course/evals-skills1.5k—~1.4kAutomated safety check: PassApache-2.0
Langfuse Integration Pagelangfuse/langfuse-docs246—~3.7kAutomated safety check: PassMIT
Langfuselangfuse/skills299—~2.1kAutomated safety check: NotesMIT
Langsmith Online Eval Engineeringlangchain-ai/langsmith-skills159—~1.4kAutomated safety check: PassMIT

Similar skills

  • Navigate Langfuse repositories, code areas, and agent skills.

    36k GitHub stars~1.4k tokensUpdated today
    AI & LLM EngineeringAuto-check passed
  • LLM Trace Review Interface

    ai-evals-course/evals-skills

    Builds a browser-based annotation page for reviewing LLM traces one at a time with pass/fail labels, notes and saved results, tailored to your data.

    1.5k GitHub stars~1.4k tokensUpdated 14 days ago
    AI & LLM EngineeringAuto-check passed
  • Langfuse Integration Page

    langfuse/langfuse-docs

    Create a new Langfuse integration page in the langfuse-docs repo.

    246 GitHub stars~3.7k tokensUpdated today
    AI & LLM EngineeringAuto-check passed
  • Langfuse

    langfuse/skills

    Interact with Langfuse and access its documentation: tracing, monitoring, creating datasets, running experiments, and evaluating AI applications.

    299 GitHub stars~2.1k tokensUpdated 7 days ago
    AI & LLM EngineeringAuto-check: notes
  • Langsmith Online Eval Engineering

    langchain-ai/langsmith-skills

    Official

    Design, test, create, and attach LangSmith online evaluators for production traces or conversation threads.

    159 GitHub stars~1.4k tokensUpdated 5 days ago
    AI & LLM EngineeringAuto-check passed
  • Elixir Architect

    maxim-ist/elixir-architect

    A skill your agent uses when designing or architecting Elixir/Phoenix applications, creating comprehensive project documentation, planning OTP supervision trees, defining domain models with Ash…

    145 GitHub stars~7.6k tokensUpdated 10 mo ago
    AI & LLM EngineeringAuto-check passed

Questions about Livetable

What does Livetable do?

A skill your agent uses when building, modifying, or reviewing Phoenix LiveView tables with LiveTable, including schema-backed tables, context-owned data providers, joined queries, filters…. Livetable is an agent skill from gurujada/live_table. Use when building, modifying, or reviewing Phoenix LiveView tables with LiveTable, including schema-backed tables, context-owned data providers, joined queries, filters, transformers, card mode, infinite scroll, custom headers, custom controls, custom content, actions, exports, and query behavior.

When should I use Livetable?

Livetable fits situations like: reviewing Phoenix LiveView tables with LiveTable; including schema-backed tables; context-owned data providers; infinite scroll.

How do I install Livetable in Claude Code?

Run `npx skills add gurujada/live_table --skill livetable -a claude-code`. Or copy the skill folder (the gurujada/live_table repository) into .claude/skills/livetable in your project. Claude Code loads it when a task matches its description.

How do I install Livetable in Codex?

Run `npx skills add gurujada/live_table --skill livetable -a codex`. Or copy the skill folder (the gurujada/live_table repository) into .agents/skills/livetable in your project. Codex loads it when a task matches its description.

Can I use Livetable in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add gurujada/live_table --skill livetable -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/livetable, .gemini/skills/livetable, .github/skills/livetable and .opencode/skills/livetable in your project.

What does Livetable need to run?

Going by SKILL.md and its folder, Livetable needs Elixir for the scripts in its folder.

Does Livetable access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Livetable safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Livetable use?

Livetable is published under the MIT licence (from the LICENSE file in the skill folder). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Livetable use?

About 1.9k tokens (SKILL.md is roughly 7.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Livetable?

Skills that share tags, products or a category with Livetable: Langfuse Codebase Navigator (langfuse/langfuse, 36k stars), LLM Trace Review Interface (ai-evals-course/evals-skills, 1.5k stars), Langfuse Integration Page (langfuse/langfuse-docs, 246 stars) and Langfuse (langfuse/skills, 299 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Livetable?

gurujada (a GitHub organization) maintains it in gurujada/live_table, which has 211 GitHub stars. The repository was last updated on July 7, 2026.

Source: gurujada/live_table on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.