Atlas is a terminal-native AI coding agent that works in Perl in 2026, across CPAN distributions, .pm modules, and TAP-based test suites. Atlas reads your packages, your @EXPORT lists, and the modules pulled in by cpanm before it proposes a change. Atlas can add use strict and use warnings to a legacy script or write Test2::V0 cases under t/, run prove -lr t/ behind a permission prompt, and show you the TAP output before it commits.
Why Perl developers use Atlas
Perl developers use Atlas because most Perl in production is old, undocumented, and load-bearing, and Atlas indexes code by AST declarations using tree-sitter rather than blind line windows. A 2026 search returns the package and the sub, not a grep hit.
The Perl problem is rarely writing new code. It is understanding a distribution somebody wrote fifteen years ago, where a sub is exported through an @EXPORT list, a module is pulled in by cpanm, and nothing says which of the two hundred files actually matters. Atlas searches code with hybrid semantic and keyword retrieval fused by reciprocal rank fusion, so asking which package owns a piece of behavior returns that package rather than every file that shares a variable name. Atlas is a terminal-native TUI, so it runs on the same box where the Perl already runs, which is often the whole constraint.
Working in Perl day to day with Atlas
Day to day in Perl, Atlas reads your packages, @EXPORT lists, and the modules pulled in by cpanm. Ask Atlas to add use strict and use warnings to a legacy script or to write Test2::V0 cases under t/, and Atlas drafts the plan before it edits anything.
Adding use strict and use warnings to a legacy Perl script is not a formality. It surfaces every undeclared global the script has been relying on, and the fix is a real refactor. Atlas drafts a plan in a read-only plan agent and asks before switching to a build agent, so you see which variables have to be declared with my, which package globals stay, and which Test2::V0 cases will pin the current behavior first, all before the working tree changes. Because Atlas has read the @EXPORT lists, it knows which subs other code depends on and does not quietly change their contract. Atlas can fan out work to subagents that run in the foreground or in parallel background sessions across several .pm modules.
Running prove -lr t/ behind a permission prompt
Atlas can run prove -lr t/ on your distribution, but every Atlas tool call is permission-gated against 3 rules, allow, ask, and deny, before it runs. You allow prove -lr t/, Atlas runs the suite, and Atlas shows you the TAP output before it commits.
TAP is the ground truth in a Perl distribution, and Atlas reads it rather than asserting success. When Atlas runs prove -lr t/ behind a permission prompt, the not ok lines, the diagnostics, and the plan count all come back into the loop and shape the next iteration. Permission rules define the boundary, and that boundary matters more in Perl than in most languages, because a legacy script can touch a filesystem, a database, or a mail queue as a side effect. Allow prove -lr t/, ask before Atlas installs a module with cpanm or edits the cpanfile, and deny everything else. Nothing runs unless a rule allows it.
Reviewing the diff and running perltidy
Atlas computes a unified diff for every file edit and surfaces it for approval before writing, so in 2026 no .pm module changes without your review. Atlas runs perltidy on the changed files so the diff matches your .perltidyrc, and it snapshots changes as git patches.
Review is the whole point on a legacy Perl codebase, because the code you are changing is the code nobody wants to touch. Running perltidy on the changed files means the diff matches your .perltidyrc and shows the actual change: the my declaration that replaced a global, the Test2::V0 case that pinned behavior, the sub that stayed in the @EXPORT list. Atlas snapshots file changes as git patches, so a strict-mode conversion that broke a nightly job can be rolled back cleanly. Atlas also reads git branches, status, and diffs, and can stage and create commits on your behalf once you approve the change.
Keeping Perl source local with Ollama embeddings
Atlas can build its code index with local Ollama embeddings, keeping code off third-party servers, which matters because production Perl often runs inside a bank, an insurer, or a telco. Atlas also connects to Model Context Protocol servers and exposes their tools to the agent in 2026.
The organizations still running large Perl distributions are frequently the ones least able to send source to an external service. Atlas can build its code index with local Ollama embeddings, so the embedding pass over your .pm modules stays inside your network. Atlas is extensible through plugins that contribute tools and hook into agent lifecycle events, which is how a team adds an internal deployment check or a schema validator. Atlas connects to Model Context Protocol servers and exposes their tools to the agent, and Atlas lets you switch the active model and provider on the fly with favorites and recents, so a Test2::V0 writing pass and a hairy regex problem can use different models.
Getting started
- 01Run atlas in a distribution with a cpanfile or Makefile.PL
- 02Let Atlas read your packages, @EXPORT lists, and the modules pulled in by cpanm
- 03Ask Atlas to add use strict and use warnings to a legacy script or write Test2::V0 cases under t/
- 04Let Atlas run prove -lr t/ behind a permission prompt and show you the TAP output before it commits
- 05Have Atlas run perltidy on the changed files so the diff matches your .perltidyrc
Frequently asked questions
- does atlas work with perl and cpan distributions
- Yes. Atlas runs in a distribution with a cpanfile or Makefile.PL, reads your packages and @EXPORT lists, and can run prove -lr t/ behind a permission prompt.
- can an ai agent modernize a legacy perl script
- Yes. Ask Atlas to add use strict and use warnings to a legacy script. Atlas plans the variable declarations, shows a unified diff, and proves the change with prove -lr t/.
- can atlas write test2::v0 tests for perl
- Yes. Ask Atlas to write Test2::V0 cases under t/, then let Atlas run prove -lr t/ and show you the TAP output before it commits.
- does atlas run perltidy on perl code
- Yes. Atlas runs perltidy on the changed files so the diff matches your .perltidyrc rather than introducing a competing style.
- will an ai coding agent run my perl script with side effects
- Not without permission. Every Atlas tool call is permission-gated against allow, ask, and deny rules, so nothing executes unless a rule allows it.
- is atlas safe on an internal perl codebase in a bank
- Atlas can build its code index with local Ollama embeddings, keeping code off third-party servers, and every file edit arrives as a unified diff you approve before writing.
- how does atlas know which perl subs are public
- Atlas reads your @EXPORT lists, so it knows which subs other code depends on and does not change their contract without showing you.
Try Atlas in your terminal
The terminal-native AI coding agent. Free core, single binary.
Install AtlasRelated guides
Locate Perl Behavior Implementations with Atlas in 2026
Discover how Atlas helps Perl developers in 2026 pinpoint exact file and symbol locations for behaviors, leveraging semantic search, grep, and LSP across CPAN modules and TAP test suites.
Review a Pull Request in Perl with Atlas in 2026
Review Perl pull requests efficiently in 2026 with Atlas. Catch subtle bugs by examining full file context, running prove (Test2::V0) tests, and ensuring perltidy formatting.
Refactor a Legacy Perl Module with Atlas in 2026
Refactor old Perl modules without breaking callers using Atlas. Map public APIs, pin behavior with prove (Test2::V0), and apply changes safely with Atlas's patch system.
Trace a runtime bug from a stack trace in Perl with Atlas in 2026
Pinpoint Perl runtime bugs from production stack traces using Atlas in 2026. Leverage Atlas's code indexing, grep, and lsp tools to quickly identify the root cause and apply fixes, all without a debugger.
Onboard to an unfamiliar codebase in Perl with Atlas in 2026
Quickly build a working mental model of any Perl codebase in 2026 using Atlas. Leverage semantic search, AST indexing, and read-only exploration of `cpanm` distributions and `Test2::V0` test suites, without reading
Migrate a Deprecated API Across Every Callsite in Perl with Atlas in 2026
Effortlessly migrate deprecated Perl APIs across your entire codebase using Atlas. Find all callers, track progress, and apply changes safely with prove (Test2::V0) and perltidy.
Write unit tests for untested code in Perl with Atlas in 2026
In 2026, use Atlas to write unit tests for untested Perl modules. Atlas understands your cpanm dependencies and Test2::V0 conventions, ensuring new tests fit your existing codebase.
Run the test suite and triage the failures in Perl with Atlas in 2026
Efficiently triage Perl test failures in 2026 with Atlas. Turn a wall of red `prove (Test2::V0)` output into a prioritized list of distinct root causes, using `grep` and `todowrite`.