[{"data":1,"prerenderedAt":461},["ShallowReactive",2],{"h2266404678":3,"h3493686939":292,"h2010229126":455},{"id":4,"title":5,"body":6,"description":28,"extension":283,"meta":284,"navigation":287,"path":288,"seo":289,"stem":290,"__hash__":291},"docs\u002Fen\u002Ftips\u002F2026\u002F10\u002F22\u002Fsolution-using-liff-cli.md","Reduce the effort of developing LIFF apps with the LIFF CLI",{"type":7,"value":8,"toc":266},"minimark",[9],[10,11,12,20,25,29,32,41,44,52,55,58,63,66,73,94,97,100,104,111,118,143,146,164,174,178,186,196,219,229,236,240,243,246,253,256,260],"Tips",{},[13,14,17],"h1",{"id":15,"class":16},"","!mb-4",[18,19],"page-title",{},[21,22],"display-date",{"date":23,"class":24},"2026\u002F10\u002F22","!mb-20",[26,27,28],"p",{},"Hello! I’m Oka from the Technical Support team.",[26,30,31],{},"When developing a LIFF app, do you ever find the initial setup, preparation of a local development environment, or debugging to be time-consuming or cumbersome?",[26,33,34,35,40],{},"The ",[36,37,39],"a",{"href":38},"\u002Fdocs\u002Fliff\u002Fliff-cli\u002F","LIFF CLI"," is a tool designed to streamline these tasks.",[26,42,43],{},"With the LIFF CLI, you can create and manage LIFF apps, conduct local development over HTTPS, and debug within the LIFF browser—all from the command line.",[26,45,46,47,51],{},"In our previous Tips article, \"",[36,48,50],{"href":49},"\u002Ftips\u002F2026\u002F10\u002F15\u002Fconfigure-the-liff-development-environment\u002F","How to develop LIFF apps locally: tips for HTTPS support",",\" we covered how to set up a local development environment for LIFF apps.",[26,53,54],{},"In this post, we’ll explore three specific use cases where the LIFF CLI proves helpful during the development process.",[56,57],"toc",{},[59,60,62],"h2",{"id":61},"initial-setup-for-the-liff-app","Streamlining the initial setup of a LIFF app",[26,64,65],{},"Starting the development of a LIFF app typically requires several steps, such as configuring settings in the LINE Developers console and preparing an application template.",[26,67,34,68,72],{},[69,70,71],"code",{},"init"," command in the LIFF CLI allows you to handle these tasks—adding a channel, creating a LIFF app, and generating a project template—all through an interactive, step-by-step process.",[74,75,79],"pre",{"className":76,"code":77,"language":78,"meta":15,"style":15},"language-bash shiki shiki-themes github-dark-default","liff-cli init\n","bash",[69,80,81],{"__ignoreMap":15},[82,83,86,90],"span",{"class":84,"line":85},"line",1,[82,87,89],{"class":88},"sQhOw","liff-cli",[82,91,93],{"class":92},"s9uIt"," init\n",[26,95,96],{},"By running this command and following the on-screen prompts to enter the required information, you can complete the various setup tasks in a single, continuous workflow.",[26,98,99],{},"This is especially useful when building your first LIFF app or launching a new project.",[59,101,103],{"id":102},"simplification-of-endpoint-urls","Simplifying endpoint URL management during local development",[26,105,106,107,110],{},"To develop a LIFF app in a local environment, you need to ensure it is accessible via HTTPS. Furthermore, to allow the LIFF browser to connect to your local development server, you must configure the LIFF app's endpoint URL. The ",[69,108,109],{},"serve"," command in the LIFF CLI launches an HTTPS proxy for your local development server and updates your LIFF app's endpoint URL to point to this proxy.",[26,112,113,114,117],{},"For example, if your local development server is running at ",[69,115,116],{},"http:\u002F\u002Flocalhost:3000\u002F",", you can run the following command:",[74,119,121],{"className":76,"code":120,"language":78,"meta":15,"style":15},"liff-cli serve --liff-id 1234567890-Abcdefgh --url http:\u002F\u002Flocalhost:3000\u002F\n",[69,122,123],{"__ignoreMap":15},[82,124,125,127,130,134,137,140],{"class":84,"line":85},[82,126,89],{"class":88},[82,128,129],{"class":92}," serve",[82,131,133],{"class":132},"sFSAA"," --liff-id",[82,135,136],{"class":92}," 1234567890-Abcdefgh",[82,138,139],{"class":132}," --url",[82,141,142],{"class":92}," http:\u002F\u002Flocalhost:3000\u002F\n",[26,144,145],{},"This action simultaneously launches the HTTPS proxy and updates the endpoint URL.",[26,147,148,149,151,152,155,156,163],{},"Note that to use the ",[69,150,109],{}," command, you must have a valid certificate and private key for ",[69,153,154],{},"localhost"," prepared in advance. For more information, see the ",[36,157,159,160,162],{"href":158},"\u002Fdocs\u002Fliff\u002Fliff-cli\u002F#serve-operating-conditions","operating conditions for the ",[69,161,109],{}," command",".",[165,166,169],"admonition",{"title":167,"type":168},"Do not use with published LIFF apps","note",[26,170,34,171,173],{},[69,172,109],{}," command modifies the endpoint URL of a LIFF app. Running this on a LIFF app that has already been published will prevent users from accessing it; therefore, please use it only for LIFF apps intended for development or testing.",[59,175,177],{"id":176},"debugging-the-app","Debugging apps running in the LIFF browser",[26,179,180,181,185],{},"If you need to investigate issues occurring within the LIFF browser, the ",[36,182,184],{"href":183},"\u002Fdocs\u002Fliff\u002Fliff-plugin\u002F#liff-inspector","LIFF Inspector"," is a useful tool.",[26,187,188,189,192,193,195],{},"In the LIFF CLI, you can launch the LIFF Inspector Server over HTTPS by adding the ",[69,190,191],{},"--inspect"," option to the ",[69,194,109],{}," command:",[74,197,199],{"className":76,"code":198,"language":78,"meta":15,"style":15},"liff-cli serve --liff-id 1234567890-Abcdefgh --url http:\u002F\u002Flocalhost:3000\u002F --inspect\n",[69,200,201],{"__ignoreMap":15},[82,202,203,205,207,209,211,213,216],{"class":84,"line":85},[82,204,89],{"class":88},[82,206,129],{"class":92},[82,208,133],{"class":132},[82,210,136],{"class":92},[82,212,139],{"class":132},[82,214,215],{"class":92}," http:\u002F\u002Flocalhost:3000\u002F",[82,217,218],{"class":132}," --inspect\n",[26,220,221,222,225,226,228],{},"After integrating the LIFF Inspector Plugin into your LIFF app and accessing the LIFF URL, a URL beginning with ",[69,223,224],{},"devtools:\u002F\u002Fdevtools\u002F"," will appear in the terminal where you ran the ",[69,227,109],{}," command.",[26,230,231,232,235],{},"You can debug your LIFF app by opening this URL in Google Chrome. For detailed instructions on how to use the LIFF Inspector and other related procedures, please refer to the ",[36,233,234],{"href":183},"LIFF plugin"," documentation.",[59,237,239],{"id":238},"wrap-up","Wrap-up",[26,241,242],{},"In this article, we introduced three use cases where the LIFF CLI proves useful.",[26,244,245],{},"The LIFF CLI is valuable throughout the development process—not only for the initial setup of a LIFF app, but also for local development and debugging.",[26,247,248,249,252],{},"In addition to the features covered here, the LIFF CLI also includes commands such as ",[69,250,251],{},"app",", which allows you to manage the registration details of your LIFF apps.",[26,254,255],{},"When developing LIFF apps, be sure to consider incorporating the LIFF CLI into your workflow.",[257,258,259],"style",{},"html pre.shiki code .sQhOw, html code.shiki .sQhOw{--shiki-default:#FFA657}html pre.shiki code .s9uIt, html code.shiki .s9uIt{--shiki-default:#A5D6FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .sFSAA, html code.shiki .sFSAA{--shiki-default:#79C0FF}",[261,262],"tags",{"tags":263,"lang":264,"section":265},"liff, line-mini-app","en","tips",{"title":15,"searchDepth":267,"depth":268,"links":269},4,5,[270,274,277,280],{"id":271,"depth":272,"text":273},"streamlining-the-initial-setup-of-a-liff-app-initial-setup-for-the-liff-app",2,"Streamlining the initial setup of a LIFF app {#initial-setup-for-the-liff-app}",{"id":275,"depth":272,"text":276},"simplifying-endpoint-url-management-during-local-development-simplification-of-endpoint-urls","Simplifying endpoint URL management during local development {#simplification-of-endpoint-urls}",{"id":278,"depth":272,"text":279},"debugging-apps-running-in-the-liff-browser-debugging-the-app","Debugging apps running in the LIFF browser {#debugging-the-app}",{"id":281,"depth":272,"text":282},"wrap-up-wrap-up","Wrap-up {#wrap-up}","md",{"date":285,"tags":263,"locale":264,"sidebar":286},"2026-10-22 00:00 UTC",false,true,"\u002Fen\u002Ftips\u002F2026\u002F10\u002F22\u002Fsolution-using-liff-cli",{"title":5,"description":28},"en\u002Ftips\u002F2026\u002F10\u002F22\u002Fsolution-using-liff-cli","Ao6kprj5AnLIByHnGHonF_7uma69-79H1qi_-N_34I0",{"id":4,"title":5,"body":293,"description":28,"extension":283,"meta":453,"navigation":287,"path":288,"seo":454,"stem":290,"__hash__":291},{"type":7,"value":294,"toc":447},[295],[10,296,297,301,303,305,307,311,313,317,319,321,323,325,329,339,341,343,345,349,353,371,373,383,389,391,395,401,421,427,431,433,435,437,441,443,445],{},[13,298,299],{"id":15,"class":16},[18,300],{},[21,302],{"date":23,"class":24},[26,304,28],{},[26,306,31],{},[26,308,34,309,40],{},[36,310,39],{"href":38},[26,312,43],{},[26,314,46,315,51],{},[36,316,50],{"href":49},[26,318,54],{},[56,320],{},[59,322,62],{"id":61},[26,324,65],{},[26,326,34,327,72],{},[69,328,71],{},[74,330,331],{"className":76,"code":77,"language":78,"meta":15,"style":15},[69,332,333],{"__ignoreMap":15},[82,334,335,337],{"class":84,"line":85},[82,336,89],{"class":88},[82,338,93],{"class":92},[26,340,96],{},[26,342,99],{},[59,344,103],{"id":102},[26,346,106,347,110],{},[69,348,109],{},[26,350,113,351,117],{},[69,352,116],{},[74,354,355],{"className":76,"code":120,"language":78,"meta":15,"style":15},[69,356,357],{"__ignoreMap":15},[82,358,359,361,363,365,367,369],{"class":84,"line":85},[82,360,89],{"class":88},[82,362,129],{"class":92},[82,364,133],{"class":132},[82,366,136],{"class":92},[82,368,139],{"class":132},[82,370,142],{"class":92},[26,372,145],{},[26,374,148,375,151,377,155,379,163],{},[69,376,109],{},[69,378,154],{},[36,380,159,381,162],{"href":158},[69,382,109],{},[165,384,385],{"title":167,"type":168},[26,386,34,387,173],{},[69,388,109],{},[59,390,177],{"id":176},[26,392,180,393,185],{},[36,394,184],{"href":183},[26,396,188,397,192,399,195],{},[69,398,191],{},[69,400,109],{},[74,402,403],{"className":76,"code":198,"language":78,"meta":15,"style":15},[69,404,405],{"__ignoreMap":15},[82,406,407,409,411,413,415,417,419],{"class":84,"line":85},[82,408,89],{"class":88},[82,410,129],{"class":92},[82,412,133],{"class":132},[82,414,136],{"class":92},[82,416,139],{"class":132},[82,418,215],{"class":92},[82,420,218],{"class":132},[26,422,221,423,225,425,228],{},[69,424,224],{},[69,426,109],{},[26,428,231,429,235],{},[36,430,234],{"href":183},[59,432,239],{"id":238},[26,434,242],{},[26,436,245],{},[26,438,248,439,252],{},[69,440,251],{},[26,442,255],{},[257,444,259],{},[261,446],{"tags":263,"lang":264,"section":265},{"title":15,"searchDepth":267,"depth":268,"links":448},[449,450,451,452],{"id":271,"depth":272,"text":273},{"id":275,"depth":272,"text":276},{"id":278,"depth":272,"text":279},{"id":281,"depth":272,"text":282},{"date":285,"tags":263,"locale":264,"sidebar":286},{"title":5,"description":28},{"toc":456,"fullToc":456},[457,458,459,460],{"id":61,"depth":272,"text":62},{"id":102,"depth":272,"text":103},{"id":176,"depth":272,"text":177},{"id":238,"depth":272,"text":239},1793252046639]