%3CLINGO-SUB%20id%3D%22lingo-sub-1873104%22%20slang%3D%22en-US%22%3EAnnouncing%20Az%20Predictor%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1873104%22%20slang%3D%22en-US%22%3E%3CP%3EThe%20Azure%20PowerShell%20modules%20expose%20over%204%2C000%20cmdlets%20and%2C%20on%20average%2C%20ten%20parameters%20per%20cmdlet.%20Experienced%20PowerShell%20users%20will%20find%20the%20right%20cmdlet%20and%20parameter%20to%20achieve%20their%20goal%20but%20this%20can%20be%20more%20complicated%20for%20casual%20users.%3C%2FP%3E%0A%3CP%3EI%20have%20rarely%20seen%20people%20experimenting%20with%20a%20new%20module%20being%20able%20to%20execute%20a%20command%20successfully%20on%20their%20first%20attempt.%20With%20time%2C%20this%20is%20no%20more%20an%20issue%20as%20people%20get%20accustomed%20to%20the%20cmdlet%20and%20remember%20the%20associated%20parameters%2C%20unless%20you%20have%20a%20terrible%20memory%20like%20me%20and%20need%20to%20refer%20to%20the%20documentation%20frequently.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22Az.Tools.Predictor.gif%22%20style%3D%22width%3A%20999px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F232671iE99577618EA1E5C9%2Fimage-size%2Flarge%3Fv%3D1.0%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22Az.Tools.Predictor.gif%22%20alt%3D%22Az%20Predictor%20annimated%20GIF%22%20%2F%3E%3CSPAN%20class%3D%22lia-inline-image-caption%22%20onclick%3D%22event.preventDefault()%3B%22%3EAz%20Predictor%20annimated%20GIF%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CH2%20id%3D%22toc-hId--1209473708%22%20id%3D%22toc-hId--1209473708%22%20id%3D%22toc-hId--1209473708%22%20id%3D%22toc-hId--1209473708%22%20id%3D%22toc-hId--1209473708%22%20id%3D%22toc-hId--1209473708%22%20id%3D%22toc-hId--1209473708%22%20id%3D%22toc-hId--1209473708%22%20id%3D%22toc-hId--1209473708%22%20id%3D%22toc-hId--1209473708%22%20id%3D%22toc-hId--1209473708%22%20id%3D%22toc-hId--1209473708%22%20id%3D%22toc-hId--1209473708%22%20id%3D%22toc-hId--1209473708%22%3EGoals%3C%2FH2%3E%0A%3CP%3EWe%20built%20Az%20Predictor%2C%20an%20intelligent%20command%20completion%20module%20for%20Azure%20Powershell.%20Az%20Predictor%20helps%20our%20Azure%20developers%20find%20the%20cmdlet%20they%20are%20looking%20for%20efficiently%2C%20identify%20the%20required%20parameters%20quickly%2C%20and%20experience%20fewer%20errors.%3C%2FP%3E%0A%3CP%3EWe%20worked%20closely%20with%20the%20PowerShell%20team%20to%20have%20Az%20be%20the%20first%20module%20that%20leverages%20this%20new%20interface%20and%20bring%20suggestions%20to%20the%20developer%E2%80%99s%20fingertips.%20Az%20Predictor%20takes%20the%20context%20of%20the%20current%20session%20into%20account%20in%20its%20suggestions.%20With%20Az%20Predictor%E2%80%99s%20context-aware%20suggestions%20users%20will%20be%20guided%20through%20the%20discovery%20of%20cmdlets%20and%20will%20not%20need%20to%20go%20to%20the%20online%20help%20as%20often.%3C%2FP%3E%0A%3CP%3ETo%20satisfy%20different%20working%20styles%2C%20we%20are%20offering%20two%20modes%3A%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CUL%3E%0A%3CLI%3E%3CSTRONG%3EInline%20mode%3C%2FSTRONG%3E%3A%26nbsp%3Ba%20suggestion%20with%20parameters%20and%20values%20will%20appear%20with%20some%20opacity%20on%20the%20rest%20of%20the%20command%20line.%20We%20expect%20this%20mode%20to%20be%20more%20suited%20for%20the%20experienced%20developers%20who%20already%20understand%20the%20cmdlets.%3CBR%20%2F%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-center%22%20image-alt%3D%22AzPredictor-InlineView.png%22%20style%3D%22width%3A%20999px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F232674iD7B56ED52656C71A%2Fimage-size%2Flarge%3Fv%3D1.0%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22AzPredictor-InlineView.png%22%20alt%3D%22Az%20Predictor%20inline%20mode%20screen%20capture%22%20%2F%3E%3CSPAN%20class%3D%22lia-inline-image-caption%22%20onclick%3D%22event.preventDefault()%3B%22%3EAz%20Predictor%20inline%20mode%20screen%20capture%3C%2FSPAN%3E%3C%2FSPAN%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3C%2FLI%3E%0A%3CLI%3E%3CSTRONG%3EListview%20mode%3C%2FSTRONG%3E%3A%26nbsp%3Bseveral%20suggestions%20will%20appear%20below%20the%20command%20line%20with%20the%20complete%20parameter%20set%20displayed.%20This%20mode%20should%20be%20more%20suited%20to%20folks%20who%20need%20to%20see%20the%20command%E2%80%99s%20full%20line%20to%20know%20the%20parameters.%3CBR%20%2F%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-center%22%20image-alt%3D%22AzPredictor-ListVew.png%22%20style%3D%22width%3A%20999px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F232675i636C0E4DCD60829A%2Fimage-size%2Flarge%3Fv%3D1.0%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22AzPredictor-ListVew.png%22%20alt%3D%22Az%20Predictor%20listview%20mode%20screen%20capture%22%20%2F%3E%3CSPAN%20class%3D%22lia-inline-image-caption%22%20onclick%3D%22event.preventDefault()%3B%22%3EAz%20Predictor%20listview%20mode%20screen%20capture%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CH2%20id%3D%22toc-hId-1278039125%22%20id%3D%22toc-hId-1278039125%22%20id%3D%22toc-hId-1278039125%22%20id%3D%22toc-hId-1278039125%22%20id%3D%22toc-hId-1278039125%22%20id%3D%22toc-hId-1278039125%22%20id%3D%22toc-hId-1278039125%22%20id%3D%22toc-hId-1278039125%22%20id%3D%22toc-hId-1278039125%22%20id%3D%22toc-hId-1278039125%22%20id%3D%22toc-hId-1278039125%22%20id%3D%22toc-hId-1278039125%22%20id%3D%22toc-hId-1278039125%22%20id%3D%22toc-hId-1278039125%22%3ETechnical%20details%3C%2FH2%3E%0A%3CP%3EAz%20Predictor%20is%20currently%20a%20module%20in%20preview%20in%20the%20PowerShell%20gallery.%20We%20are%20looking%20for%20feedback%20on%20this%20first%20preview%2C%20and%20based%20on%20what%20we%20will%20hear%20from%20customers%2C%20we%20are%20considering%20making%20it%20part%20of%20the%20Az%20wrapper%20module.%3C%2FP%3E%0A%3CP%3EThe%20inline%20view%20and%20list%20view%20modes%20are%20provided%20by%20PSReadline%20to%20manage%20the%20user%E2%80%99s%20interactions.%20The%20plugin%20is%20responsible%20for%20providing%20the%20suggestions%20to%20be%20used%20by%20PSReadline.%3C%2FP%3E%0A%3CP%3EAz%20Predictor%20is%20built%20on%20top%20of%20the%20%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2FPowerShell%2FPowerShell%2Fpull%2F13186%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%22%3Esubsystem%20plugin%20model%3C%2FA%3E%20that%20is%20available%20after%20PowerShell%207.1-preview7%20and%20used%20by%20PSReadline%202.2.0-beta1%3B%20hence%20the%20following%20configuration%20is%20required%20to%20try%20Az%20Predictor%3A%3C%2FP%3E%0A%3CUL%3E%0A%3CLI%3EPowerShell%207.1%2B%3C%2FLI%3E%0A%3CLI%3EPSReadline%202.2.0-beta1%20%E2%80%93%20%3CA%20href%3D%22https%3A%2F%2Fdevblogs.microsoft.com%2Fpowershell%2Fannouncing-psreadline-2-1-with-predictive-intellisense%2F%22%20target%3D%22_self%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%22%3ELearn%20more%20about%20PSReadline%202.2.0%3C%2FA%3E%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%3E%3CU%3ENote%3C%2FU%3E%3A%20If%20you%20are%20using%20Windows%20PowerShell%20(5.1)%2C%20you%20can%20install%20PowerShell%207.1%20side%20by%20side.%20More%20information%20on%20this%20page%3A%20%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fpowershell%2Fscripting%2Finstall%2Fmigrating-from-windows-powershell-51-to-powershell-7%3Fview%3Dpowershell-7%23using-powershell-7-side-by-side-with-windows-powershell-51%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fpowershell%2Fscripting%2Finstall%2Fmigrating-from-windows-powershell-51-to-powershell-7%3Fview%3Dpowershell-7%23using-powershell-7-side-by-side-with-windows-powershell-51%3C%2FA%3E%20.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3ETo%20provide%20the%20suggestions%20to%20PSReadline%2C%20Az%20Predictor%20makes%20regular%20calls%20to%20an%20API%20that%20will%20return%20suggested%20commands%20based%20on%20the%20session%E2%80%99s%20context.%3C%2FP%3E%0A%3CP%3EThe%20full%20functionality%20of%20Az%20Predictor%20requires%20internet%20access.%20We%20are%20planning%20to%20add%20support%20for%20environments%20with%20limited%20or%20no%20network%20capacity%20(for%20example%2C%20mobile%20connectivity%20or%20Wi-Fi%20in%20airplanes).%3C%2FP%3E%0A%3CP%3EOnce%20loaded%2C%20Az%20Predictor%20will%20identify%20the%20value%20or%20variable%20used%20for%20resource%20group%20name%20and%20location%20and%20use%20it%20in%20the%20subsequent%20suggestions.%20When%20you%20start%20typing%20a%20command%2C%20Az%20Predictor%20will%20search%20for%20the%20cmdlet%20that%20you%20are%20the%20most%20likely%20to%20use%20based%20on%20the%20session%E2%80%99s%20context.%20As%20you%20type%2C%20we%20refine%20the%20search%20and%20display%20more%20accurate%20examples%20to%20use.%3C%2FP%3E%0A%3CP%3EAz%20Predictor%20understands%20parametersets%2C%20required%2C%20and%20optional%20parameters%20and%20leverages%20the%20Azure%20PowerShell%20examples%20in%20the%20reference%20documentation%20as%20suggestions.%20The%20suggestions%20will%20then%20be%20adjusted%20based%20on%20the%20possible%20parametersets%20and%20parameters%20that%20have%20already%20been%20typed%3C%2FP%3E%0A%3CP%3EThe%20code%20of%20Azure%20PowerShell%2C%20including%20this%20module%2C%20is%20%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2FAzure%2Fazure-powershell%2Ftree%2Fmaster%22%20target%3D%22_self%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%22%3Eopensource%3C%2FA%3E.%20If%20you%20find%20a%20bug%20and%20want%20to%20contribute%2C%20you%20can%20submit%20an%20issue%20or%20open%20a%20PR%20(pull%20request).%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CH2%20id%3D%22toc-hId--529415338%22%20id%3D%22toc-hId--529415338%22%20id%3D%22toc-hId--529415338%22%20id%3D%22toc-hId--529415338%22%20id%3D%22toc-hId--529415338%22%20id%3D%22toc-hId--529415338%22%20id%3D%22toc-hId--529415338%22%20id%3D%22toc-hId--529415338%22%20id%3D%22toc-hId--529415338%22%20id%3D%22toc-hId--529415338%22%20id%3D%22toc-hId--529415338%22%20id%3D%22toc-hId--529415338%22%20id%3D%22toc-hId--529415338%22%20id%3D%22toc-hId--529415338%22%3EGetting%20started%3C%2FH2%3E%0A%3CP%3EWe%20hope%20that%20you%20are%20as%20excited%20as%20we%20are%20with%20this%20new%20interface.%3C%2FP%3E%0A%3CP%3ETo%20get%20started%3A%3C%2FP%3E%0A%3COL%3E%0A%3CLI%3EInstall%20%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2FPowerShell%2FPowerShell%2Freleases%2Ftag%2Fv7.1.0-rc.2%22%20target%3D%22_self%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%22%3EPowerShell%207.1-rc2%3C%2FA%3E%20or%20more%20recent%3A%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fpowershell%2Fscripting%2Finstall%2Finstalling-powershell%3Fview%3Dpowershell-7.1%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fpowershell%2Fscripting%2Finstall%2Finstalling-powershell%3Fview%3Dpowershell-7.1%3C%2FA%3E%26nbsp%3B%3C%2FLI%3E%0A%3CLI%3EInstall%20PSReadline%202.2-beta1%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2FPowerShell%2FPSReadLine%2Freleases%2Ftag%2Fv2.2.0-beta1%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fgithub.com%2FPowerShell%2FPSReadLine%2Freleases%2Ftag%2Fv2.2.0-beta1%3C%2FA%3E%3CPRE%3EInstall-Module%20PSReadline%20-AllowPrerelease%20%3C%2FPRE%3E%0A%3C%2FLI%3E%0A%3CLI%3EInstall%20Az.Tools.Predictor%20preview%3CPRE%3EInstall-Module%20-Name%20Az.Tools.Predictor%3C%2FPRE%3E%0A%3C%2FLI%3E%0A%3CLI%3EImport%20the%20module%20via%3CPRE%3Eimport-module%20Az.Tools.Predictor%3C%2FPRE%3E%0A%3C%2FLI%3E%0A%3CLI%3EEnable%20plugins%20via%3CPRE%3ESet-PSReadLineOption%20-PredictionSource%20HistoryAndPlugin%3C%2FPRE%3E%0A%3C%2FLI%3E%0A%3CLI%3EYou%20can%20enable%20the%20list%20view%20mode%20with%3CPRE%3ESet-PSReadLineOption%20-PredictionViewStyle%20ListView%3C%2FPRE%3E%0A%3C%2FLI%3E%0A%3C%2FOL%3E%0A%3CP%3EIf%20you%20want%20to%20load%20Az%20Predictor%20at%20the%20launch%20of%20PowerShell%2C%20add%20the%20following%20lines%20to%20your%20PowerShell%20profile%20(Microsoft.PowerShell_profile.ps1)%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CPRE%20class%3D%22lia-code-sample%20language-powershell%22%3E%3CCODE%3EImport-Module%20Az.Tools.Predictor%0ASet-PSReadLineOption%20-PredictionSource%20HistoryAndPlugin%0ASet-PSReadLineOption%20-PredictionViewStyle%20ListView%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3ELog%20issues%2C%20feature%20requests%2C%20or%20design%20changes%20on%20GitHub%3A%20%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2FAzure%2Fazure-powershell%2Fissues%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fgithub.com%2FAzure%2Fazure-powershell%2Fissues%3C%2FA%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EWe%20are%20at%20the%20early%20stage%20of%20the%20module%20and%20want%20to%20hear%20from%20you%3B%20please%20take%20a%20moment%20to%20fill%20this%20brief%20survey%3A%20%3CA%20href%3D%22http%3A%2F%2Faka.ms%2Fazpredictorsurvey%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%22%3Ehttp%3A%2F%2Faka.ms%2Fazpredictorsurvey%3C%2FA%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3ETell%20us%20about%20the%20following%3A%3C%2FP%3E%0A%3CUL%3E%0A%3CLI%3EAre%20the%20predictions%20useful%3F%3C%2FLI%3E%0A%3CLI%3EWould%20you%20like%20to%20have%20Az%20Predictor%20turned%20on%20by%20default%3F%3C%2FLI%3E%0A%3CLI%3EWhich%20mode%20is%20the%20most%20valuable%3F%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-TEASER%20id%3D%22lingo-teaser-1873104%22%20slang%3D%22en-US%22%3E%3CP%3EWhere%20AI%20meets%20PowerShell%20for%20Azure.%3C%2FP%3E%3C%2FLINGO-TEASER%3E%3CLINGO-LABS%20id%3D%22lingo-labs-1873104%22%20slang%3D%22en-US%22%3E%3CLINGO-LABEL%3EPowerShell%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1876739%22%20slang%3D%22en-US%22%3ERe%3A%20Announcing%20Az%20Predictor%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1876739%22%20slang%3D%22en-US%22%3E%3CP%3EFinally!%20Only%20took%207%20version%20of%20Poweshell%20%3A)%3C%2Fimg%3E%20basically%26nbsp%3Bzsh-autosuggestions.%20Will%20it%20be%20possible%20to%20enable%20predictions%20for%20external%20executables%20outsize%20PowerShell%20like%20kubectl%2C%20helm%2C%20docker%3F%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1876777%22%20slang%3D%22en-US%22%3ERe%3A%20Announcing%20Az%20Predictor%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1876777%22%20slang%3D%22en-US%22%3E%3CP%3EFun!%20One%20comment%20though%20is%20I%20had%20to%20go%20back%20and%20install%20the%20Az%20module%205%20first%20since%20I%20hadn't%20set%20up%20Powershell%207%20yet....which%20makes%20sense.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1877642%22%20slang%3D%22en-US%22%3ERe%3A%20Announcing%20Az%20Predictor%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1877642%22%20slang%3D%22en-US%22%3E%3CP%3E%3CA%20href%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F865430%22%20target%3D%22_blank%22%3E%40choovick%3C%2FA%3E%26nbsp%3Bwhat%20we%20are%20making%20suggestions%20of%20what%20is%20likely%20the%20next%20command%20you%20will%20use%20based%20on%20what%20you%20have%20done%20before.%20We%20blend%20those%20predictions%20with%20the%20history%20allowing%20you%20to%20select%20a%20previous%20command%20or%20accept%20the%20one%20proposed.%20We%20use%20an%20AI%20model%20to%20make%20those%20suggestions%20and%20you%20will%20see%20that%20they%20will%20evolve.%3C%2FP%3E%0A%3CP%3EAz%20Predictor%20is%20a%20PS%20Readline%20plugin%20and%20you%20can%20build%20one%20for%20other%20executables%20like%20helm%2C%20kubectl%20or%20docker%20but%20this%20is%20not%20something%20that%20we%20have%20plans%20for.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1877645%22%20slang%3D%22en-US%22%3ERe%3A%20Announcing%20Az%20Predictor%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1877645%22%20slang%3D%22en-US%22%3E%3CP%3E%3CA%20href%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F327830%22%20target%3D%22_blank%22%3E%40dcaro%3C%2FA%3E%26nbsp%3BFair%20enough.%20Looks%20like%20there%20are%20other%20options%20for%20these%20external%20binaries%20that%20I%20have%20not%20yet%20explored%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2Fmziyabo%2FPSKubectlCompletion%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fgithub.com%2Fmziyabo%2FPSKubectlCompletion%26nbsp%3B%3C%2FA%3E%3CBR%20%2F%3EThanks!%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1875911%22%20slang%3D%22en-US%22%3ERe%3A%20Announcing%20Az%20Predictor%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1875911%22%20slang%3D%22en-US%22%3E%3CP%3EThis%20is%20actually%20amazing!!!%20Thanks%20for%20putting%20the%20time%20in%20to%20make%20it%20available%20for%20us!%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1883097%22%20slang%3D%22en-US%22%3ERe%3A%20Announcing%20Az%20Predictor%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1883097%22%20slang%3D%22en-US%22%3E%3CP%3EGreat!!%20Much%20awaited%20feature%2C%20should%20be%20built%20in%20to%20powershell%20future%20releases%20%3Aok_hand%3A%3Aok_hand%3A%20Also%20would%20be%20cool%20if%20we%20can%20get%20this%20for%20AZ%20CLI%20as%20well%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1883146%22%20slang%3D%22en-US%22%3ERe%3A%20Announcing%20Az%20Predictor%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1883146%22%20slang%3D%22en-US%22%3E%3CP%3EApart%20from%20managing%20Azure%2C%20why%20does%20this%20specific%20plugin%20require%20Internet%20access%3F%20What%20is%20the%20privacy%20policy%20of%20Predictor%3F%3C%2FP%3E%3C%2FLINGO-BODY%3E
Microsoft

