PageSourceSearch

https://suidevgru.github.io/assets/js/183e7fc3.c5b8d697.js

js suidevgru.github.io collected 2026-10-03 10:00:54 UTC 9,950 bytes, 1 lines download raw bytes

1"use strict";(globalThis.webpackChunksuidevgru=globalThis.webpackChunksuidevgru||[]).push([[9197],{28453(e,n,s){s.d(n,{R:()=>r,x:()=>o});var i=s(96540);const l={},t=i.createContext(l);function r(e){const n=i.useContext(t);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:r(e.components),i.createElement(t.Provider,{value:n},e.children)}},48306(e,n,s){s.r(n),s.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>i,toc:()=>d});const i=JSON.parse('{"id":"getting-started/L03-install-sui-cli","title":"Install Sui CLI","description":"Set up the command-line tools","source":"@site/docs/getting-started/L03-install-sui-cli.mdx","sourceDirName":"getting-started","slug":"/getting-started/L03-install-sui-cli","permalink":"/docs/getting-started/L03-install-sui-cli","draft":false,"unlisted":false,"editUrl":"https://github.com/suidevgru/suidevgru.github.io/docs/getting-started/L03-install-sui-cli.mdx","tags":[],"version":"current","sidebarPosition":3,"frontMatter":{"sidebar_position":3,"title":"Install Sui CLI","description":"Set up the command-line tools"},"sidebar":"tutorialSidebar","previous":{"title":"Switch to Devnet","permalink":"/docs/getting-started/L02-switch-devnet"},"next":{"title":"Install Sui Extension for VSCode","permalink":"/docs/getting-started/L04-vscode-sui-extension"}}');var l=s(74848),t=s(28453);const r={sidebar_position:3,title:"Install Sui CLI",description:"Set up the command-line tools"},o="Install Sui CLI",c={},d=[{value:"What is Sui CLI?",id:"what-is-sui-cli",level:2},{value:"Install Suiup",id:"install-suiup",level:2},{value:"Install Sui CLI",id:"install-sui-cli-1",level:2},{value:"Verify Installation",id:"verify-installation",level:2},{value:"What You Did",id:"what-you-did",level:2}];function a(e){const n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",header:"header",hr:"hr",input:"input",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,t.R)(),...e.components},{Details:s}=n;return s||function(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(n.header,{children:(0,l.jsx)(n.h1,{id:"install-sui-cli",children:"Install Sui CLI"})}),"\n",(0,l.jsxs)(n.p,{children:["Let's install the Sui CLI (command-line tools). ",(0,l.jsx)(n.strong,{children:"It's not difficult"}),"\u2014just follow the steps."]}),"\n",(0,l.jsx)(n.h2,{id:"what-is-sui-cli",children:"What is Sui CLI?"}),"\n",(0,l.jsx)(n.p,{children:"Sui CLI is a tool for interacting with the Sui blockchain from your terminal."}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Build and deploy Move contracts"}),"\n",(0,l.jsx)(n.li,{children:"Send transactions"}),"\n",(0,l.jsx)(n.li,{children:"Inspect objects"}),"\n",(0,l.jsx)(n.li,{children:"Get test tokens from the Faucet"}),"\n"]}),"\n",(0,l.jsx)(n.p,{children:"It supports all these development tasks."}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsx)(n.h2,{id:"install-suiup",children:"Install Suiup"}),"\n",(0,l.jsxs)(n.p,{children:["We'll use ",(0,l.jsx)(n.strong,{children:"Suiup"}),", the official Sui CLI version manager. It works like ",(0,l.jsx)(n.code,{children:"rustup"})," for Rust, making it easy to manage multiple versions."]}),"\n",(0,l.jsxs)(s,{children:[(0,l.jsx)("summary",{children:"macOS / Linux"}),(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsxs)(n.li,{children:["\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Open your terminal and run the following command"})}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"curl -sSfL https://raw.githubusercontent.com/MystenLabs/suiup/main/install.sh | sh\n"})}),"\n"]}),"\n",(0,l.jsxs)(n.li,{children:["\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Close and reopen your terminal"})}),"\n",(0,l.jsxs)(n.p,{children:["(If ",(0,l.jsx)(n.code,{children:"suiup"})," is not found, check that ",(0,l.jsx)(n.code,{children:"~/.local/bin"}
1)," is in your PATH)"]}),"\n"]}),"\n",(0,l.jsxs)(n.li,{children:["\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Verify the installation"})}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"suiup --version\n"})}),"\n"]}),"\n"]})]}),"\n",(0,l.jsxs)(s,{children:[(0,l.jsx)("summary",{children:"Windows (PowerShell)"}),(0,l.jsxs)(n.p,{children:["On Windows, you download ",(0,l.jsx)(n.code,{children:"suiup.exe"})," from Releases and place it in a folder that's in your PATH."]}),(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsxs)(n.li,{children:["\n",(0,l.jsx)(n.p,{children:(0,l.jsxs)(n.strong,{children:["Download ",(0,l.jsx)(n.code,{children:"suiup"})]})}),"\n",(0,l.jsxs)(n.p,{children:["Go to ",(0,l.jsx)(n.a,{href:"https://github.com/MystenLabs/suiup/releases",children:"Suiup Releases"})," and download the Windows zip file.\nChoose the correct version for your CPU (most PCs are ",(0,l.jsx)(n.code,{children:"x86_64"}),", some like Surface are ",(0,l.jsx)(n.code,{children:"arm64"}),")."]}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:["Example: ",(0,l.jsx)(n.code,{children:"suiup-Windows-msvc-x86_64.zip"})," / ",(0,l.jsx)(n.code,{children:"suiup-Windows-msvc-arm64.zip"})]}),"\n"]}),"\n"]}),"\n",(0,l.jsxs)(n.li,{children:["\n",(0,l.jsx)(n.p,{children:(0,l.jsxs)(n.strong,{children:["Extract the zip and get ",(0,l.jsx)(n.code,{children:"suiup.exe"})]})}),"\n"]}),"\n",(0,l.jsxs)(n.li,{children:["\n",(0,l.jsx)(n.p,{children:(0,l.jsxs)(n.strong,{children:["Create a ",(0,l.jsx)(n.code,{children:"bin"})," folder"]})}),"\n",(0,l.jsx)(n.p,{children:"Run the following command."}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-powershell",children:'New-Item -ItemType Directory -Force -Path "$env:USERPROFILE\\bin"\n'})}),"\n"]}),"\n",(0,l.jsxs)(n.li,{children:["\n",(0,l.jsx)(n.p,{children:(0,l.jsxs)(n.strong,{children:["Move ",(0,l.jsx)(n.code,{children:"suiup.exe"})," to ",(0,l.jsx)(n.code,{children:"bin"})]})}),"\n"]}),"\n",(0,l.jsxs)(n.li,{children:["\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Add to PATH"})}),"\n",(0,l.jsx)(n.p,{children:"Run the following command."}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-powershell",children:'$userPath = [Environment]::GetEnvironmentVariable("Path", "User")\nif (-not $userPath) { $userPath = "" }\nif ($userPath -notlike "*$env:USERPROFILE\\bin*") {\n  [Environment]::SetEnvironmentVariable("Path", "$userPath;$env:USERPROFILE\\bin", "User")\n}\n'})}),"\n"]}),"\n",(0,l.jsxs)(n.li,{children:["\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Close and reopen PowerShell"})}),"\n"]}),"\n",(0,l.jsxs)(n.li,{children:["\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Verify the installation"})}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-powershell",children:"suiup --version\n"})}),"\n"]}),"\n"]})]}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsx)(n.h2,{id:"install-sui-cli-1",children:"Install Sui CLI"}),"\n",(0,l.jsx)(n.p,{children:"Once Suiup is ready, install Sui CLI. Since we're using Devnet in this tutorial, install the Devnet version."}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"suiup install sui@devnet -y\n"})}),"\n",(0,l.jsxs)(n.admonition,{title:"Network-specific versions",type:"tip",children:[(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.code,{children:"sui@devnet"})," \u2014 For development (used in this tutorial)"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.code,{children:"sui@testnet"})," \u2014 For testing"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.code,{children:"sui@mainnet"})," \u2014 For production"]}),"\n"]}),(0,l.jsxs)(n.p,{children:["Note: If you omit the version like ",(0,l.jsx)(n.code,{children:"suiup install sui"}),", testnet is selected by default."]})]}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsx)(n.h2,{id:"verify-installation",children:"Verify Installation"}),"\n",(0,l.jsx)(n.p,{children:"After installation, check the version."}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"sui --version\n"})}
1),"\n",(0,l.jsx)(n.p,{children:"If you see a version number, you're all set."}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{children:"sui 1.x.x-xxxxxxx\n"})}),"\n",(0,l.jsxs)(n.p,{children:["You can also check installed versions with ",(0,l.jsx)(n.code,{children:"suiup show"}),"."]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"suiup show\n"})}),"\n",(0,l.jsx)(n.admonition,{title:"If the version doesn't show",type:"warning",children:(0,l.jsxs)(n.p,{children:["If you see ",(0,l.jsx)(n.code,{children:"command not found"}),", try closing and reopening your terminal. If that doesn't work, check your path settings."]})}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsx)(n.h2,{id:"what-you-did",children:"What You Did"}),"\n",(0,l.jsxs)(n.ul,{className:"contains-task-list",children:["\n",(0,l.jsxs)(n.li,{className:"task-list-item",children:[(0,l.jsx)(n.input,{type:"checkbox",checked:!0,disabled:!0})," ","Understood what Sui CLI does"]}),"\n",(0,l.jsxs)(n.li,{className:"task-list-item",children:[(0,l.jsx)(n.input,{type:"checkbox",checked:!0,disabled:!0})," ","Installed Suiup"]}),"\n",(0,l.jsxs)(n.li,{className:"task-list-item",children:[(0,l.jsx)(n.input,{type:"checkbox",checked:!0,disabled:!0})," ","Installed Sui CLI (Devnet version)"]}),"\n",(0,l.jsxs)(n.li,{className:"task-list-item",children:[(0,l.jsx)(n.input,{type:"checkbox",checked:!0,disabled:!0})," ","Verified installation with ",(0,l.jsx)(n.code,{children:"sui --version"})]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,l.jsx)(n,{...e,children:(0,l.jsx)(a,{...e})}):a(e)}}}]);

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.