{
  "_id": "6a4794602f27a93436c0d99d",
  "Package": "shinychat",
  "Title": "Chat UI Component for 'shiny'",
  "Version": "0.4.0.9000",
  "Authors@R": "c(\nperson(\"Joe\", \"Cheng\", , \"joe@posit.co\", role = \"aut\"),\nperson(\"Carson\", \"Sievert\", , \"carson@posit.co\", role = \"aut\"),\nperson(\"Garrick\", \"Aden-Buie\", , \"garrick@adenbuie.com\", role = c(\"aut\", \"cre\"),\ncomment = c(ORCID = \"0000-0002-7111-0077\")),\nperson(\"Barret\", \"Schloerke\", , \"barret@posit.co\", role = \"aut\",\ncomment = c(ORCID = \"0000-0001-9986-114X\")),\nperson(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\"),\ncomment = c(ROR = \"03wc8by49\"))\n)",
  "Description": "Provides a scrolling chat interface with multiline input,\nsuitable for creating chatbot apps based on Large Language\nModels (LLMs). Designed to work particularly well with the\n'ellmer' R package for calling LLMs.",
  "License": "MIT + file LICENSE",
  "URL": "https://posit-dev.github.io/shinychat/r/,\nhttps://github.com/posit-dev/shinychat",
  "BugReports": "https://github.com/posit-dev/shinychat/issues",
  "Config/Needs/website": "tidyverse/tidytemplate, rmarkdown, weathR, gt,\nglue, bsicons",
  "Config/roxygen2/version": "8.0.0",
  "Config/testthat/edition": "3",
  "Encoding": "UTF-8",
  "Roxygen": "list(markdown = TRUE)",
  "Config/pak/sysreqs": "cmake make libuv1-dev libssl-dev zlib1g-dev",
  "Repository": "https://posit-dev.r-universe.dev",
  "Date/Publication": "2026-07-02 22:02:35 UTC",
  "RemoteUrl": "https://github.com/posit-dev/shinychat",
  "RemoteRef": "HEAD",
  "RemoteSha": "f8895f17ac87d2ca72a17eedddb73d807e1e5842",
  "RemoteSubdir": "pkg-r",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-07-02 22:09:45 UTC",
    "User": "root"
  },
  "Author": "Joe Cheng [aut],\nCarson Sievert [aut],\nGarrick Aden-Buie [aut, cre] (ORCID:\n<https://orcid.org/0000-0002-7111-0077>),\nBarret Schloerke [aut] (ORCID: <https://orcid.org/0000-0001-9986-114X>),\nPosit Software, PBC [cph, fnd] (ROR: <https://ror.org/03wc8by49>)",
  "Maintainer": "Garrick Aden-Buie <garrick@adenbuie.com>",
  "_user": "posit-dev",
  "_type": "src",
  "_file": "shinychat_0.4.0.9000.tar.gz",
  "_fileid": "https://r2.ropensci.org/d0d760fe83a4fa5d051e31d0af1e6282431d503ce2abb10d5670537b9e64b6eb",
  "_filesize": 1044556,
  "_sha256": "d0d760fe83a4fa5d051e31d0af1e6282431d503ce2abb10d5670537b9e64b6eb",
  "_expires": "2026-10-11T10:52:15.000Z",
  "_created": "2026-07-02T22:09:45.000Z",
  "_published": "2026-07-03T10:52:16.564Z",
  "_jobs": [
    {
      "job": 84984484406,
      "time": 197,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "NOTE",
      "artifact": "8052889495"
    },
    {
      "job": 84984484722,
      "time": 219,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "NOTE",
      "artifact": "8052896837"
    },
    {
      "job": 84984484772,
      "time": 99,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "NOTE",
      "artifact": "8052860863"
    },
    {
      "job": 84984484736,
      "time": 100,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "NOTE",
      "artifact": "8052860852"
    },
    {
      "job": 84984484092,
      "time": 202,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8052830966"
    },
    {
      "job": 84984484516,
      "time": 164,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "8052880219"
    },
    {
      "job": 84984484602,
      "time": 101,
      "config": "windows-devel",
      "r": "4.7.0",
      "check": "NOTE",
      "artifact": "8052861423"
    },
    {
      "job": 84984484392,
      "time": 94,
      "config": "windows-oldrel",
      "r": "4.5.3",
      "check": "NOTE",
      "artifact": "8052859344"
    },
    {
      "job": 84984484452,
      "time": 131,
      "config": "windows-release",
      "r": "4.6.1",
      "check": "NOTE",
      "artifact": "8052870214"
    }
  ],
  "_host": "GitHub-Actions",
  "_buildurl": "https://github.com/r-universe/posit-dev/actions/runs/28624590429",
  "_status": "success",
  "_upstream": "https://github.com/posit-dev/shinychat",
  "_commit": {
    "id": "f8895f17ac87d2ca72a17eedddb73d807e1e5842",
    "author": "Garrick Aden-Buie <garrick@adenbuie.com>",
    "committer": "GitHub <noreply@github.com>",
    "message": "feat: refine chat history trigger, drawer, and fill layout (#270)\n\n* feat(js,pkg-py,pkg-r): anchor chat history UI to the full-width container\n\nMove the history trigger button and drawer out of the messages area so\nthey anchor to the whole chat container: the trigger sits in the\ncontainer's top-left corner and the drawer scrim now covers the entire\nelement (messages, input, and footer) instead of just the messages.\n\nTo let the scrim span the full width while keeping the visible chat\ncolumn constrained, the container is now width:100% and a new\n.shiny-chat-wrapper holds the width limit + margin-inline:auto around\nthe messages, input, and footer. The developer's `width=` argument is\nemitted as a pseudo-private `--_width` custom property on the container\nand consumed as max-width on the wrapper. The container stays display:grid\n(not flex) so bslib's fill child rules remain inert and the messages area\nstill grows to fill.\n\nAlso update the Python ChatController's input locator to route through\nthe new wrapper, and regenerate the affected R HTML snapshots.\n\n* feat(js,pkg-py,pkg-r): keep the chat history trigger clear of sidebar layouts\n\nPosition the history drawer trigger so it stays usable alongside a bslib\nsidebar layout and doesn't collide with the sidebar's collapse toggle:\n\n- Give the container a --_min-height floor (default 400px) when the history\n  trigger is present, so the drawer has room to be usable.\n- Detect when the trigger's corner overlaps another visible element (e.g. a\n  collapsed sidebar's toggle) and nudge it inward via --_history-trigger-shift,\n  re-measuring on resize and sidebar collapse/expand.\n- Support data-history-placement=\"right\" to mirror the trigger and drawer to\n  the inline-end edge (pure CSS, parameterized by --_drawer-x).\n- Hide the sidebar collapse toggle while the drawer is open over a collapsed\n  same-side sidebar: it paints over the drawer and z-index can't reconcile the\n  two subtrees. Re-run the overlap nudge when the drawer closes ",
    "time": 1783029755
  },
  "_maintainer": {
    "name": "Garrick Aden-Buie",
    "email": "garrick@adenbuie.com",
    "login": "gadenbuie",
    "mastodon": "@grrrck@fosstodon.org",
    "bluesky": "@grrrck.xyz",
    "description": "Software engineer for Shiny at @posit-pbc",
    "uuid": 5420529,
    "orcid": "0000-0002-7111-0077"
  },
  "_distro": "resolute",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.1.0",
      "role": "Depends"
    },
    {
      "package": "base64enc",
      "role": "Imports"
    },
    {
      "package": "bslib",
      "role": "Imports"
    },
    {
      "package": "cli",
      "role": "Imports"
    },
    {
      "package": "coro",
      "role": "Imports"
    },
    {
      "package": "ellmer",
      "version": ">= 0.4.1",
      "role": "Imports"
    },
    {
      "package": "fastmap",
      "role": "Imports"
    },
    {
      "package": "htmltools",
      "role": "Imports"
    },
    {
      "package": "jsonlite",
      "role": "Imports"
    },
    {
      "package": "lifecycle",
      "role": "Imports"
    },
    {
      "package": "promises",
      "version": ">= 1.3.2",
      "role": "Imports"
    },
    {
      "package": "R6",
      "version": ">= 2.5.0",
      "role": "Imports"
    },
    {
      "package": "rlang",
      "version": ">= 1.1.0",
      "role": "Imports"
    },
    {
      "package": "S7",
      "role": "Imports"
    },
    {
      "package": "shiny",
      "version": ">= 1.10.0",
      "role": "Imports"
    },
    {
      "package": "covr",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "later",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    },
    {
      "package": "withr",
      "role": "Suggests"
    }
  ],
  "_owner": "posit-dev",
  "_selfowned": true,
  "_usedby": 6,
  "_updates": [
    {
      "week": "2025-27",
      "n": 1
    },
    {
      "week": "2025-29",
      "n": 3
    },
    {
      "week": "2025-31",
      "n": 1
    },
    {
      "week": "2025-32",
      "n": 11
    },
    {
      "week": "2025-33",
      "n": 2
    },
    {
      "week": "2025-34",
      "n": 4
    },
    {
      "week": "2025-36",
      "n": 9
    },
    {
      "week": "2025-37",
      "n": 29
    },
    {
      "week": "2025-40",
      "n": 3
    },
    {
      "week": "2025-42",
      "n": 1
    },
    {
      "week": "2025-45",
      "n": 1
    },
    {
      "week": "2025-46",
      "n": 1
    },
    {
      "week": "2025-47",
      "n": 7
    },
    {
      "week": "2025-48",
      "n": 3
    },
    {
      "week": "2025-49",
      "n": 1
    },
    {
      "week": "2026-02",
      "n": 1
    },
    {
      "week": "2026-03",
      "n": 1
    },
    {
      "week": "2026-07",
      "n": 1
    },
    {
      "week": "2026-10",
      "n": 2
    },
    {
      "week": "2026-11",
      "n": 1
    },
    {
      "week": "2026-12",
      "n": 4
    },
    {
      "week": "2026-14",
      "n": 5
    },
    {
      "week": "2026-15",
      "n": 1
    },
    {
      "week": "2026-16",
      "n": 3
    },
    {
      "week": "2026-17",
      "n": 2
    },
    {
      "week": "2026-18",
      "n": 5
    },
    {
      "week": "2026-19",
      "n": 3
    },
    {
      "week": "2026-20",
      "n": 6
    },
    {
      "week": "2026-21",
      "n": 9
    },
    {
      "week": "2026-22",
      "n": 8
    },
    {
      "week": "2026-23",
      "n": 3
    },
    {
      "week": "2026-24",
      "n": 6
    },
    {
      "week": "2026-25",
      "n": 5
    },
    {
      "week": "2026-26",
      "n": 7
    },
    {
      "week": "2026-27",
      "n": 6
    }
  ],
  "_tags": [
    {
      "name": "py/v0.1.0",
      "date": "2025-08-07"
    },
    {
      "name": "py/v0.2.0",
      "date": "2025-09-10"
    },
    {
      "name": "py/v0.2.1",
      "date": "2025-09-10"
    },
    {
      "name": "py/v0.2.2",
      "date": "2025-09-10"
    },
    {
      "name": "py/v0.2.3",
      "date": "2025-09-10"
    },
    {
      "name": "py/v0.2.4",
      "date": "2025-09-10"
    },
    {
      "name": "py/v0.2.5",
      "date": "2025-09-11"
    },
    {
      "name": "py/v0.2.6",
      "date": "2025-09-11"
    },
    {
      "name": "py/v0.2.7",
      "date": "2025-09-11"
    },
    {
      "name": "py/v0.2.8",
      "date": "2025-09-11"
    },
    {
      "name": "r/v0.3.0",
      "date": "2025-11-21"
    },
    {
      "name": "py/v0.2.9",
      "date": "2026-02-09"
    },
    {
      "name": "py/v0.3.0",
      "date": "2026-04-30"
    },
    {
      "name": "py/v0.3.1",
      "date": "2026-05-01"
    },
    {
      "name": "py/v0.3.2",
      "date": "2026-05-21"
    },
    {
      "name": "py/v0.4.0",
      "date": "2026-05-27"
    },
    {
      "name": "r/v0.4.0",
      "date": "2026-06-01"
    },
    {
      "name": "py/v0.5.0",
      "date": "2026-06-15"
    },
    {
      "name": "py/v0.5.1",
      "date": "2026-06-15"
    }
  ],
  "_stars": 132,
  "_contributors": [
    {
      "user": "gadenbuie",
      "count": 98,
      "uuid": 5420529
    },
    {
      "user": "cpsievert",
      "count": 92,
      "uuid": 1365941
    },
    {
      "user": "jcheng5",
      "count": 38,
      "uuid": 129551
    },
    {
      "user": "schloerke",
      "count": 8,
      "uuid": 93231
    },
    {
      "user": "deepanshkhurana",
      "count": 1,
      "uuid": 26517718
    },
    {
      "user": "elnelson575",
      "count": 1,
      "uuid": 16469084
    },
    {
      "user": "harshit28j",
      "count": 1,
      "uuid": 48647625
    },
    {
      "user": "karangattu",
      "count": 1,
      "uuid": 4220325
    },
    {
      "user": "markmcd",
      "count": 1,
      "uuid": 109308
    },
    {
      "user": "thisisnic",
      "count": 1,
      "uuid": 13715823
    },
    {
      "user": "skaltman",
      "count": 1,
      "uuid": 18153457
    },
    {
      "user": "simonpcouch",
      "count": 1,
      "uuid": 35748691
    }
  ],
  "_userbio": {
    "uuid": 107264312,
    "type": "organization",
    "name": "posit-dev",
    "followers": 974
  },
  "_downloads": {
    "count": 4782,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/shinychat"
  },
  "_devurl": "https://github.com/posit-dev/shinychat",
  "_pkgdown": "https://posit-dev.github.io/shinychat/r/",
  "_searchresults": 352,
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "extra/shinychat.html",
    "LICENSE",
    "manual.pdf"
  ],
  "_homeurl": "https://github.com/posit-dev/shinychat",
  "_realowner": "posit-dev",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.1.1",
      "date": "2024-12-18"
    },
    {
      "version": "0.2.0",
      "date": "2025-05-16"
    },
    {
      "version": "0.3.0",
      "date": "2025-11-20"
    },
    {
      "version": "0.4.0",
      "date": "2026-06-01"
    }
  ],
  "_exports": [
    "chat_app",
    "chat_append",
    "chat_append_message",
    "chat_attachment",
    "chat_clear",
    "chat_enable_history",
    "chat_get_greeting",
    "chat_greeting",
    "chat_mod_server",
    "chat_mod_ui",
    "chat_restore",
    "chat_server",
    "chat_set_greeting",
    "chat_ui",
    "contents_shinychat",
    "ContentSlashCommand",
    "ConversationStore",
    "FileConversationStore",
    "history_options",
    "markdown_stream",
    "output_markdown_stream",
    "update_chat_user_input"
  ],
  "_help": [
    {
      "page": "chat_app",
      "title": "Open a live chat application in the browser",
      "topics": [
        "chat_app",
        "chat_server"
      ]
    },
    {
      "page": "chat_append",
      "title": "Append an assistant response (or user message) to a chat control",
      "topics": [
        "chat_append"
      ]
    },
    {
      "page": "chat_append_message",
      "title": "Low-level function to append a message to a chat control",
      "topics": [
        "chat_append_message"
      ]
    },
    {
      "page": "chat_attachment",
      "title": "Create an attachment from a local file path",
      "topics": [
        "chat_attachment"
      ]
    },
    {
      "page": "chat_clear",
      "title": "Clear all messages from a chat control",
      "topics": [
        "chat_clear"
      ]
    },
    {
      "page": "chat_enable_history",
      "title": "Enable conversation history for a chat",
      "topics": [
        "chat_enable_history"
      ]
    },
    {
      "page": "chat_get_greeting",
      "title": "Get the current greeting content",
      "topics": [
        "chat_get_greeting"
      ]
    },
    {
      "page": "chat_greeting",
      "title": "Create a greeting for a chat UI",
      "topics": [
        "chat_greeting"
      ]
    },
    {
      "page": "chat_restore",
      "title": "Add Shiny bookmarking for shinychat",
      "topics": [
        "chat_restore"
      ]
    },
    {
      "page": "chat_set_greeting",
      "title": "Set the greeting for a chat UI",
      "topics": [
        "chat_set_greeting"
      ]
    },
    {
      "page": "chat_ui",
      "title": "Create a chat UI element",
      "topics": [
        "chat_ui"
      ]
    },
    {
      "page": "contents_shinychat",
      "title": "Format ellmer content for shinychat",
      "topics": [
        "contents_shinychat"
      ]
    },
    {
      "page": "ContentSlashCommand",
      "title": "Slash command content",
      "topics": [
        "ContentSlashCommand"
      ]
    },
    {
      "page": "ConversationStore",
      "title": "Abstract base class for conversation storage backends",
      "topics": [
        "ConversationStore"
      ]
    },
    {
      "page": "FileConversationStore",
      "title": "File-based conversation storage backend",
      "topics": [
        "FileConversationStore"
      ]
    },
    {
      "page": "history_options",
      "title": "Configure chat history options",
      "topics": [
        "history_options"
      ]
    },
    {
      "page": "markdown_stream",
      "title": "Stream markdown content",
      "topics": [
        "markdown_stream"
      ]
    },
    {
      "page": "output_markdown_stream",
      "title": "Create a UI element for a markdown stream.",
      "topics": [
        "output_markdown_stream"
      ]
    },
    {
      "page": "update_chat_user_input",
      "title": "Update the user input of a chat control",
      "topics": [
        "update_chat_user_input"
      ]
    }
  ],
  "_pkglogo": "https://github.com/posit-dev/shinychat/raw/HEAD/pkg-r/man/figures/logo.svg",
  "_readme": "https://github.com/posit-dev/shinychat/raw/HEAD/pkg-r/README.md",
  "_rundeps": [
    "askpass",
    "base64enc",
    "bslib",
    "cachem",
    "cli",
    "commonmark",
    "coro",
    "curl",
    "digest",
    "ellmer",
    "fastmap",
    "fontawesome",
    "fs",
    "glue",
    "htmltools",
    "httpuv",
    "httr2",
    "jquerylib",
    "jsonlite",
    "later",
    "lifecycle",
    "magrittr",
    "memoise",
    "mime",
    "openssl",
    "otel",
    "pillar",
    "pkgconfig",
    "promises",
    "R6",
    "rappdirs",
    "Rcpp",
    "rlang",
    "S7",
    "sass",
    "shiny",
    "sourcetools",
    "sys",
    "tibble",
    "utf8",
    "vctrs",
    "withr",
    "xtable"
  ],
  "_score": 10.886429405411562,
  "_indexed": true,
  "_nocasepkg": "shinychat",
  "_universes": [
    "posit-dev",
    "gadenbuie"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.4.0.9000",
      "date": "2026-07-02T22:12:46.000Z",
      "distro": "resolute",
      "commit": "f8895f17ac87d2ca72a17eedddb73d807e1e5842",
      "fileid": "https://r2.ropensci.org/62711336f2891f29963b84cabd8ee1751e082695169c0bc45335c0f1c14707cf",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/posit-dev/actions/runs/28624590429"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.4.0.9000",
      "date": "2026-07-02T22:13:10.000Z",
      "distro": "resolute",
      "commit": "f8895f17ac87d2ca72a17eedddb73d807e1e5842",
      "fileid": "https://r2.ropensci.org/de8c785074e1b0002b4c5abdf44f8b0d8165f8fc08a297487e6c70898476d4dd",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/posit-dev/actions/runs/28624590429"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.4.0.9000",
      "date": "2026-07-02T22:11:18.000Z",
      "commit": "f8895f17ac87d2ca72a17eedddb73d807e1e5842",
      "fileid": "https://r2.ropensci.org/b58c304abb38bf637ea8f2cbed51e455517e9236f3ed41912ba4f82c67c5e956",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/posit-dev/actions/runs/28624590429"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "0.4.0.9000",
      "date": "2026-07-02T22:11:18.000Z",
      "commit": "f8895f17ac87d2ca72a17eedddb73d807e1e5842",
      "fileid": "https://r2.ropensci.org/f3be05f0a625a1b5ae6c57fbcfe9dc596a29da6c8476b12c87ba11e98992bd4d",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/posit-dev/actions/runs/28624590429"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.4.0.9000",
      "date": "2026-07-02T22:12:47.000Z",
      "commit": "f8895f17ac87d2ca72a17eedddb73d807e1e5842",
      "fileid": "https://r2.ropensci.org/a3adaa0ac4dc18101d389ce08db97f2da9e1a3129eb2f43cb6edf2c134a354dd",
      "status": "success",
      "buildurl": "https://github.com/r-universe/posit-dev/actions/runs/28624590429"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.4.0.9000",
      "date": "2026-07-02T22:10:58.000Z",
      "commit": "f8895f17ac87d2ca72a17eedddb73d807e1e5842",
      "fileid": "https://r2.ropensci.org/3daa32e980402f6fcd141556911eab4a44374e70e5cd4ef67ecef33366c4b35c",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/posit-dev/actions/runs/28624590429"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.4.0.9000",
      "date": "2026-07-02T22:10:53.000Z",
      "commit": "f8895f17ac87d2ca72a17eedddb73d807e1e5842",
      "fileid": "https://r2.ropensci.org/42ae098c7eae4d8337804c247e9f3290181a5cc5376bcc7a7bbf8b8f567e9a47",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/posit-dev/actions/runs/28624590429"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.4.0.9000",
      "date": "2026-07-02T22:11:23.000Z",
      "commit": "f8895f17ac87d2ca72a17eedddb73d807e1e5842",
      "fileid": "https://r2.ropensci.org/5ba4ee3affdf5d368872b11fd91b2492e73da4e3936d949e8d2e3b482bba79d6",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/posit-dev/actions/runs/28624590429"
    }
  ]
}