The Azure PowerShell modules expose over 4,000 cmdlets and, on average, ten parameters per cmdlet. Experienced PowerShell users will find the right cmdlet and parameter to achieve their goal but this can be more complicated for casual users.

I have rarely seen people experimenting with a new module being able to execute a command successfully on their first attempt. With time, this is no more an issue as people get accustomed to the cmdlet and remember the associated parameters, unless you have a terrible memory like me and need to refer to the documentation frequently.

 

Az Predictor annimated GIFAz Predictor annimated GIF

Goals

We built Az Predictor, an intelligent command completion module for Azure Powershell. Az Predictor helps our Azure developers find the cmdlet they are looking for efficiently, identify the required parameters quickly, and experience fewer errors.

We worked closely with the PowerShell team to have Az be the first module that leverages this new interface and bring suggestions to the developer’s fingertips. Az Predictor takes the context of the current session into account in its suggestions. With Az Predictor’s context-aware suggestions users will be guided through the discovery of cmdlets and will not need to go to the online help as often.

To satisfy different working styles, we are offering two modes:

 

  • Inline mode: a suggestion with parameters and values will appear with some opacity on the rest of the command line. We expect this mode to be more suited for the experienced developers who already understand the cmdlets.
    Az Predictor inline mode screen captureAz Predictor inline mode screen capture

     

  • Listview mode: several suggestions will appear below the command line with the complete parameter set displayed. This mode should be more suited to folks who need to see the command’s full line to know the parameters.
    Az Predictor listview mode screen captureAz Predictor listview mode screen capture

 

