A free, native macOS app for reviewing, creating, and updating project and portfolio plans
No Windows. No MS Project license. No subscriptions.
Open `.mpp` files • Create native `.mppplan` files • Built with SwiftUI • Powered by MPXJ
- Review Microsoft Project schedules on macOS without opening Windows or buying Microsoft Project.
- Build native plans directly in the app with grid editing, Gantt editing, resources, calendars, statusing, and finance.
- Register multiple plans in a portfolio workspace with governance metadata, roadmap signals, resource capacity, and review snapshots.
- Run analysis, workload, validation, and earned value from the same project model instead of jumping between tools.
- Import operational spreadsheets, update status centrally, and export governance-ready outputs from the same workspace.
- Open
.mppfiles for review, diagnostics, reporting, and schedule analysis. - Create
.mppplanfiles for fully native planning and ongoing project control. - Track multiple plans in
Portfoliofor PMO-style oversight, governance, review cadence, and cross-project signals. - Edit tasks in a grid, in Gantt, or through focused status and resource workflows.
- Manage backlog, sprints, workflow buckets, and hybrid delivery reporting in
Agile Board. - Track baselines, actuals, costs, overtime, CPI/SPI/EAC/VAC, and workload in one app.
- Import tasks, resources, calendars, assignments, dependencies, constraints, and baselines from mapped spreadsheets.
- Download the latest release from GitHub Releases or install with Homebrew.
- Open the included aurora-commerce-launch.mppplan to explore a fully populated native project.
- Start in
Portfoliofor workspace context,Plan Builderto edit, orStatus Center/Earned Valuefor controls work.
- Repo performance standards: docs/performance-guide.md
- Current remediation roadmap: docs/performance-remediation-plan.md
- Profiling workflow: docs/profiling-playbook.md
| Document Type | Best For | Editing |
|---|---|---|
.mpp |
Reviewing Microsoft Project schedules on macOS | Read-only review and analysis |
.mppplan |
Building and updating plans directly in the app | Full native editing |
All screenshots below were captured from the app using the included showcase native plan as the primary workspace sample: aurora-commerce-launch.mppplan
Dashboard — project health overview with KPIs, milestones, and schedule status
Portfolio Workspace — multi-project registry with executive metrics, governance metadata, and live workspace opening
Agile Board — hybrid backlog and workflow board with sprint planning, bucket controls, and delivery reporting
Task Table — hierarchical WBS with duration, dates, progress bars, and predecessors
Gantt Chart — zoomable timeline with critical path, baselines, milestones, and dependency arrows
Schedule View — MS Project-style split view with task list and Gantt side by side
Earned Value Analysis — CPI, SPI, EAC, VAC with S-Curve chart and task-level EVM table
Resource Workload — weekly allocation view with over-allocation highlighting
Plan Builder — grid-first planning with task hierarchy, assignments, finance, constraints, and baselines
Status Center — status-date updates, actual dates, actual costs, overtime, and live variance review
Resources — native staffing editor with rates, calendars, assignments, and accrual setup
Calendar — working week, project default calendar, and leave/holiday exception editing
Timeline — high-level phase and milestone summary for steering and executive review
Guide & Help — built-in onboarding, portfolio workflows, feature reference, glossary, document types, and shortcuts
- Open aurora-commerce-launch.mppplan to explore the native planning workflow with tasks, hierarchy, resources, calendars, assignments, agile metadata, earned value, and workload already populated.
- The sample is intended for demos, screenshots, and first-run exploration of the app’s editing and analysis features.
- Open the included aurora-commerce-launch.mppplan to see a fully populated native plan.
- Start in
Portfolioto see the workspace registry and governance fields, then openDashboardfor project health. - Move into
Plan Builder,Agile Board, andGantt Chartto see the three main native editing and delivery surfaces. - Open
ResourcesandCalendarto see native staffing and working-time setup. - Use
Status CenterandEarned Valueto apply actual dates, progress, cost, overtime, and controls review against a status date. - Finish in
Workload,Validation,Diagnostics,Timeline, andComparefor review and follow-up.
brew tap Engagendy/tap
brew install --cask mpp-viewer- Download the latest
.dmgfrom GitHub Releases - Open the DMG and drag MPP Viewer to your Applications folder
- On first launch, right-click the app → Open → Open (required for unsigned apps)
The app bundles its own Java runtime and converter — no prerequisites needed.
Since the app is not signed with an Apple Developer certificate, macOS will show an "unidentified developer" warning. To bypass this:
Option A — Right-click Open (recommended): Right-click (or Control-click) the app → Open → click Open in the dialog.
Option B — Remove quarantine attribute:
xattr -cr /Applications/MPPViewer.appOption C — System Settings: Go to System Settings → Privacy & Security, scroll down, and click Open Anyway next to the MPP Viewer message.
- Open Microsoft Project
.mppfiles for review and analysis. - Create, save, and reopen native editable
.mppplanfiles. - Use document-based macOS behavior so plans open directly from Finder.
Plan Builderfor fast grid entry plus a detailed task inspector.- Create, delete, duplicate, reorder, indent, and outdent tasks.
- Edit task dates, duration, milestones, predecessors, constraints, baselines, actual dates, and financial overrides.
- Grid-first editing designed to feel closer to Microsoft Project for rapid task entry.
Portfolioregisters multiple imported or native plans in one workspace.- Track workspace, program, sponsor, objective, stage, approval state, review date, review cadence, strategic alignment, and risk score per plan.
- Review executive health rollups, governance ranking, roadmap milestones, cross-project dependency signals, and portfolio review snapshots.
- Open a selected portfolio plan into the live editable workspace without leaving the registry.
Agile Boardprovides backlog, workflow lanes, sprint planning, and hybrid delivery reporting on top of the same native schedule.- Organize work with statuses, buckets, sprints, epics, story points, parent grouping, tags, and optional detail panes.
- Use bucket ordering, workflow controls, sprint planner, and focus mode to manage delivery flow without breaking the native project model.
Gantt Chartsupports both review and native-plan editing.- Move task bars, resize duration, create and remove dependencies, and restructure task hierarchy.
- Create tasks and subtasks directly from Gantt.
- Use
View | Editmode so the chart stays clean in review mode. - Includes baseline overlays, critical path styling, variance indicators, and zoom controls.
- Import tasks, resources, calendars, assignments, dependencies, constraints, and baselines.
- Supports CSV and Excel-compatible
.xlstemplates. - Built-in mapping sheets let you map arbitrary column names before import.
- Import reports show created/updated/skipped rows, warnings, and jump-to-item actions.
- Template exports help teams prepare spreadsheets in the right format.
- Native resource editor with name, type, initials, group, email, max units, rates, and cost-per-use.
- Native calendar editor with working days, work ranges, exceptions, default calendar selection, and leave-style exceptions.
- Quick task assignment from both the planner grid and Gantt.
- Resource workload and resource-risk views for overload detection and staffing review.
Status Centerfor status-date-based updates.- Update actual start, actual finish, percent complete, actual cost, status notes, and assignment actual/remaining/overtime hours.
- Control filters for in-progress, overdue, needs-attention, and missing-actuals tasks.
- Live cost and schedule indicators such as
BAC,AC,CPI,SPI,EAC, andVAC.
- Native plan finance authoring includes fixed cost, baseline cost, actual cost, resource rates, cost-per-use, accrual timing, and assignment overtime.
Earned Valuescreen includes KPI cards, S-curve, and task-level EVM analysis.- Financial metrics are available across planner, Gantt, dashboard, and status workflows.
- Abbreviations such as
BAC,PV,EV,AC,CPI,SPI,EAC,VAC, andTCPInow have in-app glossary help.
DashboardandExecutive Modefor health review, KPIs, milestones, and export-ready summaries.Validationfor planning and data quality issues.DiagnosticsandDependency Explorerfor schedule-logic analysis.Critical Path,Resource Risks,Workload,Timeline, andScheduleviews for focused review.Compareview for diffing another.mppor native plan against the current project.
- Persistent local review notes per task.
- Markdown, CSV, PDF, and Excel-compatible exports in relevant screens.
- Review pack and issue exports for recurring governance workflows.
- In-app
Guide & Helpscreen with screen-by-screen documentation, workflow guidance, document-mode guidance, and portfolio usage paths. - macOS Help menu entries for the guide and financial glossary.
- Search across task name, ID, WBS, notes, resources, and custom fields.
- Keyboard shortcuts for navigation and planner editing.
| Requirement | Version |
|---|---|
| macOS | 14.0 (Sonoma) or later |
| Xcode | 15.0+ |
| Java | OpenJDK 21 |
| Maven | 3.8+ |
# Clone the repository
git clone https://github.com/Engagendy/MPPViewerMacOS.git
cd MPPViewerMacOS
# Build the Java converter
cd MPPConverter && mvn clean package && cd ..
# Open in Xcode
open MPPViewer/MPPViewer.xcodeprojSelect the MPPViewer scheme, choose My Mac as the destination, and hit Run (Cmd+R).
./scripts/package.shThis script builds the JAR, builds the app, bundles the Eclipse Temurin JRE and converter JAR into the app, and creates a .dmg ready for distribution.
Options: --skip-jar, --skip-app, --arch arm64|x86_64, --version X.Y.Z
MPPViewerMacOS/
├── MPPViewer/ # macOS app (Swift/SwiftUI)
│ ├── App/ # Entry point, routing, document handling, help
│ ├── Models/ # Runtime + native planning models
│ ├── Services/ # MPP conversion, validation, EVM, workload
│ ├── Views/
│ │ ├── Dashboard/ # Health review, executive mode, snapshots
│ │ ├── Planner/ # Native plan builder
│ │ ├── Gantt/ # Interactive chart + editing
│ │ ├── Schedule/ # Schedule review layout
│ │ ├── Tasks/ # Task table, detail inspector, dependency exploration
│ │ ├── Milestones/ # Milestone tracking and health analysis
│ │ ├── Resources/ # Resource review + native editor
│ │ ├── Calendar/ # Calendar review + native editor
│ │ ├── EarnedValue/ # EVM dashboard with S-Curve
│ │ ├── Workload/ # Resource workload heatmap
│ │ ├── Timeline/ # Executive timeline view
│ │ ├── Diff/ # Comparison and baseline review
│ │ ├── Summary/ # Project metadata
│ │ └── Components/ # Shared UI, import mapping, controls
│ └── Utilities/ # CSV/PDF export, print, date formatting
├── MPPConverterXPC/ # XPC service target (sandboxed builds)
├── MPPConverter/ # Java converter (Maven project)
│ └── src/main/java/.../MppToJson.java
└── scripts/
└── package.sh # Build & package script
.mpp file → MPPConverterService (Swift)
↓
Java Process / XPC Service
↓
MPXJ (Java) → JSON
↓
JSONProjectParser (Swift)
↓
ProjectModel → SwiftUI Views
- The app receives an
.mppfile through the macOS document system MPPConverterServiceinvokes a Java process running the MPXJ-based converter JAR- MPXJ reads the binary
.mppformat and outputs structured JSON JSONProjectParserdecodes the JSON into Swift model objects- SwiftUI views render the project data across all tabs
- UI Framework: SwiftUI with Canvas for Gantt and workload rendering
- Platform APIs: AppKit (PDF generation, printing, file dialogs)
- Project Parsing: MPXJ 13.4.0 — the industry-standard library for reading Microsoft Project files
- Build Tools: Xcode (Swift), Maven (Java)
- CI/CD: GitHub Actions — automated build, release, and Homebrew cask update on tag push
- Minimum Target: macOS 14.0 Sonoma
Contributions are welcome. Please open an issue to discuss proposed changes before submitting a pull request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License. See LICENSE for details.
Built with SwiftUI for macOS • Powered by MPXJ