<!-- CANARY: REQ=REQ-REPL-ADVANCED-001; FEATURE="REPL Advanced Features"; ASPECT=Testing; STATUS=TESTED; OWNER=repl; UPDATED=2025-11-17 -->
<h3 id="overview" class="position-relative d-flex align-items-center group">
<span>Overview</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="overview"
aria-haspopup="dialog"
aria-label="Share link: Overview">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h3><div id="headingShareModal" class="heading-share-modal" role="dialog" aria-modal="true" aria-labelledby="headingShareTitle" hidden>
<div class="hsm-dialog" role="document">
<div class="hsm-header">
<h2 id="headingShareTitle" class="h6 mb-0 fw-bold">Share this section</h2>
<button type="button" class="hsm-close" aria-label="Close">
<i class="fa-solid fa-xmark"></i>
</button>
</div>
<div class="hsm-body">
<label for="headingShareInput" class="form-label small text-muted mb-1 text-uppercase fw-bold" style="font-size: 0.7rem; letter-spacing: 0.5px;">Permalink</label>
<div class="input-group mb-4 hsm-url-group">
<input id="headingShareInput" type="text" class="form-control font-monospace" readonly aria-readonly="true" style="font-size: 0.85rem;" />
<button class="btn btn-primary hsm-copy" type="button" aria-label="Copy" title="Copy">
<i class="fa-duotone fa-clipboard" aria-hidden="true"></i>
</button>
</div>
<div class="small fw-bold mb-2 text-muted text-uppercase" style="font-size: 0.7rem; letter-spacing: 0.5px;">Share via</div>
<div class="hsm-share-grid">
<a id="share-twitter" class="btn btn-outline-secondary w-100" target="_blank" rel="noopener noreferrer">
<i class="fa-brands fa-twitter me-2"></i>Twitter
</a>
<a id="share-linkedin" class="btn btn-outline-secondary w-100" target="_blank" rel="noopener noreferrer">
<i class="fa-brands fa-linkedin me-2"></i>LinkedIn
</a>
<a id="share-facebook" class="btn btn-outline-secondary w-100" target="_blank" rel="noopener noreferrer">
<i class="fa-brands fa-facebook me-2"></i>Facebook
</a>
</div>
</div>
</div>
</div>
<style>
.heading-share-modal {
position: fixed;
inset: 0;
display: flex;
justify-content: center;
align-items: center;
background: rgba(0, 0, 0, 0.6);
z-index: 1050;
padding: 1rem;
backdrop-filter: blur(4px);
-webkit-backdrop-filter: blur(4px);
}
.heading-share-modal[hidden] { display: none !important; }
.hsm-dialog {
max-width: 420px;
width: 100%;
background: var(--bs-body-bg, #fff);
color: var(--bs-body-color, #212529);
border: 1px solid var(--bs-border-color, rgba(0,0,0,0.1));
border-radius: 1rem;
box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
overflow: hidden;
animation: hsm-fade-in 0.2s ease-out;
}
@keyframes hsm-fade-in {
from { opacity: 0; transform: scale(0.95); }
to { opacity: 1; transform: scale(1); }
}
[data-bs-theme="dark"] .hsm-dialog {
background: #1e293b;
border-color: rgba(255,255,255,0.1);
color: #f8f9fa;
}
.hsm-header {
display: flex;
justify-content: space-between;
align-items: center;
padding: 1rem 1.5rem;
border-bottom: 1px solid var(--bs-border-color, rgba(0,0,0,0.1));
background: rgba(0,0,0,0.02);
}
[data-bs-theme="dark"] .hsm-header {
background: rgba(255,255,255,0.02);
border-color: rgba(255,255,255,0.1);
}
.hsm-close {
background: transparent;
border: none;
color: inherit;
opacity: 0.5;
padding: 0.25rem 0.5rem;
border-radius: 0.25rem;
font-size: 1.2rem;
line-height: 1;
transition: opacity 0.2s;
}
.hsm-close:hover {
opacity: 1;
}
.hsm-body {
padding: 1.5rem;
}
.hsm-url-group {
display: flex !important;
align-items: stretch;
}
.hsm-url-group .form-control {
flex: 1;
min-width: 0;
margin: 0;
background: var(--bs-secondary-bg, #f8f9fa);
border-color: var(--bs-border-color, #dee2e6);
border-top-right-radius: 0;
border-bottom-right-radius: 0;
height: 42px;
}
.hsm-url-group .btn {
flex: 0 0 auto;
margin: 0;
margin-left: -1px;
border-top-left-radius: 0;
border-bottom-left-radius: 0;
height: 42px;
display: flex;
align-items: center;
justify-content: center;
padding: 0 1.25rem;
z-index: 2;
}
[data-bs-theme="dark"] .hsm-url-group .form-control {
background: #0f172a;
border-color: #334155;
color: #e2e8f0;
}
.hsm-share-grid {
display: flex;
flex-direction: column;
gap: 0.5rem;
}
.hsm-share-grid .btn {
display: flex;
align-items: center;
justify-content: center;
font-size: 0.9rem;
padding: 0.6rem;
border-color: var(--bs-border-color);
width: 100%;
}
[data-bs-theme="dark"] .hsm-share-grid .btn {
color: #e2e8f0;
border-color: #475569;
}
[data-bs-theme="dark"] .hsm-share-grid .btn:hover {
background: #334155;
border-color: #cbd5e1;
}
</style>
<script>
(function(){
const modal = document.getElementById('headingShareModal');
if(!modal) return;
const input = modal.querySelector('#headingShareInput');
const copyBtn = modal.querySelector('.hsm-copy');
const twitter = modal.querySelector('#share-twitter');
const linkedin = modal.querySelector('#share-linkedin');
const facebook = modal.querySelector('#share-facebook');
const closeBtn = modal.querySelector('.hsm-close');
let lastFocus=null;
let trapBound=false;
function buildUrl(id){ return window.location.origin + window.location.pathname + '#' + id; }
function isOpen(){ return !modal.hasAttribute('hidden'); }
function hydrate(id){
const url=buildUrl(id);
input.value=url;
const enc=encodeURIComponent(url);
const text=encodeURIComponent(document.title);
if(twitter) twitter.href=`https://twitter.com/intent/tweet?url=${enc}&text=${text}`;
if(linkedin) linkedin.href=`https://www.linkedin.com/sharing/share-offsite/?url=${enc}`;
if(facebook) facebook.href=`https://www.facebook.com/sharer/sharer.php?u=${enc}`;
}
function openModal(id){
lastFocus=document.activeElement;
hydrate(id);
if(!isOpen()){
modal.removeAttribute('hidden');
}
requestAnimationFrame(()=>{ input.focus(); });
trapFocus();
}
function closeModal(){
if(!isOpen()) return;
modal.setAttribute('hidden','');
if(lastFocus && typeof lastFocus.focus==='function') lastFocus.focus();
}
function copyCurrent(){
try{ navigator.clipboard.writeText(input.value).then(()=>feedback(true),()=>fallback()); }
catch(e){ fallback(); }
}
function fallback(){ input.select(); try{ document.execCommand('copy'); feedback(true);}catch(e){ feedback(false);} }
function feedback(ok){ if(!copyBtn) return; const icon=copyBtn.querySelector('i'); if(!icon) return; const prev=copyBtn.getAttribute('data-prev')||icon.className; if(!copyBtn.getAttribute('data-prev')) copyBtn.setAttribute('data-prev',prev); icon.className= ok ? 'fa-duotone fa-clipboard-check':'fa-duotone fa-circle-exclamation'; setTimeout(()=>{ icon.className=prev; },1800); }
function handleShareClick(e){ e.preventDefault(); const btn=e.currentTarget; const id=btn.getAttribute('data-share-target'); if(id) openModal(id); }
function bindShareButtons(){
document.querySelectorAll('.h-share').forEach(btn=>{
if(!btn.dataset.hShareBound){ btn.addEventListener('click', handleShareClick); btn.dataset.hShareBound='1'; }
});
}
bindShareButtons();
if(document.readyState==='loading'){
document.addEventListener('DOMContentLoaded', bindShareButtons);
} else {
requestAnimationFrame(bindShareButtons);
}
document.addEventListener('click', function(e){
const shareBtn=e.target.closest && e.target.closest('.h-share');
if(shareBtn && !shareBtn.dataset.hShareBound){ handleShareClick.call(shareBtn, e); }
}, true);
document.addEventListener('click', e=>{
if(e.target===modal) closeModal();
if(e.target.closest && e.target.closest('.hsm-close')){ e.preventDefault(); closeModal(); }
if(copyBtn && (e.target===copyBtn || (e.target.closest && e.target.closest('.hsm-copy')))) { e.preventDefault(); copyCurrent(); }
});
document.addEventListener('keydown', e=>{ if(e.key==='Escape' && isOpen()) closeModal(); });
function trapFocus(){
if(trapBound) return;
trapBound=true;
modal.addEventListener('keydown', f=>{ if(f.key==='Tab' && isOpen()){ const focusable=[...modal.querySelectorAll('a[href],button,input,textarea,select,[tabindex]:not([tabindex="-1"])')].filter(el=>!el.hasAttribute('disabled')); if(!focusable.length) return; const first=focusable[0]; const last=focusable[focusable.length-1]; if(f.shiftKey && document.activeElement===first){ f.preventDefault(); last.focus(); } else if(!f.shiftKey && document.activeElement===last){ f.preventDefault(); first.focus(); } } });
}
if(closeBtn) closeBtn.addEventListener('click', e=>{ e.preventDefault(); closeModal(); });
})();
</script><p>The Geode REPL (Read-Eval-Print Loop) provides an interactive shell for query development, data exploration, and administration. This tutorial covers essential REPL features for productive database interaction.</p>
<h4 id="what-youll-learn" class="position-relative d-flex align-items-center group">
<span>What You&rsquo;ll Learn</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="what-youll-learn"
aria-haspopup="dialog"
aria-label="Share link: What Youll Learn">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h4><ul>
<li>Starting and connecting to the REPL</li>
<li>Executing GQL queries interactively</li>
<li>Using meta commands for shell control</li>
<li>Keyboard shortcuts for efficiency</li>
<li>History navigation and search</li>
<li>Output formatting options</li>
</ul>
<h3 id="getting-started" class="position-relative d-flex align-items-center group">
<span>Getting Started</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="getting-started"
aria-haspopup="dialog"
aria-label="Share link: Getting Started">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h3>
<h4 id="starting-the-repl" class="position-relative d-flex align-items-center group">
<span>Starting the REPL</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="starting-the-repl"
aria-haspopup="dialog"
aria-label="Share link: Starting the REPL">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h4><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Start REPL connected to local server</span>
</span></span><span class="line"><span class="cl">geode shell
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># Connect to remote server</span>
</span></span><span class="line"><span class="cl">geode shell --host db.example.com --port <span class="m">3141</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># With authentication</span>
</span></span><span class="line"><span class="cl">geode shell --user alice --password secretpass
</span></span></code></pre></div><p><strong>Welcome Screen</strong>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">Geode Interactive Shell v0.2.18
</span></span><span class="line"><span class="cl">Connected to: localhost:3141
</span></span><span class="line"><span class="cl">Type \help or \? for help, \quit to exit
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">geode>
</span></span></code></pre></div>
<h4 id="first-query" class="position-relative d-flex align-items-center group">
<span>First Query</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="first-query"
aria-haspopup="dialog"
aria-label="Share link: First Query">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h4><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-gql" data-lang="gql"><span class="line"><span class="cl"><span class="py">geode</span><span class="err">></span><span class="w"> </span><span class="py">RETURN</span><span class="w"> </span><span class="py">1</span><span class="w"> </span><span class="py">AS</span><span class="w"> </span><span class="py">number</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">┌────────┐</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="py">number</span><span class="w"> </span><span class="err">│</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">├────────┤</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="py">1</span><span class="w"> </span><span class="err">│</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">└────────┘</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">1</span><span class="w"> </span><span class="py">row</span><span class="w"> </span><span class="py">in</span><span class="w"> </span><span class="py">0</span><span class="mf">.002</span><span class="w"> </span><span class="py">seconds</span><span class="w">
</span></span></span></code></pre></div><p><strong>Features</strong>:</p>
<ul>
<li>Automatic formatting (table layout)</li>
<li>Execution time display</li>
<li>Row count summary</li>
</ul>
<h3 id="meta-commands" class="position-relative d-flex align-items-center group">
<span>Meta Commands</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="meta-commands"
aria-haspopup="dialog"
aria-label="Share link: Meta Commands">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h3><p><strong>Meta commands</strong> start with backslash (<code>\</code>) and control REPL behavior.</p>
<h4 id="essential-commands" class="position-relative d-flex align-items-center group">
<span>Essential Commands</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="essential-commands"
aria-haspopup="dialog"
aria-label="Share link: Essential Commands">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h4><p><strong>Help</strong>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">geode> \help
</span></span><span class="line"><span class="cl">geode> \h
</span></span><span class="line"><span class="cl">geode> \?
</span></span></code></pre></div><p><strong>Quit</strong>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">geode> \quit
</span></span><span class="line"><span class="cl">geode> \q
</span></span></code></pre></div><p><strong>Clear Screen</strong>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">geode> \clear
</span></span></code></pre></div><p><strong>Echo Text</strong>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">geode> \echo Hello, Geode!
</span></span><span class="line"><span class="cl">Hello, Geode!
</span></span></code></pre></div>
<h4 id="connection-management" class="position-relative d-flex align-items-center group">
<span>Connection Management</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="connection-management"
aria-haspopup="dialog"
aria-label="Share link: Connection Management">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h4><p><strong>Connect to Server</strong>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">geode> \connect db.example.com:3141
</span></span><span class="line"><span class="cl">Connected to: db.example.com:3141
</span></span></code></pre></div><p><strong>Disconnect</strong>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">geode> \disconnect
</span></span><span class="line"><span class="cl">Disconnected from server
</span></span></code></pre></div><p><strong>Connection Status</strong>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">geode> \status
</span></span><span class="line"><span class="cl">Connected: Yes
</span></span><span class="line"><span class="cl">Server: localhost:3141
</span></span><span class="line"><span class="cl">User: alice
</span></span><span class="line"><span class="cl">Database: main
</span></span></code></pre></div>
<h4 id="transaction-commands" class="position-relative d-flex align-items-center group">
<span>Transaction Commands</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="transaction-commands"
aria-haspopup="dialog"
aria-label="Share link: Transaction Commands">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h4><p><strong>Begin Transaction</strong>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">geode> \begin
</span></span><span class="line"><span class="cl">Transaction started
</span></span></code></pre></div><p><strong>Commit</strong>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">geode> \commit
</span></span><span class="line"><span class="cl">Transaction committed
</span></span></code></pre></div><p><strong>Rollback</strong>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">geode> \rollback
</span></span><span class="line"><span class="cl">Transaction rolled back
</span></span></code></pre></div><p><strong>Transaction Example</strong>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-gql" data-lang="gql"><span class="line"><span class="cl"><span class="py">geode</span><span class="err">></span><span class="w"> </span><span class="err">\</span><span class="py">begin</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">geode</span><span class="err">></span><span class="w"> </span><span class="py">CREATE</span><span class="w"> </span><span class="p">(</span><span class="py">n</span><span class="p">:</span><span class="nc">Person</span><span class="w"> </span><span class="p">{</span><span class="py">name</span><span class="p">:</span><span class="w"> </span><span class="err">'</span><span class="nc">Alice</span><span class="err">'</span><span class="p">})</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">geode</span><span class="err">></span><span class="w"> </span><span class="py">CREATE</span><span class="w"> </span><span class="p">(</span><span class="py">n</span><span class="p">:</span><span class="nc">Person</span><span class="w"> </span><span class="p">{</span><span class="py">name</span><span class="p">:</span><span class="w"> </span><span class="err">'</span><span class="nc">Bob</span><span class="err">'</span><span class="p">})</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">geode</span><span class="err">></span><span class="w"> </span><span class="err">\</span><span class="py">commit</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">2</span><span class="w"> </span><span class="py">nodes</span><span class="w"> </span><span class="py">created</span><span class="w">
</span></span></span></code></pre></div>
<h4 id="output-formatting" class="position-relative d-flex align-items-center group">
<span>Output Formatting</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="output-formatting"
aria-haspopup="dialog"
aria-label="Share link: Output Formatting">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h4><p><strong>Table Format</strong> (default):</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">geode> \format table
</span></span><span class="line"><span class="cl">geode> MATCH (n:Person) RETURN n.name
</span></span><span class="line"><span class="cl">┌───────┐
</span></span><span class="line"><span class="cl">│ name │
</span></span><span class="line"><span class="cl">├───────┤
</span></span><span class="line"><span class="cl">│ Alice │
</span></span><span class="line"><span class="cl">│ Bob │
</span></span><span class="line"><span class="cl">└───────┘
</span></span></code></pre></div><p><strong>CSV Format</strong>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">geode> \format csv
</span></span><span class="line"><span class="cl">geode> MATCH (n:Person) RETURN n.name, n.age
</span></span><span class="line"><span class="cl">name,age
</span></span><span class="line"><span class="cl">Alice,30
</span></span><span class="line"><span class="cl">Bob,28
</span></span></code></pre></div><p><strong>JSON Format</strong>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">geode> \format json
</span></span><span class="line"><span class="cl">geode> MATCH (n:Person) RETURN n.name, n.age
</span></span><span class="line"><span class="cl">{"columns":["name","age"],"rows":[["Alice",30],["Bob",28]]}
</span></span></code></pre></div>
<h4 id="history-commands" class="position-relative d-flex align-items-center group">
<span>History Commands</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="history-commands"
aria-haspopup="dialog"
aria-label="Share link: History Commands">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h4><p><strong>View History</strong>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">geode> \history
</span></span><span class="line"><span class="cl"> 1 RETURN 1
</span></span><span class="line"><span class="cl"> 2 MATCH (n:Person) RETURN n.name
</span></span><span class="line"><span class="cl"> 3 CREATE (n:Person {name: 'Carol'})
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">geode> \history 5
</span></span><span class="line"><span class="cl"> # Shows last 5 entries
</span></span></code></pre></div><p><strong>Clear History</strong>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">geode> \history -c
</span></span><span class="line"><span class="cl">History cleared
</span></span></code></pre></div>
<h4 id="timing" class="position-relative d-flex align-items-center group">
<span>Timing</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="timing"
aria-haspopup="dialog"
aria-label="Share link: Timing">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h4><p><strong>Enable Query Timing</strong>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">geode> \timing on
</span></span><span class="line"><span class="cl">Timing enabled
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">geode> MATCH (n) RETURN count(n)
</span></span><span class="line"><span class="cl">┌──────────┐
</span></span><span class="line"><span class="cl">│ count(n) │
</span></span><span class="line"><span class="cl">├──────────┤
</span></span><span class="line"><span class="cl">│ 1000 │
</span></span><span class="line"><span class="cl">└──────────┘
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">1 row in 0.042 seconds
</span></span></code></pre></div><p><strong>Disable Timing</strong>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">geode> \timing off
</span></span><span class="line"><span class="cl">Timing disabled
</span></span></code></pre></div>
<h4 id="configuration" class="position-relative d-flex align-items-center group">
<span>Configuration</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="configuration"
aria-haspopup="dialog"
aria-label="Share link: Configuration">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h4><p><strong>Set Options</strong>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">geode> \set keymap vi
</span></span><span class="line"><span class="cl">Keymap set to: vi
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">geode> \set keymap emacs
</span></span><span class="line"><span class="cl">Keymap set to: emacs
</span></span></code></pre></div><p><strong>View Settings</strong>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">geode> \set
</span></span><span class="line"><span class="cl">keymap: emacs
</span></span><span class="line"><span class="cl">format: table
</span></span><span class="line"><span class="cl">timing: on
</span></span></code></pre></div>
<h3 id="query-execution" class="position-relative d-flex align-items-center group">
<span>Query Execution</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="query-execution"
aria-haspopup="dialog"
aria-label="Share link: Query Execution">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h3>
<h4 id="single-line-queries" class="position-relative d-flex align-items-center group">
<span>Single-Line Queries</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="single-line-queries"
aria-haspopup="dialog"
aria-label="Share link: Single-Line Queries">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h4><p><strong>Press Enter to Execute</strong>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-gql" data-lang="gql"><span class="line"><span class="cl"><span class="py">geode</span><span class="err">></span><span class="w"> </span><span class="py">RETURN</span><span class="w"> </span><span class="py">1</span><span class="w"> </span><span class="err">+</span><span class="w"> </span><span class="py">1</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">┌───┐</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="py">2</span><span class="w"> </span><span class="err">│</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">└───┘</span><span class="w">
</span></span></span></code></pre></div>
<h4 id="multi-line-queries" class="position-relative d-flex align-items-center group">
<span>Multi-Line Queries</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="multi-line-queries"
aria-haspopup="dialog"
aria-label="Share link: Multi-Line Queries">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h4><p><strong>End with Semicolon</strong>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-gql" data-lang="gql"><span class="line"><span class="cl"><span class="py">geode</span><span class="err">></span><span class="w"> </span><span class="py">MATCH</span><span class="w"> </span><span class="p">(</span><span class="py">p</span><span class="p">:</span><span class="nc">Person</span><span class="p">)</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">geode</span><span class="err">></span><span class="w"> </span><span class="py">WHERE</span><span class="w"> </span><span class="py">p</span><span class="err">.</span><span class="py">age</span><span class="w"> </span><span class="err">></span><span class="w"> </span><span class="py">25</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">geode</span><span class="err">></span><span class="w"> </span><span class="py">RETURN</span><span class="w"> </span><span class="py">p</span><span class="err">.</span><span class="py">name</span><span class="p">,</span><span class="w"> </span><span class="py">p</span><span class="err">.</span><span class="py">age</span><span class="err">;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">┌───────┬─────┐</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="py">name</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="py">age</span><span class="w"> </span><span class="err">│</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">├───────┼─────┤</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="py">Alice</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="py">30</span><span class="w"> </span><span class="err">│</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="py">Bob</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="py">28</span><span class="w"> </span><span class="err">│</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">└───────┴─────┘</span><span class="w">
</span></span></span></code></pre></div><p><strong>Indicators</strong>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">geode> # Ready for new command
</span></span><span class="line"><span class="cl">geode- # Continuation of multi-line query
</span></span></code></pre></div>
<h4 id="query-cancellation" class="position-relative d-flex align-items-center group">
<span>Query Cancellation</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="query-cancellation"
aria-haspopup="dialog"
aria-label="Share link: Query Cancellation">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h4><p><strong>Press Ctrl+C</strong>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-gql" data-lang="gql"><span class="line"><span class="cl"><span class="py">geode</span><span class="err">></span><span class="w"> </span><span class="py">MATCH</span><span class="w"> </span><span class="p">(</span><span class="py">n</span><span class="p">)</span><span class="err">-</span><span class="p">[</span><span class="py">r</span><span class="err">*</span><span class="py">1</span><span class="err">.</span><span class="mf">.10</span><span class="p">]</span><span class="err">-></span><span class="p">(</span><span class="py">m</span><span class="p">)</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">geode</span><span class="err">-</span><span class="w"> </span><span class="py">WHERE</span><span class="w"> </span><span class="py">n</span><span class="err">.</span><span class="py">id</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="py">1</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">geode</span><span class="err">-</span><span class="w"> </span><span class="py">RETURN</span><span class="w"> </span><span class="py">m</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">^</span><span class="py">C</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">Query</span><span class="w"> </span><span class="py">cancelled</span><span class="w">
</span></span></span></code></pre></div>
<h3 id="keyboard-shortcuts" class="position-relative d-flex align-items-center group">
<span>Keyboard Shortcuts</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="keyboard-shortcuts"
aria-haspopup="dialog"
aria-label="Share link: Keyboard Shortcuts">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h3>
<h4 id="emacs-mode-default" class="position-relative d-flex align-items-center group">
<span>Emacs Mode (Default)</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="emacs-mode-default"
aria-haspopup="dialog"
aria-label="Share link: Emacs Mode (Default)">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h4><p><strong>Navigation</strong>:</p>
<ul>
<li><code>Ctrl+A</code>: Beginning of line</li>
<li><code>Ctrl+E</code>: End of line</li>
<li><code>Alt+F</code>: Forward one word</li>
<li><code>Alt+B</code>: Backward one word</li>
</ul>
<p><strong>Editing</strong>:</p>
<ul>
<li><code>Ctrl+K</code>: Kill to end of line</li>
<li><code>Ctrl+U</code>: Kill to beginning of line</li>
<li><code>Ctrl+W</code>: Kill word backward</li>
<li><code>Ctrl+Y</code>: Yank (paste) from kill ring</li>
</ul>
<p><strong>History</strong>:</p>
<ul>
<li><code>Ctrl+P</code>: Previous history entry</li>
<li><code>Ctrl+N</code>: Next history entry</li>
<li><code>Ctrl+R</code>: Reverse search history</li>
<li><code>Ctrl+S</code>: Forward search history</li>
</ul>
<p><strong>Control</strong>:</p>
<ul>
<li><code>Ctrl+L</code>: Clear screen</li>
<li><code>Ctrl+C</code>: Cancel current input</li>
<li><code>Ctrl+D</code>: Delete character or exit on empty line</li>
</ul>
<h4 id="vi-mode" class="position-relative d-flex align-items-center group">
<span>Vi Mode</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="vi-mode"
aria-haspopup="dialog"
aria-label="Share link: Vi Mode">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h4><p><strong>Activate</strong>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">geode> \set keymap vi
</span></span></code></pre></div><p><strong>Command Mode</strong>:</p>
<ul>
<li><code>ESC</code>: Enter command mode</li>
<li><code>i</code>: Insert mode</li>
<li><code>a</code>: Append mode</li>
<li><code>A</code>: Append at end of line</li>
</ul>
<p><strong>Navigation</strong> (command mode):</p>
<ul>
<li><code>h</code>: Left</li>
<li><code>l</code>: Right</li>
<li><code>w</code>: Forward word</li>
<li><code>b</code>: Backward word</li>
<li><code>0</code>: Beginning of line</li>
<li><code>$</code>: End of line</li>
</ul>
<p><strong>Editing</strong> (command mode):</p>
<ul>
<li><code>dd</code>: Delete line</li>
<li><code>dw</code>: Delete word</li>
<li><code>x</code>: Delete character</li>
<li><code>p</code>: Paste</li>
</ul>
<h3 id="history-navigation" class="position-relative d-flex align-items-center group">
<span>History Navigation</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="history-navigation"
aria-haspopup="dialog"
aria-label="Share link: History Navigation">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h3>
<h4 id="reverse-search" class="position-relative d-flex align-items-center group">
<span>Reverse Search</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="reverse-search"
aria-haspopup="dialog"
aria-label="Share link: Reverse Search">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h4><p><strong>Press Ctrl+R</strong>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">(reverse-i-search)`cre': CREATE (n:Person {name: 'Alice'})
</span></span></code></pre></div><p><strong>Type to Filter</strong>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">(reverse-i-search)`match': MATCH (n:Person) RETURN n.name
</span></span></code></pre></div><p><strong>Press Enter</strong>: Execute found command
<strong>Press Ctrl+R Again</strong>: Next match</p>
<h4 id="history-file" class="position-relative d-flex align-items-center group">
<span>History File</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="history-file"
aria-haspopup="dialog"
aria-label="Share link: History File">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h4><p><strong>Location</strong>:</p>
<ul>
<li>Linux: <code>~/.local/share/geode/history</code></li>
<li>macOS: <code>~/Library/Application Support/geode/history</code></li>
<li>Windows: <code>%APPDATA%\geode\history</code></li>
</ul>
<p><strong>Custom Location</strong>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">export</span> <span class="nv">GEODE_HISTORY</span><span class="o">=</span>/path/to/custom/history
</span></span><span class="line"><span class="cl">geode shell
</span></span></code></pre></div>
<h3 id="advanced-features" class="position-relative d-flex align-items-center group">
<span>Advanced Features</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="advanced-features"
aria-haspopup="dialog"
aria-label="Share link: Advanced Features">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h3>
<h4 id="query-variables" class="position-relative d-flex align-items-center group">
<span>Query Variables</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="query-variables"
aria-haspopup="dialog"
aria-label="Share link: Query Variables">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h4><p><strong>Set Variable</strong>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-gql" data-lang="gql"><span class="line"><span class="cl"><span class="py">geode</span><span class="err">></span><span class="w"> </span><span class="py">WITH</span><span class="w"> </span><span class="py">30</span><span class="w"> </span><span class="py">AS</span><span class="w"> </span><span class="py">age_threshold</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">geode</span><span class="err">-</span><span class="w"> </span><span class="py">MATCH</span><span class="w"> </span><span class="p">(</span><span class="py">p</span><span class="p">:</span><span class="nc">Person</span><span class="p">)</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">geode</span><span class="err">-</span><span class="w"> </span><span class="py">WHERE</span><span class="w"> </span><span class="py">p</span><span class="err">.</span><span class="py">age</span><span class="w"> </span><span class="err">></span><span class="w"> </span><span class="py">age_threshold</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">geode</span><span class="err">-</span><span class="w"> </span><span class="py">RETURN</span><span class="w"> </span><span class="py">p</span><span class="err">.</span><span class="py">name</span><span class="p">,</span><span class="w"> </span><span class="py">p</span><span class="err">.</span><span class="py">age</span><span class="err">;</span><span class="w">
</span></span></span></code></pre></div><p><strong>Reuse in Multiple Queries</strong>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-gql" data-lang="gql"><span class="line"><span class="cl"><span class="py">geode</span><span class="err">></span><span class="w"> </span><span class="py">CREATE</span><span class="w"> </span><span class="p">(</span><span class="py">n</span><span class="p">:</span><span class="nc">Config</span><span class="w"> </span><span class="p">{</span><span class="py">threshold</span><span class="p">:</span><span class="w"> </span><span class="nc">30</span><span class="p">})</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">geode</span><span class="err">></span><span class="w"> </span><span class="py">MATCH</span><span class="w"> </span><span class="p">(</span><span class="py">c</span><span class="p">:</span><span class="nc">Config</span><span class="p">)</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">geode</span><span class="err">-</span><span class="w"> </span><span class="py">WITH</span><span class="w"> </span><span class="py">c</span><span class="err">.</span><span class="py">threshold</span><span class="w"> </span><span class="py">AS</span><span class="w"> </span><span class="py">threshold</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">geode</span><span class="err">-</span><span class="w"> </span><span class="py">MATCH</span><span class="w"> </span><span class="p">(</span><span class="py">p</span><span class="p">:</span><span class="nc">Person</span><span class="p">)</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">geode</span><span class="err">-</span><span class="w"> </span><span class="py">WHERE</span><span class="w"> </span><span class="py">p</span><span class="err">.</span><span class="py">age</span><span class="w"> </span><span class="err">></span><span class="w"> </span><span class="py">threshold</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">geode</span><span class="err">-</span><span class="w"> </span><span class="py">RETURN</span><span class="w"> </span><span class="py">p</span><span class="err">.</span><span class="py">name</span><span class="err">;</span><span class="w">
</span></span></span></code></pre></div>
<h4 id="pipeline-queries" class="position-relative d-flex align-items-center group">
<span>Pipeline Queries</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="pipeline-queries"
aria-haspopup="dialog"
aria-label="Share link: Pipeline Queries">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h4><p><strong>WITH Clause Chaining</strong>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-gql" data-lang="gql"><span class="line"><span class="cl"><span class="py">geode</span><span class="err">></span><span class="w"> </span><span class="py">MATCH</span><span class="w"> </span><span class="p">(</span><span class="py">u</span><span class="p">:</span><span class="nc">User</span><span class="p">)</span><span class="err">-</span><span class="p">[:</span><span class="nc">PLACED</span><span class="p">]</span><span class="err">-></span><span class="p">(</span><span class="py">o</span><span class="p">:</span><span class="nc">Order</span><span class="p">)</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">geode</span><span class="err">-</span><span class="w"> </span><span class="py">WITH</span><span class="w"> </span><span class="py">u</span><span class="p">,</span><span class="w"> </span><span class="py">count</span><span class="p">(</span><span class="py">o</span><span class="p">)</span><span class="w"> </span><span class="py">AS</span><span class="w"> </span><span class="py">order_count</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">geode</span><span class="err">-</span><span class="w"> </span><span class="py">WHERE</span><span class="w"> </span><span class="py">order_count</span><span class="w"> </span><span class="err">></span><span class="w"> </span><span class="py">5</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">geode</span><span class="err">-</span><span class="w"> </span><span class="py">RETURN</span><span class="w"> </span><span class="py">u</span><span class="err">.</span><span class="py">name</span><span class="p">,</span><span class="w"> </span><span class="py">order_count</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">geode</span><span class="err">-</span><span class="w"> </span><span class="py">ORDER</span><span class="w"> </span><span class="py">BY</span><span class="w"> </span><span class="py">order_count</span><span class="w"> </span><span class="py">DESC</span><span class="err">;</span><span class="w">
</span></span></span></code></pre></div>
<h4 id="parameterized-queries" class="position-relative d-flex align-items-center group">
<span>Parameterized Queries</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="parameterized-queries"
aria-haspopup="dialog"
aria-label="Share link: Parameterized Queries">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h4><p><strong>Future Feature</strong>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-gql" data-lang="gql"><span class="line"><span class="cl"><span class="py">geode</span><span class="err">></span><span class="w"> </span><span class="p">:</span><span class="nc">set</span><span class="w"> </span><span class="py">min_age</span><span class="w"> </span><span class="py">30</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">geode</span><span class="err">></span><span class="w"> </span><span class="py">MATCH</span><span class="w"> </span><span class="p">(</span><span class="py">p</span><span class="p">:</span><span class="nc">Person</span><span class="p">)</span><span class="w"> </span><span class="py">WHERE</span><span class="w"> </span><span class="py">p</span><span class="err">.</span><span class="py">age</span><span class="w"> </span><span class="err">></span><span class="w"> </span><span class="nv">$min_age</span><span class="w"> </span><span class="py">RETURN</span><span class="w"> </span><span class="py">p</span><span class="err">.</span><span class="py">name</span><span class="err">;</span><span class="w">
</span></span></span></code></pre></div>
<h3 id="practical-examples" class="position-relative d-flex align-items-center group">
<span>Practical Examples</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="practical-examples"
aria-haspopup="dialog"
aria-label="Share link: Practical Examples">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h3>
<h4 id="data-exploration" class="position-relative d-flex align-items-center group">
<span>Data Exploration</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="data-exploration"
aria-haspopup="dialog"
aria-label="Share link: Data Exploration">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h4><p><strong>Count Nodes</strong>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-gql" data-lang="gql"><span class="line"><span class="cl"><span class="py">geode</span><span class="err">></span><span class="w"> </span><span class="py">MATCH</span><span class="w"> </span><span class="p">(</span><span class="py">n</span><span class="p">)</span><span class="w"> </span><span class="py">RETURN</span><span class="w"> </span><span class="py">labels</span><span class="p">(</span><span class="py">n</span><span class="p">)</span><span class="w"> </span><span class="py">AS</span><span class="w"> </span><span class="py">label</span><span class="p">,</span><span class="w"> </span><span class="py">count</span><span class="p">(</span><span class="py">n</span><span class="p">)</span><span class="w"> </span><span class="py">AS</span><span class="w"> </span><span class="py">count</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">┌────────┬───────┐</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="py">label</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="py">count</span><span class="w"> </span><span class="err">│</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">├────────┼───────┤</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="py">Person</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="py">100</span><span class="w"> </span><span class="err">│</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="py">Order</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="py">500</span><span class="w"> </span><span class="err">│</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">└────────┴───────┘</span><span class="w">
</span></span></span></code></pre></div><p><strong>Sample Data</strong>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-gql" data-lang="gql"><span class="line"><span class="cl"><span class="py">geode</span><span class="err">></span><span class="w"> </span><span class="py">MATCH</span><span class="w"> </span><span class="p">(</span><span class="py">n</span><span class="p">:</span><span class="nc">Person</span><span class="p">)</span><span class="w"> </span><span class="py">RETURN</span><span class="w"> </span><span class="py">n</span><span class="w"> </span><span class="py">LIMIT</span><span class="w"> </span><span class="py">5</span><span class="w">
</span></span></span></code></pre></div><p><strong>Schema Discovery</strong>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-gql" data-lang="gql"><span class="line"><span class="cl"><span class="py">geode</span><span class="err">></span><span class="w"> </span><span class="py">CALL</span><span class="w"> </span><span class="py">db</span><span class="err">.</span><span class="kd">schema</span><span class="err">.</span><span class="py">nodeLabels</span><span class="p">()</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">┌────────┐</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="py">label</span><span class="w"> </span><span class="err">│</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">├────────┤</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="py">Person</span><span class="w"> </span><span class="err">│</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="py">Order</span><span class="w"> </span><span class="err">│</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="py">Product</span><span class="err">│</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">└────────┘</span><span class="w">
</span></span></span></code></pre></div>
<h4 id="database-administration" class="position-relative d-flex align-items-center group">
<span>Database Administration</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="database-administration"
aria-haspopup="dialog"
aria-label="Share link: Database Administration">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h4><p><strong>Show Indexes</strong>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-gql" data-lang="gql"><span class="line"><span class="cl"><span class="py">geode</span><span class="err">></span><span class="w"> </span><span class="py">CALL</span><span class="w"> </span><span class="py">db</span><span class="err">.</span><span class="py">indexes</span><span class="p">()</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">┌──────────────────┬──────────┬────────┐</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="py">name</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="kd">type</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="nc">labels</span><span class="w"> </span><span class="err">│</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">├──────────────────┼──────────┼────────┤</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="py">person_email_idx</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="py">btree</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="py">Person</span><span class="w"> </span><span class="err">│</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="py">product_sku_idx</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="py">unique</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="py">Product</span><span class="err">│</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">└──────────────────┴──────────┴────────┘</span><span class="w">
</span></span></span></code></pre></div><p><strong>Database Statistics</strong>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-gql" data-lang="gql"><span class="line"><span class="cl"><span class="py">geode</span><span class="err">></span><span class="w"> </span><span class="py">CALL</span><span class="w"> </span><span class="py">db</span><span class="err">.</span><span class="py">stats</span><span class="p">()</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">┌──────────────┬────────┐</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="py">metric</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="py">value</span><span class="w"> </span><span class="err">│</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">├──────────────┼────────┤</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="py">node_count</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="py">10000</span><span class="w"> </span><span class="err">│</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="py">edge_count</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="py">25000</span><span class="w"> </span><span class="err">│</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">│</span><span class="w"> </span><span class="py">storage_mb</span><span class="w"> </span><span class="err">│</span><span class="w"> </span><span class="py">450</span><span class="w"> </span><span class="err">│</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">└──────────────┴────────┘</span><span class="w">
</span></span></span></code></pre></div>
<h4 id="development-workflow" class="position-relative d-flex align-items-center group">
<span>Development Workflow</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="development-workflow"
aria-haspopup="dialog"
aria-label="Share link: Development Workflow">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h4><p><strong>1. Test Query</strong>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-gql" data-lang="gql"><span class="line"><span class="cl"><span class="py">geode</span><span class="err">></span><span class="w"> </span><span class="py">EXPLAIN</span><span class="w"> </span><span class="py">MATCH</span><span class="w"> </span><span class="p">(</span><span class="py">n</span><span class="p">:</span><span class="nc">Person</span><span class="p">)</span><span class="w"> </span><span class="py">WHERE</span><span class="w"> </span><span class="py">n</span><span class="err">.</span><span class="py">age</span><span class="w"> </span><span class="err">></span><span class="w"> </span><span class="py">25</span><span class="w"> </span><span class="py">RETURN</span><span class="w"> </span><span class="py">n</span><span class="err">.</span><span class="py">name</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="c"># Review query plan</span><span class="w">
</span></span></span></code></pre></div><p><strong>2. Optimize</strong>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-gql" data-lang="gql"><span class="line"><span class="cl"><span class="py">geode</span><span class="err">></span><span class="w"> </span><span class="py">CREATE</span><span class="w"> </span><span class="py">INDEX</span><span class="w"> </span><span class="py">person_age_idx</span><span class="w"> </span><span class="py">ON</span><span class="w"> </span><span class="py">Person</span><span class="w"> </span><span class="p">(</span><span class="py">age</span><span class="p">)</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">Index</span><span class="w"> </span><span class="py">created</span><span class="w">
</span></span></span></code></pre></div><p><strong>3. Verify</strong>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-gql" data-lang="gql"><span class="line"><span class="cl"><span class="py">geode</span><span class="err">></span><span class="w"> </span><span class="py">PROFILE</span><span class="w"> </span><span class="py">MATCH</span><span class="w"> </span><span class="p">(</span><span class="py">n</span><span class="p">:</span><span class="nc">Person</span><span class="p">)</span><span class="w"> </span><span class="py">WHERE</span><span class="w"> </span><span class="py">n</span><span class="err">.</span><span class="py">age</span><span class="w"> </span><span class="err">></span><span class="w"> </span><span class="py">25</span><span class="w"> </span><span class="py">RETURN</span><span class="w"> </span><span class="py">n</span><span class="err">.</span><span class="py">name</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="c"># Check performance metrics</span><span class="w">
</span></span></span></code></pre></div>
<h3 id="troubleshooting" class="position-relative d-flex align-items-center group">
<span>Troubleshooting</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="troubleshooting"
aria-haspopup="dialog"
aria-label="Share link: Troubleshooting">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h3>
<h4 id="common-issues" class="position-relative d-flex align-items-center group">
<span>Common Issues</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="common-issues"
aria-haspopup="dialog"
aria-label="Share link: Common Issues">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h4><p><strong>Issue</strong>: “REPL error: FileNotFound”</p>
<p><strong>Solution</strong>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Create history directory</span>
</span></span><span class="line"><span class="cl">mkdir -p ~/.local/share/geode <span class="c1"># Linux</span>
</span></span><span class="line"><span class="cl">mkdir -p ~/Library/Application<span class="se">\ </span>Support/geode <span class="c1"># macOS</span>
</span></span></code></pre></div><hr>
<p><strong>Issue</strong>: Queries not executing</p>
<p><strong>Cause</strong>: Missing semicolon on multi-line query</p>
<p><strong>Solution</strong>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-gql" data-lang="gql"><span class="line"><span class="cl"><span class="py">geode</span><span class="err">></span><span class="w"> </span><span class="py">MATCH</span><span class="w"> </span><span class="p">(</span><span class="py">n</span><span class="p">)</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">geode</span><span class="err">-</span><span class="w"> </span><span class="py">RETURN</span><span class="w"> </span><span class="py">n</span><span class="err">;</span><span class="w"> </span><span class="c"># Add semicolon</span><span class="w">
</span></span></span></code></pre></div><hr>
<p><strong>Issue</strong>: Connection lost during query</p>
<p><strong>Solution</strong>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">geode> \connect localhost:3141
</span></span><span class="line"><span class="cl">geode> # Re-run query
</span></span></code></pre></div><hr>
<p><strong>Issue</strong>: Output too wide for terminal</p>
<p><strong>Solution</strong>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">geode> \format json
</span></span><span class="line"><span class="cl"># Or use SELECT to limit columns
</span></span><span class="line"><span class="cl">geode> MATCH (n) RETURN n.id, n.name # Fewer columns
</span></span></code></pre></div>
<h3 id="best-practices" class="position-relative d-flex align-items-center group">
<span>Best Practices</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="best-practices"
aria-haspopup="dialog"
aria-label="Share link: Best Practices">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h3>
<h4 id="query-development" class="position-relative d-flex align-items-center group">
<span>Query Development</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="query-development"
aria-haspopup="dialog"
aria-label="Share link: Query Development">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h4><ol>
<li>
<p><strong>Start Simple</strong>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-gql" data-lang="gql"><span class="line"><span class="cl"><span class="py">geode</span><span class="err">></span><span class="w"> </span><span class="py">MATCH</span><span class="w"> </span><span class="p">(</span><span class="py">n</span><span class="p">:</span><span class="nc">Person</span><span class="p">)</span><span class="w"> </span><span class="py">RETURN</span><span class="w"> </span><span class="py">count</span><span class="p">(</span><span class="py">n</span><span class="p">)</span><span class="w"> </span><span class="c"># Test filter</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">geode</span><span class="err">></span><span class="w"> </span><span class="py">MATCH</span><span class="w"> </span><span class="p">(</span><span class="py">n</span><span class="p">:</span><span class="nc">Person</span><span class="p">)</span><span class="w"> </span><span class="py">RETURN</span><span class="w"> </span><span class="py">n</span><span class="w"> </span><span class="py">LIMIT</span><span class="w"> </span><span class="py">1</span><span class="w"> </span><span class="c"># Inspect structure</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">geode</span><span class="err">></span><span class="w"> </span><span class="py">MATCH</span><span class="w"> </span><span class="p">(</span><span class="py">n</span><span class="p">:</span><span class="nc">Person</span><span class="p">)</span><span class="w"> </span><span class="py">WHERE</span><span class="w"> </span><span class="py">n</span><span class="err">.</span><span class="py">age</span><span class="w"> </span><span class="err">></span><span class="w"> </span><span class="py">25</span><span class="w"> </span><span class="py">RETURN</span><span class="w"> </span><span class="py">n</span><span class="w"> </span><span class="c"># Full query</span><span class="w">
</span></span></span></code></pre></div></li>
<li>
<p><strong>Use EXPLAIN</strong>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-gql" data-lang="gql"><span class="line"><span class="cl"><span class="py">geode</span><span class="err">></span><span class="w"> </span><span class="py">EXPLAIN</span><span class="w"> </span><span class="py">MATCH</span><span class="w"> </span><span class="p">(</span><span class="py">n</span><span class="p">:</span><span class="nc">Person</span><span class="p">)</span><span class="err">-</span><span class="p">[:</span><span class="nc">KNOWS</span><span class="p">]</span><span class="err">-></span><span class="p">(</span><span class="py">m</span><span class="p">)</span><span class="w"> </span><span class="py">RETURN</span><span class="w"> </span><span class="py">n</span><span class="p">,</span><span class="w"> </span><span class="py">m</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="c"># Verify query plan before executing</span><span class="w">
</span></span></span></code></pre></div></li>
<li>
<p><strong>Limit Results</strong>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-gql" data-lang="gql"><span class="line"><span class="cl"><span class="py">geode</span><span class="err">></span><span class="w"> </span><span class="py">MATCH</span><span class="w"> </span><span class="p">(</span><span class="py">n</span><span class="p">)</span><span class="w"> </span><span class="py">RETURN</span><span class="w"> </span><span class="py">n</span><span class="w"> </span><span class="py">LIMIT</span><span class="w"> </span><span class="py">100</span><span class="w"> </span><span class="c"># Always limit during development</span><span class="w">
</span></span></span></code></pre></div></li>
</ol>
<h4 id="history-management" class="position-relative d-flex align-items-center group">
<span>History Management</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="history-management"
aria-haspopup="dialog"
aria-label="Share link: History Management">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h4><p><strong>Search History</strong>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl"># Press Ctrl+R, type 'CREATE'
</span></span><span class="line"><span class="cl"># Find previous CREATE statements quickly
</span></span></code></pre></div><p><strong>Save Important Queries</strong>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Copy history to file</span>
</span></span><span class="line"><span class="cl">cat ~/.local/share/geode/history <span class="p">|</span> grep CREATE > important_queries.txt
</span></span></code></pre></div>
<h4 id="productivity-tips" class="position-relative d-flex align-items-center group">
<span>Productivity Tips</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="productivity-tips"
aria-haspopup="dialog"
aria-label="Share link: Productivity Tips">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h4><p><strong>1. Use Aliases for Long Queries</strong>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Create shell alias</span>
</span></span><span class="line"><span class="cl"><span class="nb">alias</span> <span class="nv">gq</span><span class="o">=</span><span class="s1">'geode query --insecure'</span>
</span></span><span class="line"><span class="cl">gq <span class="s2">"MATCH (n:Person) RETURN count(n)"</span>
</span></span></code></pre></div><p><strong>2. Format Output for Scripts</strong>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">geode> \format json
</span></span><span class="line"><span class="cl">geode> # Pipe to jq for processing
</span></span></code></pre></div><p><strong>3. Transaction Batching</strong>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-gql" data-lang="gql"><span class="line"><span class="cl"><span class="py">geode</span><span class="err">></span><span class="w"> </span><span class="err">\</span><span class="py">begin</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">geode</span><span class="err">></span><span class="w"> </span><span class="c"># Multiple CREATE/UPDATE statements</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">geode</span><span class="err">></span><span class="w"> </span><span class="err">\</span><span class="py">commit</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="c"># Atomic batch operation</span><span class="w">
</span></span></span></code></pre></div>
<h3 id="references" class="position-relative d-flex align-items-center group">
<span>References</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="references"
aria-haspopup="dialog"
aria-label="Share link: References">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h3>
<h4 id="documentation" class="position-relative d-flex align-items-center group">
<span>Documentation</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="documentation"
aria-haspopup="dialog"
aria-label="Share link: Documentation">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h4><ul>
<li><strong>REPL Usage</strong>: <code>docs/REPL_USAGE.md</code></li>
<li><strong>Advanced Features</strong>: <code>docs/development/REPL_ADVANCED_FEATURES.md</code></li>
<li><strong>Client Libraries</strong>: <code>docs/client-libraries/</code></li>
</ul>
<h4 id="configuration-1" class="position-relative d-flex align-items-center group">
<span>Configuration</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="configuration-1"
aria-haspopup="dialog"
aria-label="Share link: Configuration">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h4><ul>
<li><strong>History File</strong>: Platform-specific</li>
<li><strong>Settings</strong>: Stored in session (not persisted)</li>
<li><strong>Customization</strong>: Environment variables</li>
</ul>
<h3 id="next-steps" class="position-relative d-flex align-items-center group">
<span>Next Steps</span>
<button type="button"
class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1"
data-share-target="next-steps"
aria-haspopup="dialog"
aria-label="Share link: Next Steps">
<i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i>
<span class="visually-hidden">Share link</span>
</button>
</h3><p><strong>For Beginners</strong>:</p>
<ul>
<li><a
href="/docs/gql/guide/"
>GQL Guide</a>
- Query language fundamentals</li>
<li><a
href="/docs/model/data-model-and-types/"
>Data Model</a>
- Graph concepts</li>
<li><a
href="/guides/installation/"
>Getting Started</a>
- Installation guide</li>
</ul>
<p><strong>For Developers</strong>:</p>
<ul>
<li><a
href="/docs/development/repl-advanced/"
>Advanced REPL Features</a>
- Scripting, automation</li>
<li><a
href="/docs/guides/testing-strategies/"
>Testing Strategies</a>
- Query testing</li>
<li><a
href="/docs/client-libraries/go-client/"
>Client Libraries</a>
- Programmatic access</li>
</ul>
<p><strong>For Administrators</strong>:</p>
<ul>
<li><a
href="/docs/configuration/server-configuration/"
>Server Configuration</a>
- REPL server settings</li>
<li><a
href="/docs/ops/observability/"
>Monitoring</a>
- Query monitoring</li>
<li><a
href="/docs/security/overview/"
>Security</a>
- Authentication setup</li>
</ul>
<hr>
<p><strong>Document Version</strong>: 1.0
<strong>Last Updated</strong>: January 24, 2026
<strong>Status</strong>: Production Ready
<strong>Platform Support</strong>: Linux, macOS, Windows
<strong>Shell Modes</strong>: Emacs (default), Vi</p>
REPL Interactive Shell Basics
Getting started with Geode's REPL interactive shell including meta commands, query execution, history navigation, and productivity features.