Technical details

Az Predictor is currently a module in preview in the PowerShell gallery. We are looking for feedback on this first preview, and based on what we will hear from customers, we are considering making it part of the Az wrapper module.

The inline view and list view modes are provided by PSReadline to manage the user’s interactions. The plugin is responsible for providing the suggestions to be used by PSReadline.

Az Predictor is built on top of the subsystem plugin model that is available after PowerShell 7.1-preview7 and used by PSReadline 2.2.0-beta1; hence the following configuration is required to try Az Predictor:

Note: If you are using Windows PowerShell (5.1), you can install PowerShell 7.1 side by side. More information on this page: https://docs.microsoft.com/en-us/powershell/scripting/install/migrating-from-windows-powershell-51-t... .

 

To provide the suggestions to PSReadline, Az Predictor makes regular calls to an API that will return suggested commands based on the session’s context.

The full functionality of Az Predictor requires internet access. We are planning to add support for environments with limited or no network capacity (for example, mobile connectivity or Wi-Fi in airplanes).

Once loaded, Az Predictor will identify the value or variable used for resource group name and location and use it in the subsequent suggestions. When you start typing a command, Az Predictor will search for the cmdlet that you are the most likely to use based on the session’s context. As you type, we refine the search and display more accurate examples to use.

Az Predictor understands parametersets, required, and optional parameters and leverages the Azure PowerShell examples in the reference documentation as suggestions. The suggestions will then be adjusted based on the possible parametersets and parameters that have already been typed

