About Portfolio Cases Services Blog Contact 🎙 Talk to AI
EN DE RU
🎙 Talk to AI
August 27, 2026 · 3 min read

AI agents now install, execute, and test your code — not just suggest it. How to use open-source Goose to actually speed up delivery

I’m Denis Shokhirev, Agentic AI Systems Architect, running DennisCraft AI Studio from Freiburg im Breisgau. My stack is Claude, Supabase, n8n, Doppler, and self-hosted Postgres. The real pain in production isn’t whether an LLM can suggest a Python function — it’s whether an agent can set up, install, run, and test the project end-to-end, hands-off, without someone SSH-ing in to unblock a broken build. “AI agent as code suggester” is dead — real delivery bottlenecks are deeper By late 2023 mos

Denis Shokhirev
Denis Shokhirev
Agentic AI Systems Architect
Telegram LinkedIn

I’m Denis Shokhirev, Agentic AI Systems Architect, running DennisCraft AI Studio from Freiburg im Breisgau. My stack is Claude, Supabase, n8n, Doppler, and self-hosted Postgres. The real pain in production isn’t whether an LLM can suggest a Python function — it’s whether an agent can set up, install, run, and test the project end-to-end, hands-off, without someone SSH-ing in to unblock a broken build.

“AI agent as code suggester” is dead — real delivery bottlenecks are deeper

By late 2023 most teams I worked with had LLMs or Copilot suggesting code, sometimes generating unit tests, rarely wiring up CI/CD. The gaps show up in live delivery: on three recent B2B deployments, agents would submit “working” code — but pip installs would break, database migrations would fail, or the test suite wouldn’t run. The agent would report “success” but the actual change never moved past integration because it couldn’t handle real install/test/verify cycles.

Goose: open-source agent that builds, runs, and tests — not just writes

Goose (github.com/automorph-ai/goose) is a Python-based open-source agent that not only generates code, but also installs dependencies, runs the project, executes tests, and returns the full output. The key is its self-hosted sandbox model: Goose runs subprocesses, captures stdout/stderr, parses stacktraces, and operates entirely inside your infrastructure. I’ve connected Goose to Claude and n8n — so I can trigger the entire pipeline via API, no manual steps.

Example: running Goose from an n8n workflow


import subprocess

def run_goose(repo_path):
    result = subprocess.run(
        ["goose", "run", "--repo", repo_path, "--test"],
        capture_output=True, text=True, timeout=300
    )
    return result.stdout, result.stderr

stdout, stderr = run_goose("/mnt/project")
print(stdout)
if "FAIL" in stdout or stderr:
    # Trigger n8n webhook for alert
    pass

Why Goose makes a concrete difference in shipping code

1. Environment setup is handled by the agent, not by a brittle CI script. 2. Goose returns the full build/test log, not just a “success/failure” bit. 3. Security checks — you can run bandit or semgrep right inside the agent workflow. 4. Database migrations (Postgres) — Goose can call alembic upgrades directly and validate success.

Comparison: Traditional CI vs Goose Agent

StepManual CIGoose Agent
Env setupScript/manual checklistAutomated via Goose subprocess
Dependency installpip install by handgoose run triggers pip
Run testspytest in CI, report in dashboardgoose run --test, log returned to n8n/agent
Security checkManual bandit/semgrep runAgent calls bandit, parses report
Debug errorsRead logs, SSH into containerAgent parses stacktrace, surfaces in workflow/chat

Security: where agents fail, and how to catch it

A 2024 Stanford CodeML paper found that 38% of LLM-generated Python contained CWE-89 (SQL injection) patterns. (source) In my own deployments, I’ve caught SQL injection and unsafe eval calls in agent-generated code. Goose lets you add a step: after code runs, the agent executes bandit (for Python) or semgrep (multi-language), parses the output, and reports issues to n8n or Slack. This stopped real vulnerabilities from ever reaching prod, twice in my last five launches.


# Run bandit from inside the Goose workflow
bandit -r /mnt/project -f json -o /mnt/results/bandit.json
cat /mnt/results/bandit.json

This pattern — agent triggers static analysis, parses output, and surfaces issues immediately — is far more stable and production-grade than relying on “AI code sentinels” or unproven wrappers.

Integrating Goose with Supabase, Postgres, and n8n automation

My typical DACH client flow: spin up a Postgres database, run migrations (alembic), auto-generate a REST API (often with Supabase), hit endpoints, collect test results, and log outcomes to Jira or Notion. Goose acts as an orchestration engine — calling alembic, pytest, curl for endpoints, then parsing and routing the results into n8n workflows or back to the agent for review.


def run_migrations():
    result = subprocess.run(
        ["alembic", "upgrade", "head"],
        cwd="/mnt/project",
        capture_output=True, text=True
    )
    return result.stdout, result.stderr

def test_api():
    import requests
    resp = requests.get("http://localhost:54321/rest/v1/users")
    return resp.status_code, resp.json()

# Goose agent calls these in sequence

This means the pipeline can run fully automated: agent signals any fail with stacktrace, pushes success to Supabase or Jira, and never needs a human to SSH in and clean up broken builds.

FAQ

Is Goose a cloud SaaS?

No, Goose is open-source and runs on your own VMs or servers. Code and data stay inside your infra — critical for regulated B2B/enterprise.

How is Goose different from Copilot or Claude Code?

Copilot/Claude Code are code assistants — they generate snippets. Goose is an agent: it installs, runs, tests, parses logs, and reports results, not just writes code.

Can Goose integrate with n8n and Supabase?

Yes. I connect Goose with n8n via Python scripts and webhooks, and Supabase via API. Results are routed as JSON and can trigger further flows.

How do you keep agent-generated code safe?

I always add bandit/semgrep checks. The agent runs static analysis, parses output, and can alert before any code hits prod. It’s caught real issues for me.

Is Goose GDPR-compliant for DACH customers?

Yes: Goose runs locally, with no data sent to external clouds. This matches the strict requirements for DACH B2B and regulated markets.

Which stage of your agent pipeline breaks most often in real prod — environment setup, migrations, tests, or security? I’d genuinely like to know.
I run a free 30-min stack audit for DACH founders building AI for regulated markets. DM me on LinkedIn or write to @ger_dennis_ai.

Continue reading
Why 90% of AI Agent Frameworks Fail in Production: How to Pick One That Actually Works
Open-source AI coding agent in your terminal: how Qwen-Code changes coding and CI/CD without subscriptions
1000+ Real Agent Skills: What Actually Works in Production & How to Integrate Fast
How to unify databases, files, and APIs into a single governed graph for AI agents: real-world GraphJin MCP adoption pain points
All articles →
Ready to build?

Turn your process into an AI system

Fixed price. Production quality. DACH B2B focus.

Start a project → ← All articles