# New extension: Programmable Completion (Shell)

**URL:** <https://forum.codecrafters.io/t/new-extension-programmable-completion-shell/16019>\
**Category:** Announcements\
**Tags:** challenge:shell\
**Created:** [May 4, 2026, 2:26pm UTC](https://forum.codecrafters.io/t/new-extension-programmable-completion-shell/16019 "2026-05-04T14:26:35Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![andy1li](https://yyz1.discourse-cdn.com/flex003/user_avatar/forum.codecrafters.io/andy1li/32/10_2.png) [@andy1li](https://forum.codecrafters.io/u/andy1li)\
**Post date:** [May 4, 2026, 2:26pm UTC](https://forum.codecrafters.io/t/new-extension-programmable-completion-shell/16019/1 "2026-05-04T14:26:35Z")

</div>

Hey everyone!

The next extension for the Shell challenge is now live: **Programmable Completion**.

Programmable Completion allows your shell to define custom completion behavior for commands, enabling context-aware suggestions based on the command and its inputs.

 ![new extension · shell](https://canada1.discourse-cdn.com/flex003/uploads/codecrafters/original/3X/7/1/71854dd1b929d51c099f3a7ebb886e82b0d6b334.jpeg)

Once you complete this extension, your shell will support behaviors like:

```auto
$ git cl<TAB>
$ git clone 

```

Here’s the stage breakdown:

 ![image](https://canada1.discourse-cdn.com/flex003/uploads/codecrafters/original/3X/d/9/d9cb5212c0f06d49bfba50432ffc072c4627a68f.png)

Please [give this a try](https://app.codecrafters.io/courses/shell/overview) and let us know how it can be improved! @UdeshyaDhungana (author of this extension) and I will be available here to help out with any tester or instruction-related issues.

---

<div class="post-metadata">

**Author:** ![goose-977](https://yyz1.discourse-cdn.com/flex003/user_avatar/forum.codecrafters.io/goose-977/32/32_2.png) [@goose-977](https://forum.codecrafters.io/u/goose-977)\
**Post date:** [May 5, 2026, 6:02am UTC](https://forum.codecrafters.io/t/new-extension-programmable-completion-shell/16019/2 "2026-05-05T06:02:22Z")

</div>

Can I get “gitRemoteCompleter” script ?

---

<div class="post-metadata">

**Author:** ![andy1li](https://yyz1.discourse-cdn.com/flex003/user_avatar/forum.codecrafters.io/andy1li/32/10_2.png) [@andy1li](https://forum.codecrafters.io/u/andy1li)\
**Post date:** [May 5, 2026, 6:04am UTC](https://forum.codecrafters.io/t/new-extension-programmable-completion-shell/16019/3 "2026-05-05T06:04:16Z")

</div>

Hey @goose-977, is ~~[this](https://github.com/git/git/blob/master/contrib/completion/git-completion.bash)~~ what you’re looking for?

---

<div class="post-metadata">

**Author:** ![goose-977](https://yyz1.discourse-cdn.com/flex003/user_avatar/forum.codecrafters.io/goose-977/32/32_2.png) [@goose-977](https://forum.codecrafters.io/u/goose-977)\
**Post date:** [May 5, 2026, 6:06am UTC](https://forum.codecrafters.io/t/new-extension-programmable-completion-shell/16019/4 "2026-05-05T06:06:03Z")

</div>

I will test in my local , Thank you

---

<div class="post-metadata">

**Author:** ![goose-977](https://yyz1.discourse-cdn.com/flex003/user_avatar/forum.codecrafters.io/goose-977/32/32_2.png) [@goose-977](https://forum.codecrafters.io/u/goose-977)\
**Post date:** [May 5, 2026, 6:12am UTC](https://forum.codecrafters.io/t/new-extension-programmable-completion-shell/16019/5 "2026-05-05T06:12:17Z")

</div>

@andy1li I see test execute command complete -C /tmp/ant/gitRemoteCompleter git I don’t know what gitRemoteCompleter look like

 ![Screenshot 2026-05-05 at 1.08.48 in the afternoon](https://canada1.discourse-cdn.com/flex003/uploads/codecrafters/original/3X/7/e/7edf97dc506e31dbc723aa4c9621a0f2dbad8852.png)

---

<div class="post-metadata">

**Author:** ![andy1li](https://yyz1.discourse-cdn.com/flex003/user_avatar/forum.codecrafters.io/andy1li/32/10_2.png) [@andy1li](https://forum.codecrafters.io/u/andy1li)\
**Post date:** [May 5, 2026, 6:34am UTC](https://forum.codecrafters.io/t/new-extension-programmable-completion-shell/16019/6 "2026-05-05T06:34:15Z")

</div>

@goose-977 In that case, the link I shared earlier isn’t what you need, sorry about that.

For this extension, you only need to care about **what the script outputs** , not its internal implementation.

If you’re curious about how something like `gitRemoteCompleter` might look, you could do something like this:

 ![image](https://canada1.discourse-cdn.com/flex003/uploads/codecrafters/original/3X/f/7/f73325147713dc03497713e4f4590a8dc17ff9ba.png)

But the result might not be very illuminating:

 ![image](https://canada1.discourse-cdn.com/flex003/uploads/codecrafters/original/3X/b/3/b3f775086ba6beb4d95cdb0be955a5ba81990399.jpeg)
