ההגדרה [keys] vim שולטת באופן הניווט ב-scrollback, ועם all באופן העריכה של ההנחיה:
Off (ברירת מחדל): מקשי החצים לניווט, Shift+Arrow לניווט בין תורות, ו-Space למיקוד ההנחיה. כל תו אחר שאתה מקליד ב-scrollback ממקד את ההנחיה ומגיע אליה כאילו הקלדת אותו שם, למעט ?, שפותח את לוח הפקודות. בזמן שכרטיס ממתין לתשובה, Space חוזר אליו, ? עדיין פותח את לוח הפקודות, ותווים אחרים שהוקלדו מתעלמים.
Nav (בהפעלה ידנית): j/k לניווט, H/L לניווט בתור הנבחר, J/K לקפיצות לתור שבראש אזור התצוגה (כמו חצי ציר הזמן), h/l לקיפול, e/E להרחבה/כיווץ, ו-i/Tab/Space למיקוד ההנחיה.
All (ניסיוני, רק ב-config.toml): Nav, ועוד עריכת vim בהנחיית הסוכן. כל טיוטה מתחילה במצב Insert, שבו המקשים מקלידים כרגיל, ו-Esc נכנס למצב Normal, שבו המקשים הם פקודות vim: hjkl, wbe (וגם WBE), 0^$, ggG, ספירות, dcy עם תנועה (dd, cw, y$), xXDCsSY, pP, u, ו-iaIAoO בחזרה ל-Insert. שורת המידע של ההנחיה מציגה NORMAL או INSERT. הסמן הוא בלוק במצב Normal ופס במצב Insert. /settings ו-/vim-mode מציעים רק off ו-nav, כך שמעבר שם מכבה את vim של ההנחיה עד שתגדיר all שוב.
כדי להפעיל ניווט vim, הגדר vim = "nav" תחת [keys] ב-~/.grok/config.toml, או החלף אותו בזמן ריצה עם /vim-mode. ראה הגדרות לפרטים.
הטבלאות למטה מתעדות עיגונים לשתי ההגדרות. העמודה "מקש" מציגה את העיגון כשמקשי vim פעילים, והעמודה "מקש חלופי" מציגה את המקבילה כשמקשי vim כבויים (מקשי חצים וכו').
נדרש מצב vim: עיגונים של אות בודדת ושל Shift+letter בהקשר Scrollback (j/k, h/l, g/G, L/H, y/Y, o/O, r, x, e/E, והחלופה i של מצב insert) דורשים [keys] vim = "nav" ב-~/.grok/config.toml (או /vim-mode להחלפה). מקשי החצים, Tab, Esc, Space, PageUp/Down, וכל קיצור Ctrl+letter עובדים בשני המצבים.
גלילה עמוד אחד למעלה (הבחירה עוברת לראש אזור התצוגה)
PageDown
גלילה עמוד אחד למטה (הבחירה עוברת לתחתית אזור התצוגה)
Ctrl+U
גלילה חצי עמוד למעלה
Ctrl+D (Shift+D ב-VSCode)
גלילה חצי עמוד למטה
PageUp ו-PageDown גם גוללים את השיחה כשההנחיה הרגילה ממוקדת, בלי להזיז את המיקוד ובלי לשנות את הטיוטה. היסטוריית הנחיה פעילה, חיפוש קבצים ב-@, תפריט לוכסן, או תפריט השלמה נפתח שומרים את המקשים לניווט שלהם.
הגדרת respect_manual_folds = true תחת [scrollback.scroll] ב-pager.toml (בהפעלה ידנית, כבוי כברירת מחדל. ראה הגדרות) הופכת בלוק שקופל ביד לנעוץ: עדכוני הזרמה ואירועי סיום (לדוגמה סיום של בלוק חשיבה) משאירים אותו כמו שהוא במקום לאפס אותו, והרחבת בלוק בזמן שגלילה אוטומטית עוקבת אחרי הזנב מפסיקה את המעקב כדי שאפשר יהיה לקרוא. חידוש המעקב נעשה עם ⇧G, j ברשומה האחרונה, גלילה מעבר לתחתית, או שליחת הנחיה חדשה. ⇧E מנקה את כל הנעיצות, ו-Ctrl+E מנקה נעיצות בבלוקי חשיבה.
העתקת מטא-נתונים של הבלוק (לדוגמה, פקודת המעטפת) ללוח. בצופה במסך מלא של תשובה או מחשבה, בלוק הקוד שמתחת לסמן
Enter
פתיחת תוכן הבלוק בצופה במסך מלא
Ctrl+F
פתיחת תוכן הבלוק בצופה במסך מלא (עיגון חלופי)
Ctrl+L
ציטוט הבלוק הנבחר לתוך ההנחיה כבלוק ציטוט > ומיקוד ההנחיה. כשטקסט עדיין מסומן אחרי בחירת עכבר, מצטט רק את הטקסט הזה. כשאין מה לצטט, או בזמן שכרטיס או אישור תוכנית ממתינים לך, הוא מצייר מחדש את המסך. הכותרת התחתונה מציגה אותו כ-add to chat: לפני רמזי הבחירה כשטקסט מסומן, ואחרת אחרי רמזי הקיפול והפתיחה של בלוק נבחר
ההנחיה ממוקדת, מוצגת הצעת הנחיה, מקשי vim כבויים (או מצב מינימלי)
קבלת ההצעה
→
Ctrl+→
ההנחיה ממוקדת, מוצגת הצעת הנחיה
קבלת כל ההצעה
Tab
ההנחיה ממוקדת, אחרת
מיקוד ה-scrollback (מקשי vim פעילים או כבויים)
Tab
Shift+Tab (אחורה)
כרטיס חוסם ממוקד (שאלה, בקשת הרשאה, לוח ביטול תור)
מעבר בין שורות הכרטיס, עם גלישה בקצוות. המיקוד נשאר בכרטיס
Tab
Space (וגם i במצב vim)
scrollback ממוקד עם כרטיס חונה
החזרת המקלדת לכרטיס (רמז המיקוד בסרגל מציין אותו)
Enter
ההנחיה ממוקדת
שליחת ההנחיה הנוכחית (בכל אחד ממצבי vim)
Esc אינו מקש מיקוד. הוא עוקב אחרי סמנטיקת הניקוי / החזרה למטה, והוא אף פעם לא מבטל תור רץ (Ctrl+C כן). תחת off ו-nav, שום דבר ב-Esc לא תלוי ב-[keys] vim. all מוסיף את מצבי ה-vim של ההנחיה (ראה Escape). שכבות על, חלונות, תפריטים נפתחים של לוכסן/קובץ, הצעת הנחיה גלויה, קול, חיפוש ובחירה עדיין לוקחים את Esc קודם.
ארבעה משטחים חוסמים את הסוכן עד לתשובתך ומשתלטים על המקלדת כל עוד הם פתוחים: כרטיס השאלה (ask_user_question), כרטיס ה-elicitation של MCP (x.ai/mcp/elicit), בקשת ההרשאה, ולוח ביטול התור. כשיותר מאחד פתוח, בקשת ההרשאה מקבלת את המקלדת ראשונה, אחר כך לוח ביטול התור, אחר כך השאלה, ואחר כך elicitation, וסרגל הקיצורים תמיד מציג את המקשים של זה שמקבל אותם.
הם חולקים חוזה אחד:
Tab / Shift+Tab עוברים בין שורות הכרטיס וגולשים בשני הקצוות. הם אף פעם לא מוציאים את המיקוד מהכרטיס, כך שהסמן תמיד נמצא במקום שאפשר לראות.
Esc יוצא אחורה, שלב אחד בכל פעם: הוא מנקה קודם כל מה שהכרטיס החזיק כממתין, ורק כשלא נשאר מה לנקות הוא עוזב. לאן הוא עוזב הוא הדבר היחיד ששונה בין כרטיס לכרטיס: כרטיס השאלה ובקשת ההרשאה מחנים את המקלדת ב-scrollback כדי שאפשר יהיה לגלול למעלה ולקרוא את ההקשר שמאחוריהם (הכרטיס נשאר על המסך), בעוד ש-"keep running" של לוח ביטול התור סוגר את הלוח ומשאיר את התור (ואת כל תת-הסוכנים) רצים. Enter או 1-4 עדיין בוחרים בחירת ביטול ותת-סוכן.
כשהמקלדת חונה, סרגל הקיצורים מציג את המקשים של ה-scrollback עצמו, ורמז המיקוד שלו מציין את הכרטיס ולא את ההנחיה: Tab/Space: question. הרמז הזה נעוץ, כך שסרגל צר אף פעם לא יכול לקצץ את דרך החזרה היחידה.
בקשת הרשאה גם ממתינה בזמן שלחלונית המשימות או ל-dock יש את המקלדת, כך שאפשר לעצור ריצה ברקע שהסוכנים שלה ממשיכים לשאול עם x על השורה שלה. היא ממתינה אם היא בחזית כשהחלונית מקבלת את המקלדת, או אם היא נפתחת בזמן שלחלונית עצמה יש את המקשים. שאלה, טופס MCP, לוח ביטול התור או אישור התוכנית שמחזיקים שם את המקלדת שומרים אותה, כמו בכל מקום אחר, ובקשת הרשאה שנפתחת לפני אחד מהם לוקחת את המקלדת.
אחרי שהחלונית החנתה בקשת הרשאה, הכרטיסים בחזית ממשיכים להמתין עד שהמקלדת עוזבת את החלונית: הכרטיס שמאחורי הבקשה אחרי שהיא נסגרת, ושאלה, טופס MCP, אישור תוכנית או בקשת הרשאה שנפתחים אחר כך. אישור תוכנית שממתין שם לא פותח את תצוגת התוכנית מעצמו, גם אחרי שהמקלדת עוזבת את החלונית. באישור, Tab עובר להנחיה שלו, שם a מקליד, ו-Tab שני פותח את התוכנית. עד שראית את התוכנית, a על האישור פותח אותה במקום לאשר, ו-Enter על הערות שכתבת פותח אותה במקום לשלוח אותן. לחיצה על שורת הסטטוס שלו גם פותחת אותו. החריג היחיד הוא לוח ביטול התור שאתה פותח עם Ctrl+C: כשהוא נפתח בחזית יש לו את המקלדת עד שהוא נסגר, ואז הכרטיסים מאחוריו ממתינים שוב. אישור תוכנית שמגיע בזמן שהלוח פתוח ממתין מאחוריו. בקשת הרשאה שנפתחת לפני הלוח הפתוח לוקחת את המקלדת ושומרת אותה עד שתענה לה (ולכל בקשות הרשאה שממתינות בתור מאחוריה), גם אם הלוח נסגר. אחר כך הכרטיסים מאחור ממתינים שוב. בזמן שבקשת הרשאה או אישור תוכנית עדיין ממתינים, הלוח נפתח אבל גם ממתין והחלונית שומרת את המקלדת. בקשת הרשאה ממתינה נשארת מצוירת לפניו. ענה לה קודם כדי להגיע ללוח, או לחץ Ctrl+C שוב כדי לעצור את התור ואת תת-הסוכנים שלו.
מה-scrollback, Ctrl+G מעביר את המקלדת לחלונית המשימות. כשה-dock מופעל, Ctrl+G רק מציג או מסתיר את ה-dock, אז לחץ על ה-dock. הסרגל של החלונית נועץ את דרך החזרה: Tab חוזר לכרטיס, או לאישור תוכנית ממתין (plan approval). Esc עובר ל-scrollback: ה-dock נשאר על המסך, אבל חלונית המשימות נסגרת, כך שהשורות שלה נעלמות עד ש-Ctrl+G פותח אותה שוב.
בתוך שכבת הסשן של לוח הבקרה יש עוד שלב אחד: אחרי שהמקלדת חונה, ה-Esc הבא חוזר ללוח הבקרה, ומשאיר את הכרטיס ממתין, והסרגל מציג Esc/Ctrl+\ עבורו. (Ctrl+\ עדיין יוצא מכל מצב.)
בחירה והתקדמות, שליחה בשאלה האחרונה, או עריכת שורת הטקסט החופשי. בחירה מרובה עם בחירות מתקדמת או נשלחת לפי מה שהוחלף, בלי להוסיף את התשובה הממוקדת
Esc
ביטול בחירת התשובה של השאלה הזו. כשאין בחירה, חניית המיקוד ב-scrollback (Tab מחזיר). בתוך שכבת הסשן של לוח הבקרה, ה-Esc הבא חוזר ללוח הבקרה. סרגל הקיצורים מציין איזה שלב פעיל
y
העתקת התשובה הממוקדת
Shift+X
סגירת השאלה (הסוכן ממשיך בלי תשובה)
Ctrl+F
הצגת הכרטיס במסך מלא
טופס /feedback הוא החריג היחיד לטבלה הזו: לתיבת הדוח שלו אין תשובות לעבור ביניהן, ולכן יש לו מקשים משלו (למטה).
בזמן הקלדת תשובת טקסט חופשי, Enter שולח ו-Esc חוזר לשורות התשובות. כל מקש אחר הולך לשדה הטקסט.
סגירת הטופס (שורת תווית ממוקדת או אישור פתוח נסגרים קודם)
לשונית Write:
מקש
פעולה
Enter
שליחת הדוח
Shift+Tab
פתיחת לשונית Drafts. השתמש בזה במקום שבו Ctrl+Tab מגיע כ-Tab רגיל, כמו ב-tmux. שאלת ה-trace מתעלמת ממנו. שם השתמש ב-Ctrl+Tab
Tab
מיקוד שורות התוויות מעל תיבת הדוח (שורת Title של טיוטה שנטענה באה ראשונה. ↑ / ↓ עוברים בין השורות). Tab נוסף חוזר לתיבת הדוח
← / →
בחירת ערך בשורת type/task/failure ממוקדת
שורת Title של טיוטה שנטענה עורכת את הכותרת שאיתה הדוח נשלח: הקלד או הדבק שם, ו-← / →, Home / End, Backspace ו-Delete עובדים כמו בשדה טקסט. Enter, Tab, Shift+Tab או Esc חוזרים לתיבת הדוח. כותרת ריקה נקראת (first line of the report), ושולחת את השורה הראשונה שאינה ריקה בדוח, חתוכה ל-80 תווים, ככותרת.
לשונית Drafts:
מקש
פעולה
↑ / ↓, j / k
בחירת טיוטה שמורה
g / G, Home / End
בחירת הטיוטה הראשונה או האחרונה
Enter, או לחיצה על הטיוטה
טעינת הטיוטה הנבחרת ל-Write
Tab / Shift+Tab
חזרה ללשונית Write, מהרשימה או משדה החיפוש
d
מחיקת הטיוטה הנבחרת (אישור עם y)
/
חיפוש בטיוטות
כשאפשר להציע העלאת trace, Enter על הדוח מציג קודם שאלת העלאה (↑/↓ בוחרים, Enter שולח עם הבחירה שלך, Esc מדלג על ההעלאה ועדיין שולח את הדוח).
כניסה למצב Normal. שום דבר אחר: בלי ניקוי, בלי rewind או רמז באמצע תור.
[keys] vim = "all", מצב Normal, הנחיה לא ריקה
Esc
פעולה ריקה, במנוחה או באמצע תור. ניקוי עם Ctrl+C.
[keys] vim = "all", מצב Normal, הנחיה ריקה
Esc
השורות למטה חלות.
תור רץ (כל מצב וכל חלונית)
Esc
לא מבטל. מציג הודעת toast "Press Ctrl+c to cancel the turn". הטיוטה לא משתנה. השתמשו ב-Ctrl+C (או בפלטה / נקודות כניסה אחרות לביטול).
תור בתהליך ביטול
Esc
נבלע כפעולה ריקה. Ctrl+C במצב זה מעלה לכיוון יציאה.
מנוחה + הנחיה לא ריקה (טקסט או chips של תמונה), ההנחיה בפוקוס
2× Esc בתוך 800ms
ניקוי ההנחיה. הטיוטה שנוקתה נשמרת ב-stash (Ctrl+S, Alt+S, או Ctrl+Z שנלחץ מיד אחרי הניקוי משחזר אותה, כולל תמונות). הלחיצה הראשונה מציגה "press again to clear".
מנוחה + הנחיה ריקה + הודעות שיחה, פוקוס על ההנחיה או על ה-scrollback
2× Esc בתוך 800ms
פתיחת בוחר ה-rewind (כמו /rewind). הלחיצה הראשונה שקטה (בלי toast).
מנוחה + ריק + אין הודעות, או scrollback בפוקוס עם טיוטה / composer במצב (!#) / שכבת needs-input ממתינה / חיפוש היסטוריה פתוח
Esc
נבלע כפעולה ריקה (לא ממקד את ה-scrollback). ניקוי הוא רק בחלונית ההנחיה. rewind דורש composer ריק במצב Normal, בלי שכבה ממתינה, ובלי חיפוש היסטוריה פתוח. קריאת ה-scrollback אף פעם לא משנה את הטיוטה, את מצב ה-composer, שאלה שממתינה לתשובה, או חיפוש שמתבצע.
השהיית Esc באמצע תור: בערך שנייה אחרי Esc באמצע תור, זרוע ה-rewind של המנוחה נשארת מדוכאת. לחיצות Esc רצופות על תור שאז מסתיים לא יכולות לפתוח בשקט את בוחר ה-rewind. רק זרוע ה-rewind מוחזקת. כל שאר התנהגות Esc לא מושפעת.
Steal-Esc (רץ לפני רמז אמצע התור ולפני ניקוי / rewind): שכבות, מודאלים, תפריטים נפתחים של slash/קובץ/השלמה, הצעת הנחיה גלויה (Esc דוחה אותה ושומר את מה שהקלדתם. בשכבת הסשן של לוח המחוונים, Esc על הנחיה ריקה חוזר ללוח המחוונים במקום), חיפוש היסטוריה, חיפוש scrollback, בחירת טקסט, הדגשת קישור, קול, ויציאה ממצב Bash / Remember כשההנחיה ריקה (Esc יוצא ממצב ! / # וחוזר להנחיה הרגילה, גם בזמן שתור רץ). /feedback לבדו פותח את טופס המשוב. Esc סוגר אותו.
Prompt vim ([keys] vim = "all"): vim לוקח את Esc אחרי בעלי ה-steal-Esc שלמעלה ולפני ניקוי / rewind, כך ש-rewind ממצב Insert דורש שלוש לחיצות. החזרה ללוח המחוונים של שכבת הסשן היא החריג: היא באה אחרי vim ומחכה למצב Normal בלי count, בלי g או אופרטור ממתין, כך שממצב Insert זה שתי לחיצות, או שלוש כשהצעת הנחיה מוצגת, כי במצב Insert ה-Esc של ההצעה בא קודם ודוחה אותה. ניקוי או שליחה של ההנחיה, מיקוד שלה מחלונית אחרת, והגעת כרטיס מתחילים את הטיוטה הבאה במצב Insert. קלט הטקסט של כרטיס עצמו אף פעם לא משתמש ב-vim. מקשי שורה חדשה, הדבקה או שחרור גרירה, Ctrl+Y, הכתבה, תשובה מצוטטת, חיפוש /history והשלמת Tab במצב ! נכנסים למצב Insert כמו a, כך שהטקסט שלהם ממשיך אחרי הסמן. אחרי שמפסיקים הכתבה, ה-Esc הבא נכנס למצב Normal גם בזמן שהמילים האחרונות עדיין מגיעות: התצוגה המקדימה שלהן זזה לסמן של Normal, ואז הן נוחתות כמו a, מה שמחזיר את ההנחיה למצב Insert. כשכל ההקלטה מתומללת אחרי שעוצרים, אותו Esc משליך את ההקלטה במקום, אם כי מיד אחרי הקלטה קצרה מאוד הוא עדיין יכול להיכנס למצב Normal. חלק מהמקשים שומרים על המשמעות שלהם בהנחיה במצב Normal: Enter מוסיף שורה חדשה במצב multiline, Tab משלים במצב !, והצעת ההנחיה ושליפת היסטוריה עם ↑ עדיין עובדות על הנחיה ריקה. עורך ההנחיה שבתור לא משתמש ב-vim: בזמן עריכת שורה שבתור, המקשים מקלידים כמו במצב Insert. \ בסוף ואז Enter ממשיך את השורה רק במצב Insert. במצב Normal, Enter שולח. ב-macOS וב-Linux בלי פרוטוקול המקלדת של kitty, מסוף שולח Esc ואת המקש שהוקש מיד אחריו כאקורד Alt אחד, ש-vim קורא כשני המקשים: Alt+S לא עושה שם stash (Ctrl+S עדיין עושה), Alt+B / Alt+F / Alt+D במצב Insert יוצאים מ-Insert, ו-Esc ואז Enter מהיר מוסיף שורה חדשה במקום לשלוח. Alt+Z עדיין עושה redo.
Ctrl+C מול Esc: עם טיוטה לא ריקה בזמן שתור רץ, Ctrl+C מנקה את הטיוטה ומשאיר את התור. Ctrl+C שני על הנחיה ריקה מבטל. Esc אף פעם לא מבטל: באמצע תור הוא רק מפנה אל Ctrl+C ומשאיר את הטיוטה. במנוחה עם תוכן לא ריק, Ctrl+C מנקה בלחיצה אחת. Esc דורש שתי לחיצות בתוך 800ms. שני הניקויים נבדלים במה שהם משאירים: Esc Esc שומר את הטיוטה ב-stash, כך ש-Ctrl+S (או Ctrl+Z שנלחץ מיד אחרי) מחזיר אותה, בעוד Ctrl+C משליך אותה (Ctrl+Z עדיין מבטל את הניקוי הזה, טקסט בלבד).
ביטול התור הנוכחי (או ניקוי טיוטה לא ריקה קודם. ראו את טבלת Escape)
Ctrl+O
מסך הסוכן
החלפת מצב always-approve (YOLO)
Ctrl+R
מסך הסוכן
פתיחת בוחר הסשן (חידוש סשן קודם, כמו /resume)
Ctrl+; (חלופה: Ctrl+')
מסך הסוכן
החלפת מצב של חלונית תור ההנחיות (כשהיא לא ריקה). macOS מקומי, משפחת VS Code בלבד: ראשי Ctrl+4 (; / ' עדיין חלופות). SSH ושאינם Mac שומרים Ctrl+; / Ctrl+'.
Shift+Tab
ההנחיה בפוקוס
מחזור מצבים (Normal → Plan → Auto-review (כשמופעל) → Always-approve)
Ctrl+B
מסך הסוכן
שליחת פקודת החזית הרצה לרקע
Ctrl+T
מסך הסוכן
החלפת מצב של חלונית ה-todos
Ctrl+G
מסך הסוכן (TUI מלא)
החלפת מצב של חלונית המשימות
Ctrl+G
composer רגיל (מצב מינימלי)
עריכת הטיוטה הנוכחית בעורך חיצוני בלי לשלוח אותה. אם המסוף שומר את האקורד הזה, בחרו Edit Prompt in External Editor מפלטת הפקודות.
/plugins (או /hooks)
ההנחיה בפוקוס
פתיחת מודאל ההרחבות (אין לו צירוף מקשים)
↑
ההנחיה בפוקוס (הנחיה ריקה, מצב קלט רגיל)
כשיש הנחיות בתור, העברת הפוקוס לחלונית התור עם השורה האחרונה מודגשת (e עורך אותה, Enter שולח אותה עכשיו). אחרת פתיחת לוח ההיסטוריה עם ההנחיה האחרונה ממולאת. ↑/↓ עוברים בין רשומות (כל אחת נוחתת בקלט), ↓ על החדשה ביותר סוגר את הלוח, והקלדה עורכת את ההנחיה שנשלפה במקום. פקודות shell של ! שנשלפו נכנסות שוב למצב shell. ↓ אף פעם לא פותח היסטוריה.
Ctrl+S (חלופה: Alt+S)
ההנחיה בפוקוס
stash / שליפה של הטיוטה, בסגנון git stash. עם טקסט או תמונות ב-composer: שמירה ב-stash והתחלה מחדש. על composer ריק: שחזור ה-stash החדש ביותר (כולל תמונות ומצב shell של !). אחרי השחזור, הסמן בסוף הטיוטה ששוחזרה. Ctrl+Z שנלחץ מיד אחרי ה-stash משחזר אותו גם (כל מקש אחר שמקלידים להנחיה מנטרל את זה). טיוטה שנשמרה באקורד גם משוחזרת אוטומטית אחרי ששולחים את ההנחיה הבאה (טיוטה שנוקתה ב-Esc כפול נשארת ב-stash, כי המחווה הזו היא השלכה). טיוטה אחת בכל פעם: stash חדש מחליף את הישן.
!
ההנחיה בפוקוס
כניסה למצב shell (הקלידו ! על הנחיה ריקה)
Ctrl+. (חלופה: Ctrl+X)
מסך הסוכן
פתיחת עזרת קיצורי המקלדת
F2 (חלופה: Ctrl+, / Cmd+,)
מסך הסוכן
פתיחת מודאל ההגדרות
הערה: בזמן שתצוגת מסך מלא של סוכן משנה פתוחה, ה-composer מוסתר, אלא אם אפשר לשלוח הודעה לסוכן המשנה הזה. אז ה-composer שולח לסוכן המשנה במקשי ה-composer של השורש: Enter מכניס לתור או מנווט כמו ש-follow_up_behavior אומר, אקורד השליחה עכשיו מנווט בלי לבטל את התור שלו, ו-Ctrl+M מחליף מצב מרובה שורות. Ctrl+L (הבלוק שנבחר של הילד או טקסט מודגש) ו-Enter של מציג הבלוק (השורה שלו) מצטטים לתוך ה-composer הזה ומשאירים את התצוגה פתוחה. לסוכן משנה שאי אפשר לשלוח לו הודעה, הם מצטטים להנחיה שלכם וסוגרים את התצוגה. אקורדים של השורש בלבד (Ctrl+P, Ctrl+M מהתמליל, Ctrl+R, Ctrl+O, Ctrl+B, הגדרות, Shift+Tab) לא עושים כלום, חוץ מזה שב-Apple Terminal Ctrl+O הוא אקורד השליחה עכשיו, כך שב-composer הוא מנווט. Ctrl+C מבטל את התור של הילד. q / Esc סוגר את התצוגה. Ctrl+Q עדיין יוצא (Ctrl+D במשפחת VS Code). ראו צפייה בסוכני משנה ב-TUI.
הערה:Ctrl+M תלוי הקשר. כשההנחיה בפוקוס, הוא מחליף מצב קלט מרובה שורות. אחרת, הוא פותח את בוחר המודל.
הערה: בזמן שטיוטה ב-stash, הגבול העליון של ההנחיה מציג Stashed (ליד כותרת ה-/rename, אם הגדרתם אחת). מצב מינימלי לא מצייר גבול, ולכן הוא מדפיס שורה ב-scrollback בכל stash או שחזור. ה-stash חי בזיכרון בלבד: הוא נעלם ביציאה, והוא לא עובר לסשן מחודש. stash חדש מחליף את הישן. הטיוטה שהוחלפה מושלכת.
הערה: עריכה חיצונית עובדת בכל מצב רינדור: מצב מינימלי קושר את Ctrl+G, וה-TUI המלא משתמש ב-/edit-prompt או בפלטת הפקודות. Grok פותר את $VISUAL, אחר כך את $EDITOR, אחר כך את vi. ערכים יכולים לכלול ארגומנטים במרכאות. שמירה מחליפה רק את הטיוטה (שורת השורה החדשה הסופית שעורך מוסיף בשמירה מוסרת). קובץ ריק מנקה אותה. טיוטות עם chips של הדבקה/קובץ/תמונה חייבות להיערך ב-composer כדי שהקבצים המצורפים לא ישוטחו.
הערה:Ctrl+' הוא חלופה ב-Windows ל-Ctrl+;. חלק מקונסולות Windows משמיטות את משנה Ctrl על מקשי פיסוק.
הערה: במסופים משולבים של VS Code / Cursor / Windsurf / Zed, VTE, Apple Terminal, Windows Terminal, JetBrains, tmux עם extended-keys off, screen, והגדרות דומות בלי KKP, Grok מפרסם את Ctrl+X כמקש הראשי של דף קיצורי המקלדת. המסופים האלה מקבלים Ctrl+X גם בתוך tmux, כי tmux מעביר הלאה רק את מה שהמסוף שולח. ב-tmux בלי פרוטוקול המקלדת של Kitty, Ctrl+. צריך גם tmux 3.3+, extended-keys on, לקוח שמציין extkeys, וב-3.5+ את extended-keys-format csi-u. אחרת Grok מפרסם Ctrl+X. Ctrl+X תמיד עובד כתו בקרה קלאסי גם כש-Ctrl+. לא עובד. הריצו /doctor אם מקשים עם משנה מתנהגים לא נכון ב-tmux.
קבצים שאינם תמונה מכניסים את הנתיב המוחלט שלהם כטקסט במקום chip.
כשל-Grok יש רישום של מה שהנחיה שלחה, כל [Image #N] בשורת התמליל שלה מראה אם התמונה יצאה איתה: מודגש אם כן, עם קו חוצה אם רק טקסט ה-placeholder יצא. placeholder בלי רישום שליחה, למשל בסשן מחודש, שומר על המראה הרגיל שלו.
Alt+V ב-Windows ייחודי ל-grok. Ctrl+V ברירת המחדל של Windows Terminal מדביק רק טקסט רגיל ומשמיט בשקט לוחות של תמונה. Alt+V עוקף את המיירט. כדי להשתמש ב-Ctrl+V גם לתמונות, הוסיפו { "command": null, "keys": "ctrl+v" } אל actions ב-settings.json של Windows Terminal.
Ctrl+V קורא את CLIPBOARD, בחירת ההעתקה/הגזירה המפורשת. הוא אף פעם לא נופל חזרה ל-PRIMARY. כדי לשים שם טקסט עם xclip, השתמשו ב-printf %s "text" | xclip -selection clipboard.
לחיצת אמצע בלי משנה ב-Grok קוראת את PRIMARY, בחירת העכבר הנוכחית, רק כש-DISPLAY לא ריק. X11 טהור יכול להשתמש בנפילה לקורא המקורי שלו. XWayland דורש xclip או xsel על PATH כדי ש-Grok יקרא את בחירת X11 ולא את PRIMARY של Wayland. הלחיצה מטופלת פעם אחת. השחרור לא מדביק שוב.
Shift+Insert הוא הדרך המקורית של המסוף להדביק טקסט שנבחר. מסופים רבים משתמשים גם ב-Shift+middle click כדי לעקוף דיווח עכבר של היישום.
מעל SSH, תהליך Grok המרוחק בדרך כלל לא יכול לגשת לבחירת X11 המקומית של המסוף. השתמשו ב-Shift+Insert או ב-Shift+middle click המקוריים למסוף, כדי שהמסוף המקומי ישלח את הטקסט שנבחר דרך ה-PTY.
Enter רגיל (עם טקסט ב-composer) מכניס לתור המשך להמשך. כברירת מחדל ([ui].follow_up_behavior = "queue") ההמשכים האלה רצים אחרי שהתור הנוכחי נגמר, והם בכוונה ממתינים בזמן שהסוכן חסום בהמתנה למשימות רקע או לסוכן משנה (רמז מסביר את ההמתנה ואיך לשלוח אחד עכשיו). עם "steer", אותו Enter עדיין מציג את השורה בתור, ואז ה-shell מזריק אותה באמצע התור בפער הבטוח הבא של כלי או מודל (ראו הגדרות).
Enter שוב על ה-composer שהתרוקן (Enter כפול) שולח עכשיו את המשך התור העליון.
אקורד שליחה עכשיו הוא ביטול ושליחה: הוא עוצר את התור הנוכחי (משימות רקע, סוכני משנה, ושאר התור ממשיכים לרוץ) ושולח את ההודעה שלכם כתור הבא, כך שהיא תמיד מופיעה בתחתית התמליל:
composer לא ריק → ביטול ושליחה של הטקסט הזה עכשיו. פקודת slash מובנית כמו /compact לא מבטלת את התור: היא רצה, או נכנסת לתור, בדיוק כמו ב-Enter. טקסט אחר שמתחיל ב-/ (נתיב, skill, פקודה לא מוכרת) עדיין נשלח עכשיו.
composer ריק + המשך בתור → שליחה עכשיו של המשך התור העליון (בלי צורך למקד את חלונית התור). בחלונית התור, אותו אקורד (או כפתור [Send now]) שולח את השורה הנבחרת.
מנוחה, או composer ריק בלי כלום בתור → פעולה ריקה למקש הזה.
בזמן שהסוכן חסום בהמתנה (לפלט משימה או לסוכן משנה), Enter רגיל עם טקסט גם נמסר מיד: ה-shell מבטל את התור החסום ומריץ את ההודעה שלכם אחר כך.
מסוף
ראשי
חלופות
פעולה
ברירת מחדל
Ctrl+Enter
Ctrl+I
שליחה עכשיו (מבטל את התור הנוכחי, מריץ את ההודעה שלכם אחר כך)
Apple Terminal
Ctrl+O
Ctrl+Enter, Ctrl+I
שליחה עכשיו
משפחת VS Code (VS Code, Cursor, Windsurf, Zed)
Ctrl+L
(אין)
שליחה עכשיו (Ctrl+I לא בשימוש: Tab / צ'אט המארח)
במשפחת VS Code, Ctrl+L לא שולח ציטוט ש-Ctrl+L הרגע הוסיף מהתמליל עד שעורכים אותו, כך שלחיצה או החזקה חוזרת במהלך תור לא יכולה לבטל את התור. בהנחיה במנוחה, או במהלך תור בלי מה לשלוח, Ctrl+L מצייר מחדש את המסך.
במצב /multiline, Shift+Enter (או Alt+Enter) שולח בעוד Enter רגיל מוסיף שורה חדשה, חוץ מ-composer ריק באמצע תור עם המשך בתור, שם Enter רגיל עדיין שולח עכשיו את השורה העליונה (כמו במצב הרגיל). (Ctrl+Enter הוא שליחה עכשיו באמצע תור כשהוא קשור במסופים שאינם ממשפחת VS Code. הוא לא שולח תור מנוחה חדש.)
שליחה עכשיו מפריעה בכוונה: היא נקראת כ"stop what you're doing and take this". כדי למסור לסוכן הערה בלי לעצור אותו, הכניסו לתור עם Enter רגיל. הסוכן קולט אותה בגבול התור הבא.
WezTerm: מקשי Enter עם משנה אלה צריכים enable_kitty_keyboard = true בהגדרות WezTerm. השלבים המלאים ופתרון עוקף של שורה אחת נמצאים במדריך תמיכת המסוף.
מסופים בלי מקשים עם משנה: ב-macOS וב-Linux, במסופי VTE (כמו GNOME Terminal), JetBrains, Windows Terminal תחת WSL, GNU screen, מסופים ש-Grok לא מזהה (בלי מרבב), ו-tmux שלא מעביר מקשים עם משנה, Ctrl+Enter מאבד את ה-Ctrl שלו (הוא מגיע כ-Enter או כ-Ctrl+J) ו-Ctrl+I מגיע כ-Tab. שם, בהנחיה הרגילה בלי שום דבר אחר בתור, הכותרת התחתונה מציעה שליחה עכשיו כ-Enter Enter: הראשון מכניס את ההודעה לתור והשני שולח אותה עכשיו. ב-tmux, הגדרות tmux מחזירות את Ctrl+Enter ממסוף ששולח אותו.
Windows (שאינו ממשפחת VS Code): חלק מהקונסולות משמיטות את משנה Ctrl על Ctrl+Enter (הוא יכול לקרוס ל-Enter חשוף או ל-Ctrl+J). השתמשו ב-Ctrl+I כחלופה: אקורדי Ctrl של מקשי אות יציבים בקונסולות Windows. במשפחת VS Code, השתמשו ב-Ctrl+L.
Ctrl+L במשפחת VS Code: Grok משתמש בו ל-interject בהנחיה. אם פרופיל המסוף עדיין ממפה Clear (או פקודה אחרת) ל-Ctrl+L, הצירוף של המארח יכול לגנוב את האקורד. קשרו מחדש או הסירו אותו כדי שה-PTY יקבל form feed (\x0c).
מצייר מחדש את המסך כששום דבר אחר במסך הזה לא משתמש בו, או שאין לו מה לעשות
לא
Ctrl+Q
Ctrl+D
יציאה מהיישום
כן (לחיצה כפולה בתוך 1000ms; 3 שניות עם הודעה כשיציאה תעצור ריצות workflow)
← על פרומפט ריק וממוקד (של סשן או של מסך הפתיחה) גם פותח את לוח הסוכנים. בתצוגת הפרטים של הלוח הוא חוזר לשם. טיוטה שומרת את ← כהזזת סמן, וה-scrollback שומר אותו כקיפול.
מסוף ממשפחת VS Code (VS Code, Cursor, Windsurf, מסופים משולבים של Zed): Ctrl+Q נתפס על ידי המארח, ולכן Grok הופך את Ctrl+D למקש היציאה היחיד (Ctrl+Q לא מקושר). חצי עמוד למטה מקושר מחדש ל-Shift+D חשוף. התערבות באמצע תור משתמשת ב-Ctrl+L (בלי חלופות) כי Ctrl+Enter / Ctrl+I לא מגיעים באופן אמין ל-PTY.
הערה: במצב מינימלי, Ctrl+L מצייר מחדש רק את החלק ש-Grok עדיין מצייר בתחתית המסך ומנקה את השורות שמתחתיו. ראו שורות נשארות ריקות אחרי ניקוי מסוף.
לחזרה למסך הפתיחה אין קישור מקש. השתמשו בפקודת הסלאש /home (כינוי /welcome) מתוך סשן. ראו פקודות סלאש.
פעולות שמסומנות ב"כן" בעמודת האישור דורשות לחיצה כפולה בתוך 1000ms. לחצו על המקש פעם אחת כדי לראות בקשת אישור, ואז לחצו שוב כדי לאשר. זה מונע אובדן סשן בטעות.
Ctrl+C על פרומפט ריק כששום דבר לא רץ מבקש את אותה לחיצה כפולה. עם ui.single_ctrl_c_quit = true הוא יוצא בלחיצה הראשונה, אלא אם יציאה תזרוק טיוטה או עבודה שלא הסתיימה.
כשיציאה תעצור ריצות workflow, הלחיצה הראשונה ליציאה מציגה הודעה כמו 1 workflow still running; quitting stops it. Press Ctrl+q to quit., וללחיצה השנייה יש אז 3 שניות. אילו ריצות נספרות תלוי איפה סשנים רצים:
מסלול Shell: ריצות שרצות עכשיו. ריצה מושהית נשארת ניתנת לחידוש אחרי שיוצאים.
מסלול Daemon: כל ריצה שלא הסתיימה, כולל ריצות מושהות וחסומות, כי יציאה עוצרת את ה-daemon (ההודעה אומרת not finished).
מצב Leader (--leader, או [cli] use_leader = true): אין הודעה, כי ה-leader המשותף ממשיך את הריצות אחרי שיוצאים.
יציאה בלי מקש ללחוץ עליו פעמיים, כמו Quit בפלטה, לחיצה על שורת Quit או Enter על Quit בתפריט מסך הפתיחה, ממתינה למקש היציאה. יציאת העדכון של מסך הפתיחה (Ctrl+U) וה-q של מסך ההתחברות ממתינים לאותו מקש שוב. /quit מוקלד עובד כמתואר תחת /quit. במצב מינימלי ההודעה היא שורה ב-scrollback. כששום דבר לא רץ, כל יציאה עובדת כמו קודם.
Ctrl+W, Ctrl+I ו-Ctrl+Shift+I פעילים רק במסך הפתיחה. Ctrl+R פותח את בורר הסשנים גם במסך הפתיחה וגם בתוך סשן סוכן (שם הוא נפתח כשכבת מודאל, כמו פקודת /resume). עם ui.mouse_reporting_toggle מופעל, Ctrl+R מחליף לכידת עכבר בזמן שחלונית ה-scrollback ממוקדת. הבורר עדיין על Ctrl+R מהפרומפט. Ctrl+S הוא ה-stash של הפרומפט בתוך סשן (הוא לא עושה כלום במסך הפתיחה, שאין בו טיוטה להניח בצד). Ctrl+Q הוא אותו קישור Quit גלובלי שתועד למעלה, לא מטפל ייחודי למסך הפתיחה.
לחצו Ctrl+P או ? כדי לפתוח את פלטת הפקודות: רשימה ניתנת לחיפוש של פעולות נפוצות, שכל אחת מציגה את קישור המקש או פקודת הסלאש שלה. היא כוללת פעולות סשן, לשוניות המודאל של ההרחבות (Hooks, Plugins, Marketplace, Skills, Workflows, MCP Servers), ועוד.
הקלידו כדי לסנן, ואז לחצו Enter כדי לבצע את הפעולה שנבחרה.
לחיצה על קישור subagent עם שם (כזה שמציג תווית במקום ה-id הגולמי) כדי לפתוח את התצוגה שלו. id גולמי של subagent או של משימת רקע נלחץ כמו הטקסט סביבו, כך שעדיין אפשר לבחור אותו. Cmd+click (macOS) או Ctrl+click פותח אותו
לחיצה כפולה על הודעה (הפרומפטים והתשובות שלכם, תגובות, תשובות /btw, הודעות) כדי לבחור ולהעתיק מילה, או לחיצה משולשת לפסקה. ההדגשה נשארת עד Esc, לחיצה או גלילה, כך שה-Esc הראשון מנקה אותה. על פרומפט, שאלה שנענתה, תשובת /btw או recap שמציג רק חלק מהטקסט שלו, לחיצה כפולה מרחיבה אותו במקום. בתשובת /btw מורחבת, לחיצה כפולה מתחת לכותרת שלה שמפספסת את הטקסט אף פעם לא מקפלת אותה, בכל מצב. כל לחיצה עדיין בוחרת אותה
לחיצה כפולה על שורת כלי, קבוצת פעילות או שורת thinking כדי להרחיב או לקפל אותה, יהיה מה שיהיה הערך של ui.keep_text_selection. במחשבה שהגוף שלה מוצג, מורחבת או עדיין רצה, לחיצה כפולה מתחת לכותרת שלה שמפספסת את הטקסט (תאים ריקים, ה-rail, פסי ציטוט, שורת …) אף פעם לא מקפלת או מרחיבה אותה. כל לחיצה עדיין בוחרת אותה
כש-ui.keep_text_selection מוגדר ל-hold, לחיצה כפולה אף פעם לא בוחרת מילה: על פרומפט, שאלה שנענתה, תשובת /btw או recap היא מקפלת או מרחיבה אותו, וההדגשה של גרירה נשארת עד Esc, לחיצה או גלילה. flash עושה אותו דבר, חוץ מזה שההדגשה מתנקה מעצמה רגע אחרי ההעתקה
כדי להשתמש בבחירה של המסוף עצמו במקום של Grok, החזיקו Shift (Option ב-iTerm2) וגררו
גלגלת כדי לגלול ב-scrollback
לחיצה על אזור הפרומפט כדי למקד אותו
ריחוף מעל הפרומפט כדי לראות הדגשה (ניתן להגדרה דרך pager.toml)
לחיצה אמצעית ב-Linux X11/XWayland כדי להדביק את בחירת PRIMARY
#כשה-scrollback ממוקד (מקשי vim כבויים, ברירת מחדל)
Navigation: Up/Down (prev/next entry) Shift+Left/Right (prev/next turn)
Scrolling: Ctrl+J/K (line) PgUp/PgDn (page) Ctrl+U/D (half page)
Focus prompt: Space, or type any character but ? (focuses the prompt and types it)
Navigation: j/k (up/down) H/L (prev/next turn) K/J (viewport-top turn) g/G (top/bottom)
Scrolling: Ctrl+J/K (line) Ctrl+U/D (half page; D=Shift+D in VSCode) PgUp/PgDn (page)
Folding: h/l (collapse/expand) e (toggle) E (all)
Content: y (copy) Y (copy cmd) Enter (fullscreen)
View: r (raw markdown) Ctrl+E (thinking)
Focus prompt: i, Tab, or Space
Send: Enter
Newline: Shift+Enter or Alt+Enter
Multiline: Ctrl+M (toggle)
Paste: Ctrl+V (text, files, screenshots on macOS/Linux)
Selected text: Middle click or Shift+Insert (Linux X11/XWayland PRIMARY)
Paste image: Alt+V (Windows only , for screenshots / "Copy Image")
Select all: Cmd+A (macOS, Ghostty and Herdr 2 , see note below)
Start / end: Cmd+↑/↓ or Ctrl+Home/End (whole input , see note below)
Select text: Shift+←/→ (char) · Alt+Shift+←/→ (word) ·
Cmd+Shift+←/→ (visual row) · Shift+Home/End (logical line) ·
Shift+↑/↓ (row) · Cmd+Shift+↑/↓ or Ctrl+Shift+Home/End
(to start / end of input)
Copy / Cut: Cmd+C / Cmd+X (with a selection; Kitty-protocol terminals)
Leave: Tab (back to scrollback)
Cancel (running): Ctrl+C (empty prompt; non-empty draft clears first)
Clear (idle): Esc Esc within 800ms (non-empty prompt)
Rewind (idle): Esc Esc within 800ms (empty prompt + messages)
כותרת התחתונה של ה-composer מציגה את אקורד השורה החדשה ליד Enter:send (או Enter:queue בזמן שתור רץ) ברגע שהטיוטה לא ריקה (כולל /btw ופקודות סלאש אחרות שדורשות ארגומנט). מעל SSH, ב-tmux שלא מעביר מקשים עם מודיפיירים (ישן מ-3.3 או extended-keys off), או, כשפרוטוקול המקלדת של Kitty לא פעיל, ב-tmux עם לקוח שלא מציין extkeys או ב-tmux 3.5+ בלי extended-keys-format csi-u, או במסופים שלא יכולים להבדיל בין Shift+Enter ל-Enter, הכותרת התחתונה מעדיפה Alt+Enter.
Cmd+Enter אינו אקורד שליחה או שורה חדשה שמפורסם. מסופים רבים מקשרים אותו למסך מלא, ולכן SUPER מוחרג ממתאם השורה החדשה של Shift/Alt ומקישור השליחה של Enter חשוף של הסוכן. כשמסוף שמדבר את פרוטוקול המקלדת של Kitty מוסר SUPER+Enter, ה-composer עדיין מכניס שורה חדשה: המקש מפספס שליחה ונוחת ב-textarea, שמתייחס לכל Enter כשבירת שורה. Apple Terminal הוא מסלול מקומי נפרד: חילוץ CoreGraphics מתייחס ל-Cmd מוחזק כ-Enter עם מודיפייר ומכניס שורה חדשה על מה שמגיע כ-Enter חשוף. מעל SSH המודיפייר Cmd/SUPER אף פעם לא מגיע (כולל iTerm2 + tmux), ולכן האקורד נראה כמו Enter חשוף ושולח. מרחוק, השתמשו ב-Alt+Enter, ב-\ סוגר ואז Enter, או ב-/ml.
כשבחירה פעילה, הקלדה / Enter / הדבקה מחליפים אותה, אקורדי מחיקה והריגת מילה מוחקים רק את הבחירה, חיצים מכווצים אותה לקצה התואם (הזזות מילה/שורה ממשיכות מהקצה הזה), ו-Esc או Tab מורידים את ההדגשה ועדיין מבצעים את הפעולה הרגילה שלהם. שימו לב ש-Shift+←/→ בוחר רק בזמן שהפרומפט ממוקד. כשה-scrollback ממוקד אותם אקורדים קופצים בין תורות (ראו ניווט למעלה).
Cmd+A מוגבל ל-Ghostty ול-Herdr 2. המטפל בתוך האפליקציה של Grok ל-Cmd+A מחובר רק כשהמסוף שזוהה הוא Ghostty או Herdr 2. מסופים אחרים או בולעים את Cmd+A בשכבת המסוף (Apple Terminal, iTerm2 כברירת מחדל) או מפעילים התנהגות "Select All" משלהם בתוך המסוף (Kitty, WezTerm). בכל מסוף אחר, הקישור לא עושה כלום והמקש עובר להתנהגות המקורית של המסוף.
Herdr 2 לא מקשר כלום ל-Cmd+A ומעביר אותו לתוכנית, ולכן זה עובד שם בלי הגדרה.
ב-Ghostty, הוסיפו את שורת ה-unbind האחת ל-~/.config/ghostty/config כדי שהקשה תגיע ל-TUI שרץ:
keybind = cmd+a=unbind
אחרי ש-Ghostty נטען מחדש (הוא עוקב אחרי קובץ ההגדרות), Cmd+A בפרומפט בוחר כל תו בחוצץ הפרומפט, כולל שבבי תמונה שהודבקו. שבבי תמונה תמיד בלי נתיב ([Image #N]). נתיב הקובץ (כשידוע) מופיע רק בשכבת התצוגה המקדימה של התמונה בריחוף או כשהסמן על השבב או מיד אחריו. טקסט [Image #N] שחוזר כטקסט רגיל (Ctrl+K ואז Ctrl+Y, ביטול, הדבקת טקסט רגיל) מתחבר מחדש כשבב בזמן שה-composer עדיין מחזיק את התמונה. מציין מקום לתמונה שהוא כבר לא מחזיק נשלח כטקסט עם toast שאומר זאת.
התחלה / סוף של הקלט.Cmd+↑ ו-Ctrl+Home מזיזים את הסמן להתחלה של כל הפרומפט, ו-Cmd+↓ ו-Ctrl+End מזיזים אותו לסוף. עם Shift הם בוחרים עד לשם. מסופים רבים שומרים את Cmd+↑/↓ לעצמם. שם, השתמשו ב-Ctrl+Home/End (Ctrl+Fn+←/→ במחשב נייד Mac). מדריך תמיכת המסוף מפרט אילו מסופים לוקחים אילו מקשים ואיך להעביר Cmd+↑/↓.
Command palette: Ctrl+P or ?
Model picker: Ctrl+M (from scrollback)
Cancel: Ctrl+C (see Escape table)
Always-approve: Ctrl+O (toggle YOLO)
New session: Ctrl+N (press again; with `ask`, choose normal/worktree where one can be made)
Quit: Ctrl+Q (or Ctrl+D in VSCode)