It is worthwhile to be more careful with the definitions in order to avoid confusion later.
On the level of linear algebra, a frame on a real finite dimensional vector space $V$ of dimension $n$ is just an ordered basis $\mathbf{f} = (v_1, \dots, v_n)$ for $V$. A co-frame is a frame on $V^{*}$ or, more explicitly, an ordered basis $(\varphi^1, \dots, \varphi^n)$ of $V^{*}$. Any frame $\mathbf{f}$ on $V$ gives you a co-frame $\mathbf{f}^{*}$ by taking the dual frame (dual basis) and, conversely, any co-frame $\mathbf{g}$ is the dual frame of a unique frame $\mathbf{f}$ (so $\mathbf{g} = \mathbf{f}^{*}$).
In the context of manifolds, a (local) frame (often shortened to a frame) for $M$ (defined on $U$) is a collection $(X_1, \dots, X_n)$ of smooth vectors fields that are defined on an open neighborhood $U \subseteq M$ such that for each $p \in U$, the collection $(X_1(p), \dots, X_n(p))$ is a basis of $T_pM$. Intuitively, a local frame is choice of a frame for each $p \in U$ that varies smoothly with $p$. Similarly, a (local) co-frame for $M$ is a collection of smooth $1$-forms $(\omega^1, \dots, \omega^n)$ such that for each $p \in U$ the collection $(\omega^1(p), \dots, \omega^n(p))$ is a basis for $T_p^{*}M$. Any frame determines a dual co-frame and any co-frame is the dual frame of a unique local frame.
Any coordinate system $(x^1, \dots, x^n)$ that is defined on $U \subseteq M$ gives rise to a local frame $\mathbf{f} = (\frac{\partial}{\partial x^1}, \dots, \frac{\partial}{\partial x^n})$ called the coordinate frame and a local co-frame $\mathbf{f}^{*} = (dx^1, \dots, dx^n)$ called the coordinate co-frame which is the dual of the local frame. Given a coordinate system, any local frame $\mathbf{g}$ on $U$ can be written uniquely in terms of the coordinate frame $\mathbf{f}$ as $\mathbf{g} = \left( a_1^i \frac{\partial}{\partial x^i}, \dots, a_n^i \frac{\partial}{\partial x^i} \right)$ (summation convention is in place) where $a^i_j \colon U \rightarrow \mathbb{R}$ are smooth functions defined on $U$ such that the matrix $A(p) = (a^i_j(p))_{i,j=1}^n$ is invertible for each $p \in U$. This is often written in matrix notation as $\mathbf{g} = \mathbf{f} A$ where $\det(A) \neq 0$. The situation for co-frames is similar.
The most important thing to remember about local frames is that not every local frame is the coordinate frame of some coordinate system on $M$! In a coordinate frame, we always have $[X_i, X_j] = 0$ but in an arbitrary frame this is not the case. In fact, this is the only local obstruction and so if you are given a frame in which $[X_i, X_j] = 0$, then this frame locally comes from some coordinate system on $M$.