ARM Open Sources AI-Powered Security Code Review Arm's Product Security Team has released Metis, an open-source AI security framework that uses large language models to perform deep reasoning and context-aware code reviews for detecting subtle vulnerabilities. The tool supports multiple programming languages including C, C++, Python, Rust, and Go, and can validate findings from third-party static analysis tools to reduce false positives. Metis aims to help engineers improve secure coding practices and reduce review fatigue, particularly in large, complex, or legacy codebases where traditional tooling often falls short. Metis is an open-source, agentic AI security framework for deep security code review, created by Arm's Product Security Team https://www.arm.com/products/product-security . It helps engineers detect subtle vulnerabilities, improve secure coding practices, and reduce review fatigue. This is especially valuable in large, complex, or legacy codebases where traditional tooling often falls short. Metis is named after the Greek goddess of wisdom, deep thought and counsel. - Deep Reasoning Unlike linters or traditional static analysis tools, Metis doesn’t rely on hardcoded rules. It uses LLMs capable of semantic understanding and reasoning. - Context-Aware Reviews RAG ensures that the model has access to broader code context and related logic, resulting in more accurate and actionable suggestions. - Plugin-Friendly and Extensible Designed with extensibility in mind: support for additional languages, models, and new prompts is straightforward. - Issue validation Validates findings from its own analysis and third-party SAST tools, gathering evidence to reduce false positives. - Provider Flexibility Support for major LLM services and local models vLLM, Ollama, LiteLLM etc. . See the vLLM guide /arm/metis/blob/main/docs/providers/vllm.md and the Ollama guide /arm/metis/blob/main/docs/providers/ollama.md for local setup examples. Metis includes support for the following languages: | Language | Triage Analysis | Notes | |---|---|---| | C | Tree-sitter + Flow Analysis + tools | Built-in plugin | | C++ | Tree-sitter + Flow Analysis + tools | Built-in plugin | | Python | Tree-sitter + Structural Analysis + tools | Built-in plugin | | Rust | Tree-sitter + Structural Analysis + tools | Built-in plugin | | TypeScript | Tree-sitter + Structural Analysis + tools | Built-in plugin | | Terraform | Tools | Built-in plugin | | Go | Tree-sitter + Structural Analysis + tools | Built-in plugin | | Solidity | Tree-sitter + Structural Analysis + tools | Built-in plugin | | TableGen | Tools | Built-in plugin | | Verilog | Tree-sitter + Structural Analysis + tools | Built-in plugin | For triage analysis details Flow Analysis vs Structural Analysis , see docs/triage-flow.md /arm/metis/blob/main/docs/triage-flow.md . Metis uses a plugin-based language system, making it easy to extend support to additional languages. It also supports multiple vector store backends, including PostgreSQL with pgvector and ChromaDB. By default, Metis uses ChromaDB for local, no-setup usage. You can also use PostgreSQL with pgvector for scalable indexing and multi-project support. After cloning the repository, you can either create a virtual environment or install dependencies system-wide. To use a virtual environment recommended : uv venv uv pip install . or install system wide using --system: uv pip install . --system To install with PostgreSQL pgvector backend support: uv pip install '. postgres ' git clone https://github.com/arm/metis.git cd metis docker build -t metis . OpenAI Export your OpenAI API key before using Metis: export OPENAI API KEY="your-key-here" Run metis by also providing the path to the source you want to analyse: uv run metis --codebase-path