[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6J1D76FTYTKSPWNNRVZ2PX3":3,"skill-same:01M6J1D76FTYTKSPWNNRVZ2PX3":74},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":44,"commitSha":45,"skillDirectory":46,"forksCount":47,"repositoryHtmlUrl":48,"repositoryHomepageUrl":49,"ownerHtmlUrl":50,"ownerBlogUrl":51,"ownerDescription":52,"updatedAt":53,"install":54,"resources":67},"01M6J1D76FTYTKSPWNNRVZ2PX3","liter-llm-running-the-proxy",null,"Use when running the `liter-llm api` OpenAI-compatible gateway — virtual keys, per-key rate limits, budgets, cost tracking, and model routing. Covers the TOML config and the 22 REST endpoints.","xberg-io\u002Fliter-llm","xberg-io","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F241328462?v=4","01M6BYYMACFMK5WNT338Y71K58","Xberg.io","01M6J160RA8VS7XVE01W9305F3",266,"MIT","https:\u002F\u002Fgithub.com\u002Fxberg-io\u002Fliter-llm\u002Fblob\u002Fmain\u002Fskills\u002Fliter-llm-running-the-proxy\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"liter llm running the proxy","liter llm","proxy","running","when","llm api","limits","config","keys","endpoints","REST","routing","cost","api","use","toml","model","gateway","virtual","openai-compatible","2026-11-10 10:12:30",false,"---\ndescription: Use when running the `liter-llm api` OpenAI-compatible gateway — virtual keys, per-key rate limits, budgets, cost tracking, and model routing. Covers the TOML config and the 22 REST endpoints.\nname: liter-llm-running-the-proxy\n---\n\n\u003C!--\nAI-RULEZ :: GENERATED FILE — DO NOT EDIT\nContent-Hash: blake3:b0a0178eae0e6882ae032983d8927142b6db16add6ab9cab391538db2f202eb4\nSource-Hash: blake3:5cf7da08639f3cd0e9bdba8885263d112aa48add74b30d732da1f72fd7badd56\nSchema-Version: v1\n-->\n\n# Running the Proxy\n\n`liter-llm api` is a drop-in OpenAI-compatible gateway: 22 REST endpoints that\nroute to 174 providers, with multi-tenant virtual keys, rate limits, budgets,\nand cost tracking.\n\n## Start it\n\n```bash\nliter-llm api --config liter-llm-proxy.toml\n```\n\nThe proxy auto-discovers `liter-llm-proxy.toml` in the current directory.\n\n## Configuration\n\n```toml\n[server]\nhost = \"0.0.0.0\"\nport = 4000\n\n[general]\nmaster_key = \"${LITER_LLM_MASTER_KEY}\"\n\n# Each [[models]] entry maps a routable name to a provider\u002Fmodel and its key.\n[[models]]\nname = \"gpt-4o\"\nprovider_model = \"openai\u002Fgpt-4o\"\napi_key = \"${OPENAI_API_KEY}\"\n\n[[models]]\nname = \"claude-sonnet\"\nprovider_model = \"anthropic\u002Fclaude-sonnet-4-20250514\"\napi_key = \"${ANTHROPIC_API_KEY}\"\n\n# Virtual keys scope which configured model names a caller may use.\n[[keys]]\nkey = \"sk-team-frontend\"\nmodels = [\"gpt-4o\", \"claude-sonnet\"]\nrpm = 60\ntpm = 100000\nbudget_limit = 50.0\n```\n\n`${ENV_VAR}` interpolation keeps secrets out of the file.\n\n## Call it like OpenAI\n\n```bash\ncurl http:\u002F\u002Flocalhost:4000\u002Fv1\u002Fchat\u002Fcompletions \\\n  -H \"Authorization: Bearer sk-team-frontend\" \\\n  -d '{\"model\": \"gpt-4o\", \"messages\": [{\"role\": \"user\", \"content\": \"Hello\"}]}'\n```\n\n## Notes\n\n- Virtual keys scope which models a caller may use and carry their own RPM\u002FTPM\n  and budget limits; the `master_key` administers them.\n- The OpenAPI 3.1 spec is served at `\u002Fopenapi.json`.\n- Endpoints cover chat, embeddings, images, audio, moderations, files, batches,\n  responses, and model listing.\n- Docker: `docker run -p 4000:4000 -e LITER_LLM_MASTER_KEY=sk-key ghcr.io\u002Fxberg-io\u002Fliter-llm`.\n","\u003C!--\nAI-RULEZ :: GENERATED FILE — DO NOT EDIT\nContent-Hash: blake3:b0a0178eae0e6882ae032983d8927142b6db16add6ab9cab391538db2f202eb4\nSource-Hash: blake3:5cf7da08639f3cd0e9bdba8885263d112aa48add74b30d732da1f72fd7badd56\nSchema-Version: v1\n-->\n\n# Running the Proxy\n\n`liter-llm api` is a drop-in OpenAI-compatible gateway: 22 REST endpoints that\nroute to 174 providers, with multi-tenant virtual keys, rate limits, budgets,\nand cost tracking.\n\n## Start it\n\n```bash\nliter-llm api --config liter-llm-proxy.toml\n```\n\nThe proxy auto-discovers `liter-llm-proxy.toml` in the current directory.\n\n## Configuration\n\n```toml\n[server]\nhost = \"0.0.0.0\"\nport = 4000\n\n[general]\nmaster_key = \"${LITER_LLM_MASTER_KEY}\"\n\n# Each [[models]] entry maps a routable name to a provider\u002Fmodel and its key.\n[[models]]\nname = \"gpt-4o\"\nprovider_model = \"openai\u002Fgpt-4o\"\napi_key = \"${OPENAI_API_KEY}\"\n\n[[models]]\nname = \"claude-sonnet\"\nprovider_model = \"anthropic\u002Fclaude-sonnet-4-20250514\"\napi_key = \"${ANTHROPIC_API_KEY}\"\n\n# Virtual keys scope which configured model names a caller may use.\n[[keys]]\nkey = \"sk-team-frontend\"\nmodels = [\"gpt-4o\", \"claude-sonnet\"]\nrpm = 60\ntpm = 100000\nbudget_limit = 50.0\n```\n\n`${ENV_VAR}` interpolation keeps secrets out of the file.\n\n## Call it like OpenAI\n\n```bash\ncurl http:\u002F\u002Flocalhost:4000\u002Fv1\u002Fchat\u002Fcompletions \\\n  -H \"Authorization: Bearer sk-team-frontend\" \\\n  -d '{\"model\": \"gpt-4o\", \"messages\": [{\"role\": \"user\", \"content\": \"Hello\"}]}'\n```\n\n## Notes\n\n- Virtual keys scope which models a caller may use and carry their own RPM\u002FTPM\n  and budget limits; the `master_key` administers them.\n- The OpenAPI 3.1 spec is served at `\u002Fopenapi.json`.\n- Endpoints cover chat, embeddings, images, audio, moderations, files, batches,\n  responses, and model listing.\n- Docker: `docker run -p 4000:4000 -e LITER_LLM_MASTER_KEY=sk-key ghcr.io\u002Fxberg-io\u002Fliter-llm`.\n",{"name":5,"description":7},"main","ac77dad5017239b5ac3652414d6ad6583fb779a9","skills\u002Fliter-llm-running-the-proxy",27,"https:\u002F\u002Fgithub.com\u002Fxberg-io\u002Fliter-llm","https:\u002F\u002Fdocs.liter-llm.xberg.io","https:\u002F\u002Fgithub.com\u002Fxberg-io","https:\u002F\u002Fxberg.io","Open-source content intelligence with a Rust core: documents, web, LLMs and code, with native bindings for every major language.","2026-11-14 23:17:35",{"source":8,"skillName":5,"commands":55,"prompt":65,"zipAvailable":66},[56,59,62],{"tool":57,"command":58},"npx","npx skills add xberg-io\u002Fliter-llm --skill liter-llm-running-the-proxy",{"tool":60,"command":61},"bunx","bunx skills add xberg-io\u002Fliter-llm --skill liter-llm-running-the-proxy",{"tool":63,"command":64},"pnpm","pnpm dlx skills add xberg-io\u002Fliter-llm --skill liter-llm-running-the-proxy","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fxberg-io\u002Fliter-llm\u002Fblob\u002Fmain\u002Fskills\u002Fliter-llm-running-the-proxy\u002FSKILL.md",true,[68],{"path":69,"resourceType":70,"resourceTypeDesc":71,"sizeBytes":72,"sourceHtmlUrl":73},"index.md","REFERENCE","参考文档",484,"https:\u002F\u002Fgithub.com\u002Fxberg-io\u002Fliter-llm\u002Fblob\u002Fmain\u002Fskills\u002Fliter-llm-running-the-proxy\u002Findex.md",[75,112,131,149,166,183],{"skillNo":76,"name":77,"nameZh":6,"description":78,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":79,"categories":80,"keywords":94,"publishedAt":39},"01M6J1DRP0968S21HH1C4HR9RK","liter-llm","Universal LLM API client for 174 providers with native bindings for 14 languages. Use when writing code that calls LLM APIs via liter-llm in Python, TypeScript, Rust, Go, Java, C#, Ruby, PHP, Elixir, WASM, or C, when running the OpenAI-compatible proxy, or when calling LLMs through the MCP server. Covers chat, streaming, tool calling, embeddings, image generation, speech, transcription, moderation, web search, OCR, reranking, provider routing, middleware, and configuration.","https:\u002F\u002Fgithub.com\u002Fxberg-io\u002Fliter-llm\u002Fblob\u002Fmain\u002Fskills\u002Fliter-llm\u002FSKILL.md",[81,86,89],{"categoryNo":82,"categoryName":83,"taxonomyType":84,"taxonomyTypeDesc":85},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",{"categoryNo":87,"categoryName":88,"taxonomyType":84,"taxonomyTypeDesc":85},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":90,"categoryName":91,"taxonomyType":92,"taxonomyTypeDesc":93},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[20,95,96,97,98,99,100,101,102,103,104,105,32,106,107,108,109,110,111,23],"ocr","web search","search","rust","middleware","ruby","MCP","writing","image","mcp server","code","io","streaming","llms","server","native","elixir",{"skillNo":113,"name":114,"nameZh":6,"description":115,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":116,"categories":117,"keywords":120,"publishedAt":39},"01M6J1DK94H9KDPW62F1E96VRR","liter-llm-using-the-mcp-server","Use when calling LLM APIs through the liter-llm MCP server's 22 tools, and to decide when MCP beats the CLI or SDK. Covers the tool surface, the auto-installing launcher, and authentication.","https:\u002F\u002Fgithub.com\u002Fxberg-io\u002Fliter-llm\u002Fblob\u002Fmain\u002Fskills\u002Fliter-llm-using-the-mcp-server\u002FSKILL.md",[118,119],{"categoryNo":82,"categoryName":83,"taxonomyType":84,"taxonomyTypeDesc":85},{"categoryNo":87,"categoryName":88,"taxonomyType":84,"taxonomyTypeDesc":85},[101,104,121,109,20,122,123,124,125,126,127,33,128,129,130,23],"liter llm using the mcp server","launcher","decide","authentication","tool","calling","auto","cli","sdk","Tools",{"skillNo":132,"name":133,"nameZh":6,"description":134,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":135,"categories":136,"keywords":137,"publishedAt":39},"01M6J1DEEPNVQ3E5CX5ZF69416","liter-llm-tool-calling","Use when defining functions\u002Ftools for an LLM to call through liter-llm, or requesting structured JSON outputs. Covers tool schemas, tool_calls handling, and response formats.","https:\u002F\u002Fgithub.com\u002Fxberg-io\u002Fliter-llm\u002Fblob\u002Fmain\u002Fskills\u002Fliter-llm-tool-calling\u002FSKILL.md",[],[138,125,126,139,20,140,141,142,143,33,144,145,146,130,147,148,23],"tool calling","liter llm tool calling","llm tool","for","calls","call","functions","json","formats","structured","outputs",{"skillNo":150,"name":151,"nameZh":6,"description":152,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":153,"categories":154,"keywords":155,"publishedAt":39},"01M6J1DBN4XD93NN04WA8ZP75H","liter-llm-streaming-responses","Use when streaming tokens incrementally from an LLM via liter-llm over SSE or async iterators. Covers chat_stream, delta handling, and null-content chunks.","https:\u002F\u002Fgithub.com\u002Fxberg-io\u002Fliter-llm\u002Fblob\u002Fmain\u002Fskills\u002Fliter-llm-streaming-responses\u002FSKILL.md",[],[156,20,107,157,158,159,160,161,33,162,163,164,165,23],"liter llm streaming responses","chat","delta","via","tokens","async","content","sse","chunks","stream",{"skillNo":167,"name":168,"nameZh":6,"description":169,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":170,"categories":171,"keywords":172,"publishedAt":39},"01M6J1D2W434JGGHXR8SP91PZ3","liter-llm-embeddings-and-search","Use when generating embeddings, calling the 12 web-search providers, or running OCR over documents with the 4 OCR providers through liter-llm. Covers embed, search, and ocr methods plus reranking.","https:\u002F\u002Fgithub.com\u002Fxberg-io\u002Fliter-llm\u002Fblob\u002Fmain\u002Fskills\u002Fliter-llm-embeddings-and-search\u002FSKILL.md",[],[97,173,20,174,95,175,126,33,176,177,178,179,180,181,182,22,23],"liter llm embeddings and search","embeddings","methods","documents","embed","with","web","web-search","Providers","reranking",{"skillNo":184,"name":185,"nameZh":6,"description":186,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":187,"categories":188,"keywords":189,"publishedAt":39},"01M6J1CY9874WDPR28SSD6PWAG","liter-llm-calling-llms","Use when sending chat completions through liter-llm and routing to a specific provider via the `provider\u002Fmodel` prefix. Covers the chat call shape, provider routing, model_hint, message roles, and error categories.","https:\u002F\u002Fgithub.com\u002Fxberg-io\u002Fliter-llm\u002Fblob\u002Fmain\u002Fskills\u002Fliter-llm-calling-llms\u002FSKILL.md",[],[126,190,108,20,191,192,35,193,143,33,157,194,30,195,159,196,197,23,198],"liter llm calling llms","categories","error","provider","roles","message","shape","hint","provider routing"]