The code of Azure PowerShell, including this module, is opensource. If you find a bug and want to contribute, you can submit an issue or open a PR (pull request).

 

Getting started

We hope that you are as excited as we are with this new interface.

To get started:

  1. Install PowerShell 7.1-rc2 or more recent: https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell?view=powershell-... 
  2. Install PSReadline 2.2-beta1 https://github.com/PowerShell/PSReadLine/releases/tag/v2.2.0-beta1
    Install-Module PSReadline -AllowPrerelease 
  3. Install Az.Tools.Predictor preview
    Install-Module -Name Az.Tools.Predictor
  4. Import the module via
    import-module Az.Tools.Predictor
  5. Enable plugins via
    Set-PSReadLineOption -PredictionSource HistoryAndPlugin
  6. You can enable the list view mode with
    Set-PSReadLineOption -PredictionViewStyle ListView

If you want to load Az Predictor at the launch of PowerShell, add the following lines to your PowerShell profile (Microsoft.PowerShell_profile.ps1)

 

 

 

Import-Module Az.Tools.Predictor
Set-PSReadLineOption -PredictionSource HistoryAndPlugin
Set-PSReadLineOption -PredictionViewStyle ListView

 

 

 

 

Log issues, feature requests, or design changes on GitHub: https://github.com/Azure/azure-powershell/issues

 

