Let's Build a Plug & Play Claude Code Setup for AL Development - The Business Central Coding Stream
Live coding stream building a dev container to run Claude Code safely with the bypass-permissions flag for AL development. It covers the Ubuntu Dockerfile and dev container feature, persisting Claude Code login through shared Docker volumes, and attempts to strip git credentials. The result is a work-in-progress MVP published on GitHub, and the presenter plans to switch to Anthropic's own firewalled dev container in part two.
- Introduction and context on Cloud Code setup
- Dev container configuration goals and voice prompting approach
- Bypass permission flag and containment strategy
- Claude agent research on Cloud Code authentication
- Agent preferences and authentication approach options
- Interactive questions and Dockerfile creation
- Generated files and WSL Windows compatibility check
- Testing Cloud Code for Dev Container and GitHub Integration
- Resolving Local File System Path Issues
- Publishing to GitHub and Testing Authentication
- Autonomous Copilot Assistance and Dev Container Rebuild
- Cloud Code login and authentication challenges
- Dedicated AL config folder and mounted directory approach
- Authentication strategy and Docker Volume Mounting Strategy
- VS Code Dev Container Configuration and Testing Shared Folder Approach
- Container Rebuild and Cloud Code Authentication Setup
- Testing Credential Persistence and MVP Validation
- Multi-Subscription Support and Git Repository Sanitization
- Git remote safety and credential persistence approach
- Testing git operations and VS Code authentication
- GitHub authentication and Anthropic dev container discovery
- Anthropic dev container design and closing remarks
Overview
Stefan Maron builds a dev container for AL development with Claude Code, prompting Claude by voice (Whisper transcription) and letting it research and generate the Dockerfile and dev container JSON on an Ubuntu base. The goal is to run Claude Code with the dangerous bypass-permission flag only inside a container, so that a malfunction can only damage the container.
Most of the stream deals with authentication. Login did not carry over from the host and did not persist across rebuilds. He tests mounting folders and Docker volumes that are created on first use, so users authenticate once and can use a different subscription per project. He also looks at removing git remotes and credentials in the container, and ends by pointing to an Anthropic dev container that whitelists only Anthropic APIs. The work is on GitHub and is not finished.
Key points
- The bypass-permission flag removes manual approval of every command. It is dangerous outside a sandbox, so the presenter wants it used only inside a dev container.
- Claude generated a Dockerfile based on Ubuntu that installs Claude Code, sets the path, writes dev container JSON with a home directory bind and an Anthropic environment variable. It was checked as compatible with WSL on Windows.
- Claude reported three authentication approaches, the first being binding the Claude Code folder from the host. The presenter wanted both folder binding and an API key supported, but login did not carry through, and he doubted an API key works with a subscription.
- Credentials did not persist across container rebuilds. Mounting the .local/share folder was not enough, because Claude Code still prompted for onboarding and writes files elsewhere.
- Docker volumes created on first use hold the authentication, so users log in once and reuse it. Naming the mounts differently per project allows a different subscription per project. Some confirmation prompts remain.
- Removing the git remote inside the container also removes it on the host, because the workspace is shared. Credential stripping was incomplete: pull and push still worked, and pushing via VS Code worked because VS Code is authenticated to GitHub.
- Anthropic publishes a dev container that whitelists only Anthropic APIs, and the presenter decided to use it as the base. He has built AL compile, publish and run tests commands and plans to bake them and his instructions into the container in a later part.
Features
| Feature | Status | At | Evidence |
|---|---|---|---|
| Dev container script for AL development | status not stated, demoed | 2:02 | |
| Claude voice prompting in development workflow | status not stated, demoed | 2:40 | |
| Bypass permission flag for Cloud Code | status not stated, demoed | 4:00 | |
| Claude agent sub-agent task delegation | status not stated, demoed | 5:12 | |
| Opus configuration for thorough analysis | status not stated, demoed | 7:34 | |
| Interactive Claude prompting within sessions | status not stated, demoed | 8:55 | |
| Dockerfile generation for dev containers | status not stated, demoed | 11:07 | |
| WSL Windows compatibility verification | status not stated, demoed | 12:18 | |
| Dev Container Feature | status not stated, demoed | 15:16 | |
| Dev Container CLI | status not stated | 18:57 | |
| Cloud Code authentication persistence in dev containers | status not stated, demoed | 31:10 | |
| Mounted docker volume for shared AL development configuration | status not stated | 35:05 | |
| User-level AL development instructions in Cloud Code | status not stated | 40:31 | |
| Voice recording to clipboard shortcut | status not stated | 39:10 | |
| Docker volume for dev container authentication | status not stated, demoed | 39:37 | |
| Cloud Code dev container configuration | status not stated, demoed | 42:50 | |
| Cloud Code authorization callback | status not stated, demoed | 47:15 | |
| Cloud trace JSON authentication storage | status not stated, demoed | 52:35 | |
| AL-specific directory mounting | announced | 1:03:55 | “cloud AL specific directory will be the next thing” (1:03:55) |
| Git remote sanitization for dev containers | status not stated | 1:04:11 | |
| Git credential stripping in dev containers | status not stated, demoed | 1:07:00 | |
| Sudo support in dev container post-start commands | status not stated | 1:10:47 | |
| Anthropic dev container template | status not stated | 1:18:56 | |
| AL development commands in Docker container | status not stated | 1:20:51 | |
| Two-part dev container series | status not stated | 1:20:36 |
AL objects mentioned
As heard in the captions. A name that matches one object page by exact type and name links to it; the others stay as named.
- other “Cloud Code” at 0:55
- other “Dockerfile” at 2:52
- other “dev container JSON file” at 12:03
- other “Sentinel project” at 16:28
- other “release pipeline” at 18:04
- other “dev container template” at 18:15
- other “GitHub repository” at 27:48
- other “Whisper” at 38:58
- other “credentials.json” at 55:59
- other “cloud trace JSON” at 53:02
- other “dev container JSON” at 1:01:22
Quotes
- 1:07 “my Cloud markdown my instructions on how to do AI development, also like the the profile I have with the agent”
- 2:14 “the idea is to build a dev container script”
- 4:00 “I have bypass permission set on. This is a dangerously do not do this in live or something uh uh flag”
- 4:46 “I want to encapsulate this inside a dev container, because then it can screw up and completely destroy this com- completely container, but it”
- 5:22 “This is a built-in sub agent the task thing, if you haven’t worked with this. So, it decided to do …”
Disclaimers in the video
- 4:00 other: bypass permission set on. This is a dangerously do not do this in live or something
- 24:42 preview: It’s not done yet. I still work on this
- 37:36 coming-later: if we would mount a separate separate uh cloud folder dedicated to AL development and maybe even ship one with the dev container
- 38:06 subject-to-change: Would it be possible to have to like let or initiate authentication inside the dev container and then have it persist
- 40:31 coming-later: user level instructions basically that are AL specific… in the future of the
- 1:03:55 coming-later: cloud AL specific directory will be the next thing
- 1:12:02 other: not sure if that’s something we’re supposed to do
- 1:20:36 coming-later: this is probably going to be part one from at least a two-part series
- 1:20:51 coming-later: I will build this live on stream, so what I did now, I will continue
Presenters (as heard): Claude Code, GitHub Copilot.
