1"use strict";(globalThis.webpackChunkrunme_dev=globalThis.webpackChunkrunme_dev||[]).push([[3361],{12939(e,n,t){t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>u,frontMatter:()=>s,metadata:()=>o,toc:()=>d});const o=JSON.parse('{"id":"index","title":"\u25b6 Welcome","description":"Why Runme? \u26a1\ufe0f","source":"@site/docs/index.md","sourceDirName":".","slug":"/","permalink":"/","draft":false,"unlisted":false,"editUrl":"https://github.com/runmedev/docs.runme.dev/edit/main/docs/index.md","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"sidebar_position":1},"sidebar":"tutorialSidebar","next":{"title":"GitOps Workflow","permalink":"/workflow"}}');var i=t(74848),r=t(28453);const s={sidebar_position:1},a="\u25b6 Welcome",l={},d=[{value:"Why Runme? \u26a1\ufe0f",id:"why-runme-\ufe0f",level:2},{value:"What is Runme?",id:"what-is-runme",level:2},{value:"Built on Open Technologies & Standards",id:"built-on-open-technologies--standards",level:2},{value:"Runme in 2 Minutes",id:"runme-in-2-minutes",level:2},{value:"What Makes a Runme Notebook?",id:"what-makes-a-runme-notebook",level:2},{value:"What's Next?",id:"whats-next",level:2}];function c(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",strong:"strong",ul:"ul",...(0,r.R)(),...e.components},{Infobox:t,RunmeStars:o}=n;return t||h("Infobox",!0),o||h("RunmeStars",!0),(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"-welcome",children:"\u25b6 Welcome"})}),"\n",(0,i.jsx)(n.h2,{id:"why-runme-\ufe0f",children:"Why Runme? \u26a1\ufe0f"}),"\n",(0,i.jsx)(n.p,{children:"The goal of Runme is to enable engineers to capture operational processes as reliable, refinable, and reusable assets called Runme Notebooks. All DevOps engineers have experienced the frustration of not being able to get work done because documentation is out of date, hard to find, or lacking integration with cloud-native tools or infrastru
1cture. By building and curating reliable Runme Notebooks, you can break through this frustration and unlock engineering productivity."}),"\n",(0,i.jsx)(n.h2,{id:"what-is-runme",children:"What is Runme?"}),"\n",(0,i.jsx)(n.p,{children:"Runme makes Markdown documentation actually runnable. It is a cloud-native shell kernel with a notebook, editor, terminal, and CLI interface. Runme helps you build and curate Notebooks and also run them, making it easy to automate step-by-step instructions, especially in cloud-native environments. Runme Notebooks are perfect for capturing and persisting operational knowledge, making operational docs reliable and less likely to become outdated."}),"\n",(0,i.jsx)(t,{type:"sidenote",title:"New: Runme Eval",children:(0,i.jsxs)(n.p,{children:["Notebooks are linear trajectories through a task. ",(0,i.jsx)(n.a,{href:"/eval",children:(0,i.jsx)(n.code,{children:"runme eval"})})," expands that model beyond Markdown, so you can define, replay, and score how agents and workflows reach an outcome."]})}),"\n",(0,i.jsx)(n.h2,{id:"built-on-open-technologies--standards",children:"Built on Open Technologies & Standards"}),"\n",(0,i.jsxs)(n.p,{children:["Runme is Markdown compatible (and a superset), open source licensed toolchain under Apache 2.0. We also work hard to use open standards for interoperability. Get more details in our ",(0,i.jsx)(n.a,{href:"/resources/open-source",children:"open-source"})," section."]}),"\n",(0,i.jsx)(o,{}),"\n",(0,i.jsx)("br",{}),"\n",(0,i.jsx)("br",{}),"\n",(0,i.jsx)(n.p,{children:"All the code for Runme can be found in four repositories on GitHub:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/runmedev/runme",children:"Kernel / CLI"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/runmedev/vscode-runme",children:"VS Code extension"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/runmedev/runme-action",children:"GitHub action"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/runmedev/docs.runme.dev",children:"Docs"})}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"runme-in-2-minutes",children:"Runme in 2 Minutes"}),"\n",(0,i.jsx)(n.p,{children:"A quick hands-on example of Runme in action."}),"\n",(0,i.jsx)("video",{autoPlay:!0,loop:!0,muted:!0,playsInline:!0,controls:!0,children:(0,i.jsx)("source",{src:"https://runme.dev/videos/runme-hello-world.mp4",type:"video/mp4"})}),"\n",(0,i.jsx)("br",{}),"\n",(0,i.jsx)("br",{}),"\n",(0,i.jsx)(t,{type:"sidenote",title:"Jump forward",children:(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"/installation",children:"Install Runme"})," or ",(0,i.jsx)(n.a,{href:"/getting-started",children:"get started"}),"."]})}),"\n",(0,i.jsx)(n.h2,{id:"what-makes-a-runme-notebook",children:"What Makes a Runme Notebook?"}),"\n",(0,i.jsx)(n.p,{children:"When you create a Notebook using Markdown and then either open its Notebook form in VS Code (or use the CLI), we are adding important capabilities that don't exist in a pure Markdown rendering."}),"\n",(0,i.jsx)(n.p,{children:"The Notebook interface makes:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Commands and code executable"}),"\n",(0,i.jsx)(n.li,{children:"Behavior and output configurable (stored transparently in the Markdown)"}),"\n",(0,i.jsx)(n.li,{children:"Commands aware of .ENV dependencies"}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["A great example of this is when you specify the ",(0,i.jsx)(n.strong,{children:"mimetype"}),". That config metadata tells the Notebook to automatically render an image or a sortable table instead of text for output. We can also interpret URLs to cloud consoles as an interactive dashboard UI."]}),"\n",(0,i.jsx)("br",{}),"\n",(0,i.jsx)("img",{src:"/img/notebook-components.png",style:{width:"80%",display:"inline"},alt:"What is Runme"}),"\n",(0,i.jsx)("br",{}),"\n",(0,i.jsx)("br",{}),"\n",(0,i.jsx)(n.h2,{id:"whats-next",children:"What's Next?"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["First, you need to ",(0,i.jsx)(n.a,{href:"/installation",children:"install Runme"})," for the client you want to use."]}),"\n",(0,i.jsxs)(n.li,{children:["Next, follow the ",(0,i.jsx)(n.a,{href:"/getting-started",children:"Getting Started"})," guide."]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["If you've already done that, skip to ",(0,i.jsx)(n.a,{href:"/configuration",children:"Configuring Notebooks"})," or our ",(0,i.jsx)(n.a,{href:"/guide",children:"Guides"}),"."]})]})}function u(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}function h(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}},28453(e,n,t){t.d(n,{R:()=>s,x:()=>a});var o=t(96540);const i={},r=o.createContext(i);function s(e){const n=o.useContext(r);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),o.createElement(r.Provider,{value:n},e.children)}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.