We are at the early stage of the module and want to hear from you; please take a moment to fill this brief survey: http://aka.ms/azpredictorsurvey

 

Tell us about the following:

  • Are the predictions useful?
  • Would you like to have Az Predictor turned on by default?
  • Which mode is the most valuable?

 

7 Comments
Senior Member

This is actually amazing!!! Thanks for putting the time in to make it available for us!

Occasional Visitor

Finally! Only took 7 versions of Poweshell :) basically zsh-autosuggestions. Will it be possible to enable predictions for external executables outsize PowerShell like kubectl, helm, docker?

Senior Member

Fun! One comment though is I had to go back and install the Az module 5 first since I hadn't set up Powershell 7 yet....which makes sense.

Microsoft

@choovick what we are making suggestions of what is likely the next command you will use based on what you have done before. We blend those predictions with the history allowing you to select a previous command or accept the one proposed. We use an AI model to make those suggestions and you will see that they will evolve.

Az Predictor is a PS Readline plugin and you can build one for other executables like helm, kubectl or docker but this is not something that we have plans for.

  

Occasional Visitor

@dcaro Fair enough. Looks like there are other options for these external binaries that I have not yet explored https://github.com/mziyabo/PSKubectlCompletion 
Thanks!

Microsoft

Great!! Much awaited feature, should be built in to powershell future releases :ok_hand::ok_hand: Also would be cool if we can get this for AZ CLI as well

Visitor

Apart from managing Azure, why does this specific plugin require Internet access? What is the privacy policy of Predictor?