v0.8.7

Pre-release

danny-avila/LibreChatv0.8.7Jun 24, 2026by danny-avila

AI Summary

This release introduces chat projects for organization, a context usage gauge, and GitHub sync for skills. It features a redesigned settings interface, bundled Admin Panel, and support for Claude Fable 5 and OpenID improvements.

Key Highlights

  • Chat projects for organizing chats into folders
  • Context Usage gauge showing window usage, tokens, and cost
  • Agents with skills enabled can author new skills on the fly
  • GitHub sync for skills and local bundled skills
  • Released Code Interpreter for secure code execution

New Features

  • Chat projects and pinned conversations
  • Context Usage Gauge
  • GitHub Skill Sync
  • Redesigned Settings with registry-driven dialogs
  • Claude Fable 5 Support
  • Native Anthropic custom endpoints

Full Release Notes

https://www.librechat.ai/changelog/v0.8.7

## ๐Ÿž๏ธ Highlights

- Chat projects for organizing chats into folders
- Context Usage gauge showing current window usage, tokens used, and cost (optional)
- Agents with skills enabled can author new skills on the fly
- GitHub sync for skills, and local bundled skills
- Settings redesign, keyboard shortcuts, default pinned tools, and pinned conversations.
- Provider updates:
  - Claude Fable 5, Anthropic custom endpoints, prompt cache TTL, Google URL Context with YouTube handling, and custom endpoint option for reasoning replay.
- Shared links, OpenID, and MCP now have stronger access controls and safer auth flows.
- Bundled [Admin Panel](https://github.com/ClickHouse/librechat-admin-panel) to default compose files
- Released [Code Interpreter](https://github.com/ClickHouse/code-interpreter) for secure code execution and file generation

<details>
<summary><h2>Click to expand Release Notes</h2></summary>

For detailed changes in the release candidate, see:

- [v0.8.7-rc1](https://www.librechat.ai/changelog/v0.8.7-rc1)

---

## Changes Since v0.8.7-rc1

### โœจ Features

- ๐Ÿ”š feat: Add Bottom Terminus Node to Message Minimap Navigation by [@danny-avila](https://github.com/danny-avila) in [#13853](https://github.com/danny-avila/LibreChat/pull/13853)
- ๐Ÿช™ feat: SDK-Aligned Context-Usage Projection by [@danny-avila](https://github.com/danny-avila) in [#13801](https://github.com/danny-avila/LibreChat/pull/13801)
- ๐Ÿ”– feat: Add Pinned Conversations by [@dlew](https://github.com/dlew) in [#13492](https://github.com/danny-avila/LibreChat/pull/13492)
- ๐Ÿ“› feat: Tag Langfuse Traces With Tenant ID by [@upman](https://github.com/upman) in [#13808](https://github.com/danny-avila/LibreChat/pull/13808)
- ๐Ÿ•ฐ๏ธ feat: Resolve Agent Prompt Time Variables in User's Timezone by [@berry-13](https://github.com/berry-13) in [#13815](https://github.com/danny-avila/LibreChat/pull/13815)
- ๐ŸŽ›๏ธ feat: Redesign Settings with Registry-Driven Dialog, Search, and Mobile Drill-In by [@berry-13](https://github.com/berry-13) in [#13722](https://github.com/danny-avila/LibreChat/pull/13722)
- ๐Ÿ”‘ feat: Agent API Keys management UI in Settings โ†’ Data controls by [@berry-13](https://github.com/berry-13) in [#13819](https://github.com/danny-avila/LibreChat/pull/13819)
- ๐Ÿ“’ feat: Audit Log Backend for SystemGrant Assign and Revoke Events by [@dustinhealy](https://github.com/dustinhealy) in [#13087](https://github.com/danny-avila/LibreChat/pull/13087)
- ๐Ÿ• feat: Add `promptCacheTtl` model parameter for 1h/5m cache duration by [@danny-avila](https://github.com/danny-avila) in [#13835](https://github.com/danny-avila/LibreChat/pull/13835)
- ๐Ÿ”‘ feat: Surface User-Provided API Keys in Settings, Scoped to Reachable Endpoints by [@danny-avila](https://github.com/danny-avila) in [#13864](https://github.com/danny-avila/LibreChat/pull/13864)
- ๐Ÿช™ feat: Add Token Pricing for Devstral, Voxtral, Holo2, and Mistral Medium by [@JumpLink](https://github.com/JumpLink) in [#13863](https://github.com/danny-avila/LibreChat/pull/13863)
- ๐Ÿ“Œ feat: Seed Default Pinned Tools and MCP Dropdown via Interface Config by [@danny-avila](https://github.com/danny-avila) in [#13865](https://github.com/danny-avila/LibreChat/pull/13865)
- ๐Ÿ”— feat: Snapshot Files for Shared-Link Attachments by [@danny-avila](https://github.com/danny-avila) in [#13740](https://github.com/danny-avila/LibreChat/pull/13740)
- ๐Ÿ–‡๏ธ feat: Reference Selected Chat Text with Multi-Quote Popup by [@danny-avila](https://github.com/danny-avila) in [#13868](https://github.com/danny-avila/LibreChat/pull/13868)
- ๐Ÿณ feat: Bundle Admin Panel in Docker Compose Stacks by [@danny-avila](https://github.com/danny-avila) in [#13876](https://github.com/danny-avila/LibreChat/pull/13876)
- โŒจ๏ธ feat: Keyboard Shortcuts by [@berry-13](https://github.com/berry-13) in [#12425](https://github.com/danny-avila/LibreChat/pull/12425)
- ๐Ÿง  feat: Configurable Reasoning Replay for Custom Endpoints by [@danny-avila](https://github.com/danny-avila) in [#13921](https://github.com/danny-avila/LibreChat/pull/13921)
- ๐Ÿ“บ feat: Google URL Context Param with Native YouTube Video Understanding by [@danny-avila](https://github.com/danny-avila) in [#13924](https://github.com/danny-avila/LibreChat/pull/13924)

### ๐Ÿ› Fixes

- ๐ŸŽค fix: Keep Microphone Icon Visible On Initial Chat Render by [@danny-avila](https://github.com/danny-avila) in [#13788](https://github.com/danny-avila/LibreChat/pull/13788)
- ๐Ÿ—œ๏ธ fix: Support Windows ZIP MIME Uploads by [@danny-avila](https://github.com/danny-avila) in [#13794](https://github.com/danny-avila/LibreChat/pull/13794)
- ๐Ÿฅฝ fix: Restrict MCP Server URL Disclosure to Admins, Owners, and Editors by [@dustinhealy](https://github.com/dustinhealy) in [#13784](https://github.com/danny-avila/LibreChat/pull/13784)
- ๐Ÿฉน fix: Bill Anthropic Prompt-Cache Tokens Once by [@danny-avila](https://github.com/danny-avila) in [#13798](https://github.com/danny-avila/LibreChat/pull/13798)
- ๐Ÿชƒ fix: Restore Raw Spec Fallback for Enforced Presets by [@danny-avila](https://github.com/danny-avila) in [#13804](https://github.com/danny-avila/LibreChat/pull/13804)
- ๐Ÿ” fix: Honor Admin-Panel MCP Allowlist Overrides Without Restart by [@danny-avila](https://github.com/danny-avila) in [#13814](https://github.com/danny-avila/LibreChat/pull/13814)
- ๐Ÿ”– fix: Decrement Bookmark Counts When Deleting Conversations by [@danny-avila](https://github.com/danny-avila) in [#13830](https://github.com/danny-avila/LibreChat/pull/13830)
- ๐Ÿ”— fix: Surface Share Permissions Load Error as Alert Button With Tooltip by [@danny-avila](https://github.com/danny-avila) in [#13833](https://github.com/danny-avila/LibreChat/pull/13833)
- ๐Ÿงท fix: Preserve Document Priority on Section-Scoped Config Writes by [@dustinhealy](https://github.com/dustinhealy) in [#13772](https://github.com/danny-avila/LibreChat/pull/13772)
- ๐Ÿชž fix: Match Prompt Cache TTL Control to Region Combobox Styling by [@danny-avila](https://github.com/danny-avila) in [#13839](https://github.com/danny-avila/LibreChat/pull/13839)
- ๐Ÿ› fix: Resolve dayjs plugin ESM imports in data-provider by [@danny-avila](https://github.com/danny-avila) in [#13851](https://github.com/danny-avila/LibreChat/pull/13851)
- โ™Š fix: Strip Remaining Unsupported JSON Schema Keywords for Gemini MCP Tools by [@danny-avila](https://github.com/danny-avila) in [#13850](https://github.com/danny-avila/LibreChat/pull/13850)
- ๐ŸŽ’ fix: Apply OCR Context to Responses API Agents and Handoffs by [@Airamhh](https://github.com/Airamhh) in [#13707](https://github.com/danny-avila/LibreChat/pull/13707)
- ๐Ÿท๏ธ fix: Scope File Search entity_id to Agent Knowledge-Base Files Only by [@msserpa](https://github.com/msserpa) in [#13693](https://github.com/danny-avila/LibreChat/pull/13693)
- ๐Ÿชข fix: Paginate MCP `tools/list` to Load All Tools by [@TomasPalsson](https://github.com/TomasPalsson) in [#13840](https://github.com/danny-avila/LibreChat/pull/13840)
- ๐Ÿšช fix: Gate Artifacts Toggle on Agent Capability Flag by [@serhiizghama](https://github.com/serhiizghama) in [#13665](https://github.com/danny-avila/LibreChat/pull/13665)
- ๐ŸŽฏ fix: Narrow Public Share 401 Bypass to the Share Endpoint Only by [@danny-avila](https://github.com/danny-avila) in [#12905](https://github.com/danny-avila/LibreChat/pull/12905)
- ๐Ÿ” fix: Gate Shared Startup Config By Link Access by [@danny-avila](https://github.com/danny-avila) in [#13897](https://github.com/danny-avila/LibreChat/pull/13897)
- โœ‚๏ธ fix: Cap Audit Chain Verification and Honor Client Cancellation by [@danny-avila](https://github.com/danny-avila) in [#13903](https://github.com/danny-avila/LibreChat/pull/13903)
- ๐Ÿช fix: Validate Shared-File Cookie Auth Against the Live Refresh Session by [@danny-avila](https://github.com/danny-avila) in [#13908](https://github.com/danny-avila/LibreChat/pull/13908)
- ๐Ÿ’ฐ fix: Bound MCP `tools/list` Pagination with Aggregate Budgets by [@danny-avila](https://github.com/danny-avila) in [#13909](https://github.com/danny-avila/LibreChat/pull/13909)
- ๐Ÿชฃ fix: Cap Context Projection Workload Before Tokenization by [@danny-avila](https://github.com/danny-avila) in [#13910](https://github.com/danny-avila/LibreChat/pull/13910)
- ๐Ÿชœ fix: Strip Caller-Supplied Priority from Assign-Only Config Upserts by [@danny-avila](https://github.com/danny-avila) in [#13911](https://github.com/danny-avila/LibreChat/pull/13911)
- ๐Ÿ›‚ fix: Re-Check `execute_code` Authorization on Event-Driven Tool Loads by [@danny-avila](https://github.com/danny-avila) in [#13912](https://github.com/danny-avila/LibreChat/pull/13912)
- ๐Ÿค fix: Withhold Custom Endpoint Headers for User URLs by [@danny-avila](https://github.com/danny-avila) in [#13917](https://github.com/danny-avila/LibreChat/pull/13917)
- ๐Ÿงพ fix: Harden Historical File Authorization by [@danny-avila](https://github.com/danny-avila) in [#13918](https://github.com/danny-avila/LibreChat/pull/13918)
- ๐Ÿงญ fix: Harden User Provided Endpoint URL Protection by [@danny-avila](https://github.com/danny-avila) in [#13919](https://github.com/danny-avila/LibreChat/pull/13919)
- ๐Ÿ› fix: Prevent Infinite Render Loop on Code-Execution File Preview by [@danny-avila](https://github.com/danny-avila) in [#13922](https://github.com/danny-avila/LibreChat/pull/13922)
- ๐Ÿ–ฑ๏ธ fix: Summon Quote Popup on Double-Click Word Selection by [@danny-avila](https://github.com/danny-avila) in [#13923](https://github.com/danny-avila/LibreChat/pull/13923)
- ๐Ÿงน fix: Order Enabled Guard After Config Expansion in `useGetAgentByIdQuery` by [@dlew](https://github.com/dlew) in [#13927](https://github.com/danny-avila/LibreChat/pull/13927)
- ๐ŸŒต fix: Align Mention Empty Result Behavior With Skills Command by [@Oliver777int](https://github.com/Oliver777int) in [#13928](https://github.com/danny-avila/LibreChat/pull/13928)
- ๐Ÿชค fix: Guard Prompts Popover Against Empty Result Keyboard Navigation by [@danny-avila](https://github.com/danny-avila) in [#13931](https://github.com/danny-avila/LibreChat/pull/13931)

### ๐Ÿ”ง Refactoring and Performance

- ๐Ÿช™ refactor: Reconcile Context Gauge to Actual Provider Tokens by [@danny-avila](https://github.com/danny-avila) in [#13780](https://github.com/danny-avila/LibreChat/pull/13780)
- ๐Ÿชต refactor: Bound Log Traversal And Remove Legacy api/config Logger by [@danny-avila](https://github.com/danny-avila) in [#13813](https://github.com/danny-avila/LibreChat/pull/13813)
- ๐Ÿฆœ refactor: Use path for Read/Write/Edit/Create File Tools by [@danny-avila](https://github.com/danny-avila) in [#13834](https://github.com/danny-avila/LibreChat/pull/13834)
- ๐Ÿ›‚ refactor: Accept Targeted `assign:configs` for Config Scope-Lifecycle Endpoints by [@dustinhealy](https://github.com/dustinhealy) in [#13773](https://github.com/danny-avila/LibreChat/pull/13773)
- ๐Ÿ‘ a11y: Bump `@ariakit/react`, Improve a11y of Token Usage, Archived Chats, Reduce Table Layout Shifts by [@danny-avila](https://github.com/danny-avila) in [#13874](https://github.com/danny-avila/LibreChat/pull/13874)
- ๐Ÿ›‘ refactor: Demote User Abort Logs by [@danny-avila](https://github.com/danny-avila) in [#13904](https://github.com/danny-avila/LibreChat/pull/13904)
- ๐Ÿชถ refactor: Ground Default Model Spec Selection in Conversation Recency by [@danny-avila](https://github.com/danny-avila) in [#13915](https://github.com/danny-avila/LibreChat/pull/13915)

### ๐Ÿ“ฆ Dependencies, Chores & CI

- ๐Ÿ›ค๏ธ ci: Limit GitNexus Deploys To Main And Dev Only by [@danny-avila](https://github.com/danny-avila) in [#13799](https://github.com/danny-avila/LibreChat/pull/13799)
- ๐Ÿ“ฆ chore: Bump `@librechat/agents` to v3.2.37 by [@danny-avila](https://github.com/danny-avila) in [#13826](https://github.com/danny-avila/LibreChat/pull/13826)
- ๐Ÿ“ฆ chore: npm audit fix by [@danny-avila](https://github.com/danny-avila) in [#13828](https://github.com/danny-avila/LibreChat/pull/13828)
- ๐Ÿ“ฆ chore: Bump `@librechat/agents` to v3.2.42 by [@danny-avila](https://github.com/danny-avila) in [#13848](https://github.com/danny-avila/LibreChat/pull/13848)
- ๐Ÿ“ฆ chore: Bump `@librechat/agents` to v3.2.43 by [@danny-avila](https://github.com/danny-avila) in [#13854](https://github.com/danny-avila/LibreChat/pull/13854)
- ๐Ÿšฆ ci: Stop Auto-Indexing PR Branches in GitNexus Index by [@danny-avila](https://github.com/danny-avila) in [#13866](https://github.com/danny-avila/LibreChat/pull/13866)
- ๐Ÿช™ chore: Drop redundant voxtral-small token pricing key by [@JumpLink](https://github.com/JumpLink) in [#13867](https://github.com/danny-avila/LibreChat/pull/13867)
- ๐Ÿท๏ธ chore: Bump Individual Package Versions by [@danny-avila](https://github.com/danny-avila) in [#13891](https://github.com/danny-avila/LibreChat/pull/13891)
- ๐Ÿ“ฆ chore: Bump `@librechat/agents` to v3.2.44 by [@danny-avila](https://github.com/danny-avila) in [`1505fd5262`](https://github.com/danny-avila/LibreChat/commit/1505fd5262)
- ๐Ÿง‚ chore: Require an Operator-Supplied Admin Panel Session Secret by [@danny-avila](https://github.com/danny-avila) in [#13902](https://github.com/danny-avila/LibreChat/pull/13902)
- ๐Ÿš€ chore: prepare v0.8.7 release by [@danny-avila](https://github.com/danny-avila) in [`96497034cb`](https://github.com/danny-avila/LibreChat/commit/96497034cb843d17a90e924942e25fc281ccaf76)

### ๐ŸŒ Internationalization

- ๐ŸŒ i18n: Update translation.json with latest translations by [@danny-avila](https://github.com/danny-avila) in [#13836](https://github.com/danny-avila/LibreChat/pull/13836), [#13875](https://github.com/danny-avila/LibreChat/pull/13875), [#13892](https://github.com/danny-avila/LibreChat/pull/13892), [#13914](https://github.com/danny-avila/LibreChat/pull/13914)

</details>

## New Contributors

- [@berry-13](https://github.com/berry-13) made their first contribution in [#12425](https://github.com/danny-avila/LibreChat/pull/12425)
- [@JumpLink](https://github.com/JumpLink) made their first contribution in [#13863](https://github.com/danny-avila/LibreChat/pull/13863)
- [@TomasPalsson](https://github.com/TomasPalsson) made their first contribution in [#13840](https://github.com/danny-avila/LibreChat/pull/13840)
- [@msserpa](https://github.com/msserpa) made their first contribution in [#13693](https://github.com/danny-avila/LibreChat/pull/13693)
- [@Airamhh](https://github.com/Airamhh) made their first contribution in [#13707](https://github.com/danny-avila/LibreChat/pull/13707)
- [@serhiizghama](https://github.com/serhiizghama) made their first contribution in [#13665](https://github.com/danny-avila/LibreChat/pull/13665)
- [@Oliver777int](https://github.com/Oliver777int) made their first contribution in [#13928](https://github.com/danny-avila/LibreChat/pull/13928)

**Full Changelog**: https://github.com/danny-avila/LibreChat/compare/v0.8.7-rc1...v0.8.7